Want to make creations as awesome as this one?

Transcript

Crée ton personnage parrapport à ton profil

Start

Je n'ai pas encore fini

Next

Back

Je ne clique pas -1

Règles de jeux

La notice

Back

Casse-tete

Tire à l'arc

Dessin

Précision +1

Next

Back

8

VERSION 5.00 Begin VB.Form Form1 AutoRedraw = -1 'True Caption = "Form1" ClientHeight = 3300 ClientLeft = 60 ClientTop = 450 ClientWidth = 5670 LinkTopic = "Form1" ScaleHeight = 3300 ScaleWidth = 5670 StartUpPosition = 3 'Windows Default WindowState = 2 'Maximized Begin VB.Timer Timer1 Interval = 10 Left = 120 Top = 120 End End Attribute VB_Name = "Form1" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False 'Auteur : Ranto Rasolomahefa (xranto) 'Version : 0 'Date de création : 26 janvier 2006 'Mise à jour : 26 janvier 2010 (ajout de commentaire) 'Code libre de droit. 'Cette source sert a vous montrer la possibilité d'utilisation de Circle(), Line() et Print() et dans un but éducatif 'NIVEAU : 'Si vous êtes débutant en vb : je vous conseil de lire les commentaires 'Si vous êtes intermédiaire : Faites ce que vous voulez, le code est assez facile 'Si vous croyez être expert : cette source ne vous sert à riens ! Autant jouer avec le jeu. 'Afin de bien comprendre le code, il est nécessaire de jouer un peu 'ATTENTION : JE NE SUIS PAS PROFESSEUR DE FRANCÉ '------------------------------------------------------------------------------------------------------------------- Option Explicit '-->> A partir d'ici la déclaration des constantes utilisées dans le jeu 'Notez que, dans ce jeu, certains de ces constantes sont seulement des valeurs initiales de variable. 'La cause de leurs déclarations est de faciliter les modifications du jeu (apparence, performance,.. ?) 'L'axe de la flèche Const F_COLOR = &H4080& Const F_LONGUEUR = 100 Const F_DEPLACEMENT = 10 Const F_DEFPOSX = 100 Const F_RECULE = 30 Const F_NBR = 10 'Les plumes de la flèche Const PL_LONGUEUR = 20 Const PL_COLOR = vbBlack 'La pointe de la flèche Const POINTE_COLOR = &H404040 'L'arc Const ARC_COLOR = &H80FF& 'La cible Const C_RAYON = 20 Const C_DEPLACEMENT = 5 Const C_COLOR_1 = vbBlue Const C_COLOR_2 = vbWhite Const C_COLOR_3 = vbRed 'La barre horizontale en haut qui sert de barre d'état (hauteur et couleur) Const BARRE_H = 20 Const BARRE_BCK_COLOR = vb3DLight Const BARRE_BRD_COLOR = vb3DShadow 'La couleur de fond de la form Const FRM_BCK_COLOR = &H8000& 'Et les Messages Const MESSAGE_1 = "Cible ateint. Points : " Const MESSAGE_2 = "Partie Terminée." Const MESSAGE_3 = "Scores = " Const MESSAGE_4 = "Voulez-vous recommencer ?" Const MESSAGE_5 = "Fleche" '<<-- '-->> A partir d'ici la déclaration des variables global du jeu 'Position de la flèche Dim PosX As Single Dim PosY As Single Dim EnMouvement As Boolean 'dans ce jeu, une flèche est en mouvement lorsqu'elle part de l'arc pour atteindre la cible ou pour se perdre à l'exterieur de la zone de jeu 'Position actuel du pointeur et état des boutons de la souris Dim CurX As Single Dim CurY As Single Dim CurButton As Integer Dim DownButton As Boolean 'Position de la cible Dim CirX As Single Dim CirLeftPos As Single Dim CirDepl As Integer Dim CirRay As Integer 'Les autres petits détails Dim Score As Single Dim NbrFleche As Integer Dim i As Variant '<<-- Private Sub Form_Load() 'Initialisation des variables 'Unité de mesure utilisé dans le jeu : pixel ScaleMode = vbPixels 'La couleur de fond de la fenêtre BackColor = FRM_BCK_COLOR 'L'etiquette de la fenêtre Caption = MESSAGE_5 'Le rayon initial de la cible CirRay = C_RAYON 'La valeur de déplacement de la cible CirDepl = C_DEPLACEMENT 'Position horizontal de la flèche PosX = F_DEFPOSX 'l'etat de mouvement de la flèche EnMouvement = False 'et le nombre de flèche restant pour le joueur NbrFleche = F_NBR 'voir la procedure Timer1_Timer() End Sub Private Sub Timer1_Timer() 'Cette procedure est un événement de la contrôle Timer1 qui est auto-déclenché en une intervalle de 10 millisecondes 'On efface la form Cls 'Affichage la barre d'état CreerBar 'Calcul de la prochaine position de la cible MoveCircle '-->> A partir d'ici : Traçage de la cible 'Dans ce jeu, la cible est formée de l'assemblage de plusieurs cercles de 3 couleurs et d'un contour de coleur noir For i = CirRay To CirRay / 2 Step -0.5 Circle (CirLeftPos, CirX), i, C_COLOR_1 Next For i = CirRay / 2 To CirRay / 4 Step -0.5 Circle (CirLeftPos, CirX), i, C_COLOR_2 Next For i = CirRay / 4 To 0 Step -0.5 Circle (CirLeftPos, CirX), i, C_COLOR_3 Next Circle (CirLeftPos, CirX), CirRay, vbBlack '<<-- 'On vérifie si la fleche est en mouvement If EnMouvement = True Then 'si la fleche est en mouvement : 'On ajoute la valeur de déplacement à l'ancienne position horizontale la flèche afin de simuler un mouvement. PosX = PosX + F_DEPLACEMENT 'Création de l'arc CreerArc 'Création des plumes CreerPlume PosX, PosY 'Traçage de l'axe de la flèche Line (PosX, PosY)-(PosX + F_LONGUEUR, PosY), F_COLOR '-->> On vérifie si la pointe de la flèche touche la cible ' en verifiant la couleur du point à l'endroit où se trouve actuelement la pointe de notre flèche. Dim PointPos As Long 'PointPos est la couleur du point à l'endroit où se trouve actuelement la pointe de notre flèche. PointPos = Point(PosX + F_LONGUEUR + 1, PosY) 'On vérifie si PointPos est égal a 1 des 3 couleurs de notre cible 'et si oui, on appele la procédure Touche() avec le score comme argument. Select Case PointPos Case C_COLOR_1: Touche 100 Case C_COLOR_2: Touche 500 Case C_COLOR_3: Touche 1000 End Select '<<-- 'On verifie si la position actuelle de la flèche se trouve à l'exterieur de la zone de jeu. If PosX + F_LONGUEUR >= ScaleWidth Then 'si la flèche se trouve à l'exterieur : 'On arrête le mouvement EnMouvement = False 'On diminue le nombre de flèche restant pour le joueur (la flèche étant perdue à jamais ;) ) NbrFleche = NbrFleche - 1 'On reinitialise la position horizontale de la fleche afin de remettre une nouvelle flèche dans l'arc PosX = F_DEFPOSX 'Création des plumes CreerPlume 'Traçage de l'axe de la flèche Line (F_DEFPOSX, CurY)-(F_DEFPOSX + F_LONGUEUR, CurY), F_COLOR End If Else 'si la fleche n'est pas en mouvement : 'On vérifie si le bouton droite de la souris n'est pas enfoncé If DownButton = False Then 'si le bouton n'est pas enfoncé : 'Création de l'arc CreerArc 'Création des plumes CreerPlume 'Traçage de l'axe de la flèche Line (F_DEFPOSX, CurY)-(F_DEFPOSX + F_LONGUEUR, CurY), F_COLOR Else 'si le bouton est enfoncé : 'F_DEFPOSX - F_RECULE = position horizontale par défaut de la flèche soustrait de la valeur de récule pour simuler l'arc préarmé. 'Création de l'arc CreerArc F_DEFPOSX - F_RECULE 'Création des plumes CreerPlume F_DEFPOSX - F_RECULE 'Traçage de l'axe de la flèche Line (F_DEFPOSX - F_RECULE, CurY)-(F_DEFPOSX - F_RECULE + F_LONGUEUR, CurY), F_COLOR End If End If End Sub Sub Touche(Point As Integer) 'Cette procédre est appelée lorsque la pointe de la flèche touche la cible 'Le paramètre score est score acquis par le joueur en touchant la cible avec la flèche 'On affiche un message à l'utilisateur avec le score acquis MsgBox MESSAGE_1 & Point 'On arrête le mouvement EnMouvement = False 'On reinitialise la position horizontale de la fleche afin de remettre une nouvelle flèche dans l'arc PosX = F_DEFPOSX 'On diminue le rayon de la cible pour augmenter la difficultée CirRay = CirRay - 1 'On ajoute le score acquis au score actuel Score = Score + Point 'On donne un peu de flèche au joueur pour l'encourager NbrFleche = NbrFleche + (Point / 100) End Sub Sub CreerPlume(Optional PlumePosX = F_DEFPOSX, Optional PlumePosY = 0) 'Cette procédure est appelée pour créer les plumes et la pointe de la flèche. 'Les 2 paramètres optionnelles sont les positions actuelles de la flèche. 'Si les paramètres ne sont pas precisées lors de l'appel, on utilise les valeurs par défaut 'Les plumes sont formées de plusieurs lignes de même longueur mais leurs positions sont différente 'La pointe est formée de plusieurs lignes de différente longueur, de différente position verticale et de même point de départ horizontal 'PlumeDecal est la variable utilisée pour le décalage horizontal des lignes des plumes Dim PlumeDecal 'TmpPointeLongueur est la variable utilisée pour la longueur des lignes de la pointe de la flèche Dim TmpPointeLongueur If PlumePosY = 0 Then PlumePosY = CurY '-->> traçage de la partie supérieur des plumes et de la pointe de la flèche 'On initialise la variable pour la première ligne des plumes (première point de départ horizontal) 'Dont -5 pixel par rapport à la position horizontal actuelle de la flèche PlumeDecal = PlumePosX - 5 'On boucle pour tracer les lignes à partir de -5 pixel 'jusqu'à -1 pixel par rapport à la position vertical actuelle de la flèche For i = PlumePosY - 5 To PlumePosY - 1 'On décale la prochaine ligne des plumes PlumeDecal = PlumeDecal + 1 'On trace une ligne des plumes Line (PlumeDecal, i)-(PlumeDecal + PL_LONGUEUR, i), PL_COLOR 'On rallonge la prochaine ligne de la pointe TmpPointeLongueur = TmpPointeLongueur + 1 'On trace une ligne de la pointe Line (PlumePosX + F_LONGUEUR - 5, i)-(PlumePosX + F_LONGUEUR - 5 + TmpPointeLongueur, i), POINTE_COLOR Next '<<-- '-->> On trace la partie inférieur de la pointe de la flèche et des plumes 'Ici c'est l'inverse de se qui se trouve au dessus donc : Sésame démerde toi ! PlumeDecal = PlumeDecal + 1 TmpPointeLongueur = TmpPointeLongueur + 1 For i = PlumePosY + 1 To PlumePosY + 5 PlumeDecal = PlumeDecal - 1 Line (PlumeDecal, i)-(PlumeDecal + PL_LONGUEUR, i), PL_COLOR TmpPointeLongueur = TmpPointeLongueur - 1 Line (PlumePosX + F_LONGUEUR - 5, i)-(PlumePosX + F_LONGUEUR - 5 + TmpPointeLongueur, i), POINTE_COLOR Next '<<-- End Sub Sub CreerArc(Optional TempPosX = F_DEFPOSX) 'Cette procédure est appelée pour dessiner l'arc dont : ' - 2 demi-cercle sont utilisés pour former la branche de l'arc (2 pour que l'arc soit plus épais) ' - 2 lignes pour former la corde (2 pour qu'on puisse afficher une corde en état préarmée) 'pi est une constante inventée par un fou qui s'appel Archimède donc on l'utilise pour lui rendre honneur Const Pi = 3.14 'On trace les demi-cercles de la branche Circle (F_DEFPOSX, CurY), F_LONGUEUR / 2, ARC_COLOR, Pi + (Pi / 2), Pi / 2 Circle (F_DEFPOSX + 1, CurY), F_LONGUEUR / 2, ARC_COLOR, Pi + (Pi / 2), Pi / 2 'et on trace les cordes Line (TempPosX, CurY)-(F_DEFPOSX, CurY - (F_LONGUEUR / 2)), PL_COLOR Line (TempPosX, CurY)-(F_DEFPOSX, CurY + (F_LONGUEUR / 2)), PL_COLOR End Sub Sub CreerBar() 'Cette procédure est appelée pour dessiner la barre d'état en haut et afficher l'état actuel du jeu (score, nombre de flèche restant...) 'mais aussi pour vérifier si on doit terminer la partie. 'On vérifie si le joueur n'a plus de flèche If NbrFleche < 0 Then 'si le joueur n'a plus de flèche : 'on l'informe que la partie est terminée en lui montrant son score 'et on lui demande s'il veut rejouer If MsgBox(MESSAGE_2 & vbCr & MESSAGE_3 & Score & vbCr & MESSAGE_4, _ vbYesNo + vbInformation + vbDefaultButton1, MESSAGE_2) = vbYes Then 'si il veut rejouer : 'On réinitialise : '-le nombre de flèche NbrFleche = F_NBR '-la cible CirRay = C_RAYON 'et le score Score = 0 'et puis on arrête le mouvement de la flèche EnMouvement = False Else 's'il ne veut pas rejouer : 'Tampis pour lui, on arrête tout. End End If End If 'On trace les ligne qui vont former la barre d'état Line (0, 0)-Step(ScaleWidth, BARRE_H), BARRE_BCK_COLOR, BF Line (0, 0)-Step(ScaleWidth, BARRE_H), BARRE_BRD_COLOR, B 'On initialise la position actuelle dans la form pour qu'on puisse écrire au bon endroit CurrentX = F_DEFPOSX: CurrentY = 5: Font.Bold = True 'et on écrit le score et le message qui va avec Print MESSAGE_3 & Score 'et on trace des tats de lignes pour montrer le nombre de flèche restante For i = 1 To NbrFleche Line (F_DEFPOSX + F_LONGUEUR + 40 + (i * 10), 5)-Step(0, 10), F_COLOR Line (F_DEFPOSX + F_LONGUEUR + 40 + (i * 10 - 1), 5)-Step(0, 4), PL_COLOR Line (F_DEFPOSX + F_LONGUEUR + 40 + (i * 10) + 1, 5)-Step(0, 4), PL_COLOR Next End Sub Sub MoveCircle() 'Cette procedure est appelée pour calculée la prochaine position de la cible 'La cible etant en mouvement vertical. 'On déplace la cible et : 'On vérifie si elle n'entre pas dans la barre d'état If CirX - CirRay <= BARRE_H Then CirDepl = Abs(CirDepl) 'On vérifie aussi si elle ne sort pas dans la partie inferieur de la zone de jeu If CirX + CirRay >= ScaleHeight Then CirDepl = -CirDepl 'Dans les deux déplacements en dessus, la valeur de mouvement peut être 'la valeur absolue de CirDepl ou -CirDepl dépendant de la direction (vers le haut ou vers le bas) 'et enfin, on ajoute la valeur actuelle de de la position vertical de la cible par la valeur de déplacement CirX = CirX + CirDepl End Sub Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Cette procédure est un événement de la form déclanché lorsqu'un des boutons de la souris est enfocé 'si c'est le bouton gauche qui est enfoncé, on donne la valeur True a notre variable de jeu DownButton afin de verifier ultérieurement si le joueur arme son arc If Button = 1 Then DownButton = True End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Cette procédure est un événement de la form déclanché lorsqu'on bouge le pointeur de la souris à l'interieur de notre form 'et on donne a notre variable CurY la position vertical du pointeur de la souris CurY = Y End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Cette procédure est un événement de la form déclanché lorsqu'on relache un bouton enfoncé de la souris 'On vérifie d'abord si c'etait le bouton gauche If Button = 1 Then 'on donne la valeur False a notre variable de jeu DownButton afin de verifier ultérieurement qu'il n'y a plus de bouton enfoncé et que l'arc n'est donc pas armé DownButton = False 'et puis, on verifie qu'il n'y a pas de mouvement de flèeche en cours If EnMouvement = False Then 'on lance le mouvement EnMouvement = True 'et on retient la position verticale de la pointeur pour positioner notre flèche jusqu'à ce qu'elle touche la cible ou qu'elle se perde PosY = Y End If End If End Sub Private Sub Form_Resize() 'Cette procédure est un événement de la form déclenché lorsque le joueur redimensionne la fenêtre 'on change la position horizontal de la cible CirLeftPos = ScaleWidth - (CirRay + (CirRay / 2)) End Sub

10

21

24

Back

Next

Back

Logique +1

Next

Back

Je peux écrireune histoireavec ces élèments

Select

Select

Ces juste des symboles

Créatif +1

Next

Back

Next

Stratégie +1

NOTICE

Je continuemon construction

J'abandonne

Select

Select

Next

Back

C'est le jour J vous partez en vancances en famille aux Maldives. Votre vol est prévu à 9H. Vous vous reveillez à 3H histoire de préparer le départ, l'aéroport se trouvant à 400 de km loin de chez voux. Votre enfant se reveille lui à 4h et met environ 1h à se préparer, de même que pour votre fiancé. Vous êtes très pointilleux sur les détails et donc voulez que le voyage soit parfait, de ce fait, vous mettez plus de temps que prévu environ 2H de plus.. Qu'elle est la meilleur méthode selon vous pour gerer votre temps et ne pas louper l'avion ?

l'enfant

La préparation

L'organisation

Next

Back

notion timing +1

Next

Patience +1

Back

Play

Back

Jovial/amuseur+1

Next

Next

Joviale +1

Back

NOTICE

Spontané +1

Back

NOTICE

Next

Next

Esprit d'équipe

Back

NOTICE

Next

Diplomate +1

Back

NOTICE

Persuasif

Persuasif +1

Back

Back

NOTICE

Aisance orale +1

Back

Back

NOTICE

Next

+1= validé

-1=non valide

-1=non valide

Congratulations!

Retry