Accueil > > > JEU EN GIFS ANIMÉS FIRECOIN
JEU EN GIFS ANIMÉS FIRECOIN
Information sur la source
Description
Voici un petit jeu en gifs animés Le but étant de récupérer le plus de pièces possible en passant à travers les boules sans les toucher. Des bonus apparaissent et permettent d'effectuer divers actions telles que gagner des points, détruire les boules, passer au travers, etc... Pour les gifs animés, copiez la dll gif89.dll dans votre system32 et tapez regsvr32.exe gif89.dll dans exécuter.
Source
- Option Explicit
- 'Libraries pour la gestion de l'appuie des touches
- Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
- Dim Jeu As Integer
- Dim foot As Integer 'Distance
- Dim Sens As String 'Sens des boules
- Dim Cpt As Integer 'Compteur de pièces
- Dim Tps As Integer 'Temps que le bonus reste affiché
- Dim TpsAff As Integer 'Temps d'affichage du bonus
- Dim TpsBonus As Integer 'Temps que dure le bonus qd on l'a en milliseconde
- Dim TabBoule(30, 1) As Integer 'Sens et vitesse
- Dim Fairy As Integer 'Numéro de la fée affichée
- Const Pressed = -32767
- Private Sub Form_Load()
- Randomize
- Dim i As Integer
- Show
- foot = 36 'taille d'un pas (vitesse)
- Fairy = 0 'On initialise la couleur de la fée
- Cpt = 0 '0 pièces
- For i = 0 To 30 'Initialisation du tableau des boules
- TabBoule(i, 0) = 0 'Sens
- TabBoule(i, 1) = 0 'Vitesse
- Next i
- Gif89a1.FileName = App.Path & "\left1.gif"
- Gif89a1.AutoSize = True
- Gif89a1.AutoStart = True
- Gif89a2.FileName = App.Path & "\anneau.gif"
- Gif89a2.AutoSize = True
- Gif89a2.AutoStart = True
- End Sub
- 'Nouvelle Partie
- Private Sub New_Click()
- Dim i As Integer
- For i = 0 To 30
- If TabBoule(i, 0) <> 0 Then
- Unload Me.Gif89a3(i) 'On se décharge des boules
- End If
- TabBoule(i, 0) = 0 'On réinitialise
- TabBoule(i, 1) = 0 'le tableau de boules
- Next i
- Me.Score = 0: Cpt = 0: TpsBonus = 0: TpsAff = 0
- Me.Gif89a4.Visible = False
- Me.Timer.Interval = 1 'on fait repartir le timer
- End Sub
-
- Private Sub Timer_Timer()
- 'Déplacement du personnage gestion de l'appuie sur les flèches
- Select Case True
- Case GetKeyState(&H28) < 0 'bas
- If Me.Gif89a1.FileName <> App.Path & "\Down1.gif" Then
- Me.Gif89a1.FileName = App.Path & "\Down1.gif"
- End If
- Me.Gif89a1.Top = ChkDpl(0, Me.Gif89a1.Top, 2, 1070, foot)
- 'Déplacement en diagonale
- Select Case True
- Case GetKeyState(&H25) < 0 'Gauche
- Me.Gif89a1.Left = ChkDpl(Me.Gif89a1.Left, 0, 3, 1070, foot)
- Case GetKeyState(&H27) < 0 'droite
- Me.Gif89a1.Left = ChkDpl(Me.Gif89a1.Left, 0, 4, 610, foot)
- End Select
- Case GetKeyState(&H26) < 0 'haut
- If Me.Gif89a1.FileName <> App.Path & "\Up1.gif" Then
- Me.Gif89a1.FileName = App.Path & "\Up1.gif"
- End If
- Me.Gif89a1.Top = ChkDpl(0, Me.Gif89a1.Top, 1, 0, foot)
- 'Déplacement en diagonale
- Select Case True
- Case GetKeyState(&H25) < 0 'Gauche
- Me.Gif89a1.Left = ChkDpl(Me.Gif89a1.Left, 0, 3, 1070, foot)
- Case GetKeyState(&H27) < 0 'droite
- Me.Gif89a1.Left = ChkDpl(Me.Gif89a1.Left, 0, 4, 610, foot)
- End Select
- Case GetKeyState(&H27) < 0 'droite
- If Me.Gif89a1.FileName <> App.Path & "\right1.gif" Then
- Me.Gif89a1.FileName = App.Path & "\right1.gif"
- End If
- Me.Gif89a1.Left = ChkDpl(Me.Gif89a1.Left, 0, 4, 610, foot)
- Case GetKeyState(&H25) < 0 'gauche
- If Me.Gif89a1.FileName <> App.Path & "\left1.gif" Then
- Me.Gif89a1.FileName = App.Path & "\left1.gif"
- End If
- Me.Gif89a1.Left = ChkDpl(Me.Gif89a1.Left, 0, 3, 0, foot)
- Case Else
- Arret 'Le perso ne bouge plus
- End Select
- 'Déplacement des boules
- BoulesDpl
- 'Tps d'apparition de la fée
- If TpsAff <> 0 Then
- TpsAff = TpsAff - 1
- 'Collision avec la fée si elle est affichée
- Collision Gif89a1.Left, Gif89a1.Top, _
- Gif89a4.Left, Gif89a4.Top, _
- Gif89a1.Width, Gif89a1.Height, _
- Gif89a4.Width, Gif89a4.Height, "Z", "fee"
- Else 'Si le temps d'affichage est mis à 0 en le touchant ou fin du compteur
- If Me.Gif89a4.Visible = True Then _
- Me.Gif89a4.Visible = False 'On fait disparaître la fée
- End If
- If TpsBonus <> 0 Then 'Fait clignoter le nom du bonus
- If TpsBonus Mod 50 > 25 Then
- If TpsBonus < 300 Then Me.Bonus.ForeColor = vbRed 'Change de couleur selon
- If TpsBonus < 200 Then Me.Bonus.ForeColor = &H80FF& 'le temps qu'il reste
- If TpsBonus < 100 Then Me.Bonus.ForeColor = vbYellow 'Avant de perdre le pouvoir
- Else
- Me.Bonus.ForeColor = vbBlack
- End If
- TpsBonus = TpsBonus - 1 'Réduction du TpsBonus de 6s
- Else
- Me.Bonus = ""
- End If
- End Sub
- 'Gestion des déplacements
- Private Function ChkDpl(X As Integer, Y As Integer, Signe As Integer, Epaisseur As Integer, ByVal Vitesse As Integer) As Integer
- Dim H As Integer
- Dim L As Integer
- Dim Dpl As Integer
- Dpl = Vitesse
- H = F2D.Height - Epaisseur 'calcul de la hauteur max
- L = 4400 - Epaisseur 'calcul de la largeur max
- Select Case Signe
- Case 2 'vers le bas
- If (Y + Dpl < H) Then
- ChkDpl = Y + Dpl
- Collision Gif89a1.Left, Gif89a1.Top, _
- Gif89a2.Left, Gif89a2.Top, _
- Gif89a1.Width, Gif89a1.Height, _
- Gif89a2.Width, Gif89a2.Height, "Z", "coin"
- Else
- ChkDpl = Y
- End If
- Case 4 'vers la droite
- If (X + Dpl < L) Then
- ChkDpl = X + Dpl
- Collision Gif89a1.Left, Gif89a1.Top, _
- Gif89a2.Left, Gif89a2.Top, _
- Gif89a1.Width, Gif89a1.Height, _
- Gif89a2.Width, Gif89a2.Height, "Z", "coin"
- Else
- ChkDpl = X
- End If
- Case 1 'vers le haut
- If (Y - Dpl > 0) Then
- ChkDpl = Y - Dpl
- Collision Gif89a1.Left, Gif89a1.Top, _
- Gif89a2.Left, Gif89a2.Top, _
- Gif89a1.Width, Gif89a1.Height, _
- Gif89a2.Width, Gif89a2.Height, "Z", "coin"
- Else
- ChkDpl = Y
- End If
- Case 3 'vers la gauche
- If (X - Dpl > 0) Then
- ChkDpl = X - Dpl
- Collision Gif89a1.Left, Gif89a1.Top, _
- Gif89a2.Left, Gif89a2.Top, _
- Gif89a1.Width, Gif89a1.Height, _
- Gif89a2.Width, Gif89a2.Height, "Z", "coin"
- Else
- ChkDpl = X
- End If
- End Select
- End Function
- 'Fait apparaître la pièce à un autre endroit qd on la touche
- Private Sub DeplaceCoin()
- Dim i As Integer
- 'On déplace la pièce
- Gif89a2.Visible = False
- Gif89a2.Left = ((3970 - Gif89a1.Width) * Rnd)
- Gif89a2.Top = ((F2D.Height - 1070) * Rnd)
- Gif89a2.Visible = True
- Cpt = Cpt + 1
- 'On ajoute une boule
- For i = 1 To 30
- If TabBoule(i, 0) = 0 Then 'Si l'emplacement est vide
- Load Gif89a3(i) 'création d'une nouvelle boule
- Gif89a3(i).FileName = App.Path & "\boule.gif"
- Gif89a3(i).AutoSize = True
- Gif89a3(i).AutoStart = True
- Gif89a3(i).Visible = True 'on les rend visibles et on les place
- Gif89a3(i).Left = ((3970 - Gif89a1.Width) * Rnd)
- Gif89a3(i).Top = ((F2D.Height - 1070) * Rnd)
- TabBoule(i, 0) = (Rnd * 3) + 1 '1, 2, 3 ou 4 => Haut Bas Gauche Droite
- TabBoule(i, 1) = (Rnd * 30) + 10 'vitesse
- Exit For
- End If
- Next i
- 'Si on touche un certain nombre de pièces Apparition d'une fée => Bonus ou malus
- If Cpt Mod 4 = 0 Then 'Tous les 4 anneaux
- Fairy = (Rnd * 5) + 1 'On choisit une fée au hasard
- Gif89a4.FileName = App.Path & "\fee" & Fairy & ".gif"
- Gif89a4.AutoSize = True
- Gif89a4.AutoStart = True
- Gif89a4.Visible = True 'on les rend visibles et on les place
- Gif89a4.Left = ((3970 - Gif89a4.Width) * Rnd)
- Gif89a4.Top = ((F2D.Height - 1070) * Rnd)
- TpsAff = 300 'Temps d'affichage du bonus => 6 secondes
- End If
- End Sub
- 'Gestion des collisions entre les différents objets
- Private Sub Collision(X1 As Integer, Y1 As Integer, X2 As Integer, Y2 As Integer, L1 As Integer, H1 As Integer, L2 As Integer, H2 As Integer, Sens As String, Obj As String)
- Select Case Sens
- Case "Z" 'Gauche ou droite, même critère
- Y1 = Y1 '+ 100
- L1 = L1 '- 184
- H1 = H1 '- 100
- L2 = L2 - 20
- H2 = H2 - 20
- If (((X1 + L1) >= X2) And (X1 <= (X2 + L2))) Then
- If (((Y1 + H1) >= Y2) And (Y1 <= (Y2 + H2))) Then
- Select Case Left(Obj, 3)
- Case "bou"
- If TpsBonus <> 0 Then 'Si on a un bonus
- FairyAction Fairy, Obj 'action spéciale
- Else 'Sinon dès qu'on touche on perd
- If Left(Obj, 5) = "boule" Then MsgBox "Perdu": Timer.Interval = 0: Arret: Me.New.SetFocus 'Perdu
- End If
- Case "coi": Me.Score = Me.Score + 80: DeplaceCoin 'On Change la pièce de place
- Case "fee" 'Si la fée est visible et qu'on la touche
- If Gif89a4.Visible = True Then
- Efface Fairy 'On efface la fée et réalise quelques actions
- End If
- End Select
- End If
- End If
- End Select
- End Sub
- 'Arrêt de l'animation du personnage lorsqu'on ne le déplace pas
- Private Sub Arret()
- Select Case Me.Gif89a1.FileName
- Case App.Path & "\Down1.gif": Me.Gif89a1.FileName = App.Path & "\Down0.gif"
- Case App.Path & "\Up1.gif": Me.Gif89a1.FileName = App.Path & "\Up0.gif"
- Case App.Path & "\left1.gif": Me.Gif89a1.FileName = App.Path & "\left0.gif"
- Case App.Path & "\right1.gif": Me.Gif89a1.FileName = App.Path & "\right0.gif"
- End Select
- End Sub
- 'Efface la fée quand on la touche, attribution des bonus
- Private Sub Efface(Couleur As Integer)
- TpsBonus = 300 '6 secondes
- Gif89a4.Visible = False 'On fait disparaître la fée
- TpsAff = 0 'On réduit son temps d'affichage à 0
- Me.Bonus.ForeColor = vbRed 'Couleur Rouge
- Select Case Couleur 'Texte à afficher en cas de bonus ou malus :)
- Case 1: Me.Bonus = "Destruction"
- Case 2: Me.Bonus = "Invisible"
- Case 3: Me.Bonus = "+ 160 pts": Me.Score = Me.Score + 160
- Case 4: Me.Bonus = "Perdu": MsgBox "Perdu": Timer.Interval = 0: Arret: Me.New.SetFocus
- Case 5: Me.Bonus = "- 160 pts": Me.Score = Me.Score - 160
- End Select
- End Sub
- 'Action en fonction de la couleur de la fée
- Private Sub FairyAction(Couleur As Integer, Obj As String)
- Select Case Fairy
- Case 1 'Destruction
- TabBoule(Right(Obj, 1), 0) = 0: TabBoule(Right(Obj, 1), 1) = 0
- Unload Me.Gif89a3(Right(Obj, 1)) 'destruction de la boule q
- Case 2 'On passe au travers - Invisible pas d'action
- Case Else 'Gestion de la collision normale
- MsgBox "Perdu": Timer.Interval = 0: Arret: Me.New.SetFocus 'Perdu
- End Select
- End Sub
- 'Déplacement des boules
- Private Sub BoulesDpl()
- Dim i As Integer
- For i = 0 To 30
- If i <> 0 Then
- If (TabBoule(i, 0) <> 0) Then
- Select Case TabBoule(i, 0) 'Gestion du déplacement
- Case 2 'vers le bas
- If Gif89a3(i).Top > (F2D.Height - 800) Then
- TabBoule(i, 0) = 1
- Else 'on change de sens
- TabBoule(i, 0) = 2
- End If
- Case 1 'vers la haut
- If Gif89a3(i).Top < 50 Then
- TabBoule(i, 0) = 2
- Else
- TabBoule(i, 0) = 1
- End If
- Case 4 'vers la droite
- If Gif89a3(i).Left > (3780) Then
- TabBoule(i, 0) = 3
- Else 'on change de sens
- TabBoule(i, 0) = 4
- End If
- Case 3 'vers la gauche
- If Gif89a3(i).Left < 50 Then
- TabBoule(i, 0) = 4
- Else
- TabBoule(i, 0) = 3
- End If
- End Select
- 'Déplacement des boules
- Select Case TabBoule(i, 0)
- Case 3, 4 'Déplacement latéral X , Y, Sens , épaiseur, Vitesse
- Gif89a3(i).Left = ChkDpl(Gif89a3(i).Left, 0, TabBoule(i, 0), 10, TabBoule(i, 1))
- Case 1, 2
- Gif89a3(i).Top = ChkDpl(0, Gif89a3(i).Top, TabBoule(i, 0), 10, TabBoule(i, 1))
- End Select 'Collision avec le personnage
- Collision Gif89a1.Left, Gif89a1.Top, _
- Gif89a3(i).Left, Gif89a3(i).Top, _
- Gif89a1.Width, Gif89a1.Height, _
- Gif89a3(i).Width, Gif89a3(i).Height, "Z", "boule" & i
- End If
- End If
- Next i
- End Sub
Option Explicit
'Libraries pour la gestion de l'appuie des touches
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Dim Jeu As Integer
Dim foot As Integer 'Distance
Dim Sens As String 'Sens des boules
Dim Cpt As Integer 'Compteur de pièces
Dim Tps As Integer 'Temps que le bonus reste affiché
Dim TpsAff As Integer 'Temps d'affichage du bonus
Dim TpsBonus As Integer 'Temps que dure le bonus qd on l'a en milliseconde
Dim TabBoule(30, 1) As Integer 'Sens et vitesse
Dim Fairy As Integer 'Numéro de la fée affichée
Const Pressed = -32767
Private Sub Form_Load()
Randomize
Dim i As Integer
Show
foot = 36 'taille d'un pas (vitesse)
Fairy = 0 'On initialise la couleur de la fée
Cpt = 0 '0 pièces
For i = 0 To 30 'Initialisation du tableau des boules
TabBoule(i, 0) = 0 'Sens
TabBoule(i, 1) = 0 'Vitesse
Next i
Gif89a1.FileName = App.Path & "\left1.gif"
Gif89a1.AutoSize = True
Gif89a1.AutoStart = True
Gif89a2.FileName = App.Path & "\anneau.gif"
Gif89a2.AutoSize = True
Gif89a2.AutoStart = True
End Sub
'Nouvelle Partie
Private Sub New_Click()
Dim i As Integer
For i = 0 To 30
If TabBoule(i, 0) <> 0 Then
Unload Me.Gif89a3(i) 'On se décharge des boules
End If
TabBoule(i, 0) = 0 'On réinitialise
TabBoule(i, 1) = 0 'le tableau de boules
Next i
Me.Score = 0: Cpt = 0: TpsBonus = 0: TpsAff = 0
Me.Gif89a4.Visible = False
Me.Timer.Interval = 1 'on fait repartir le timer
End Sub
Private Sub Timer_Timer()
'Déplacement du personnage gestion de l'appuie sur les flèches
Select Case True
Case GetKeyState(&H28) < 0 'bas
If Me.Gif89a1.FileName <> App.Path & "\Down1.gif" Then
Me.Gif89a1.FileName = App.Path & "\Down1.gif"
End If
Me.Gif89a1.Top = ChkDpl(0, Me.Gif89a1.Top, 2, 1070, foot)
'Déplacement en diagonale
Select Case True
Case GetKeyState(&H25) < 0 'Gauche
Me.Gif89a1.Left = ChkDpl(Me.Gif89a1.Left, 0, 3, 1070, foot)
Case GetKeyState(&H27) < 0 'droite
Me.Gif89a1.Left = ChkDpl(Me.Gif89a1.Left, 0, 4, 610, foot)
End Select
Case GetKeyState(&H26) < 0 'haut
If Me.Gif89a1.FileName <> App.Path & "\Up1.gif" Then
Me.Gif89a1.FileName = App.Path & "\Up1.gif"
End If
Me.Gif89a1.Top = ChkDpl(0, Me.Gif89a1.Top, 1, 0, foot)
'Déplacement en diagonale
Select Case True
Case GetKeyState(&H25) < 0 'Gauche
Me.Gif89a1.Left = ChkDpl(Me.Gif89a1.Left, 0, 3, 1070, foot)
Case GetKeyState(&H27) < 0 'droite
Me.Gif89a1.Left = ChkDpl(Me.Gif89a1.Left, 0, 4, 610, foot)
End Select
Case GetKeyState(&H27) < 0 'droite
If Me.Gif89a1.FileName <> App.Path & "\right1.gif" Then
Me.Gif89a1.FileName = App.Path & "\right1.gif"
End If
Me.Gif89a1.Left = ChkDpl(Me.Gif89a1.Left, 0, 4, 610, foot)
Case GetKeyState(&H25) < 0 'gauche
If Me.Gif89a1.FileName <> App.Path & "\left1.gif" Then
Me.Gif89a1.FileName = App.Path & "\left1.gif"
End If
Me.Gif89a1.Left = ChkDpl(Me.Gif89a1.Left, 0, 3, 0, foot)
Case Else
Arret 'Le perso ne bouge plus
End Select
'Déplacement des boules
BoulesDpl
'Tps d'apparition de la fée
If TpsAff <> 0 Then
TpsAff = TpsAff - 1
'Collision avec la fée si elle est affichée
Collision Gif89a1.Left, Gif89a1.Top, _
Gif89a4.Left, Gif89a4.Top, _
Gif89a1.Width, Gif89a1.Height, _
Gif89a4.Width, Gif89a4.Height, "Z", "fee"
Else 'Si le temps d'affichage est mis à 0 en le touchant ou fin du compteur
If Me.Gif89a4.Visible = True Then _
Me.Gif89a4.Visible = False 'On fait disparaître la fée
End If
If TpsBonus <> 0 Then 'Fait clignoter le nom du bonus
If TpsBonus Mod 50 > 25 Then
If TpsBonus < 300 Then Me.Bonus.ForeColor = vbRed 'Change de couleur selon
If TpsBonus < 200 Then Me.Bonus.ForeColor = &H80FF& 'le temps qu'il reste
If TpsBonus < 100 Then Me.Bonus.ForeColor = vbYellow 'Avant de perdre le pouvoir
Else
Me.Bonus.ForeColor = vbBlack
End If
TpsBonus = TpsBonus - 1 'Réduction du TpsBonus de 6s
Else
Me.Bonus = ""
End If
End Sub
'Gestion des déplacements
Private Function ChkDpl(X As Integer, Y As Integer, Signe As Integer, Epaisseur As Integer, ByVal Vitesse As Integer) As Integer
Dim H As Integer
Dim L As Integer
Dim Dpl As Integer
Dpl = Vitesse
H = F2D.Height - Epaisseur 'calcul de la hauteur max
L = 4400 - Epaisseur 'calcul de la largeur max
Select Case Signe
Case 2 'vers le bas
If (Y + Dpl < H) Then
ChkDpl = Y + Dpl
Collision Gif89a1.Left, Gif89a1.Top, _
Gif89a2.Left, Gif89a2.Top, _
Gif89a1.Width, Gif89a1.Height, _
Gif89a2.Width, Gif89a2.Height, "Z", "coin"
Else
ChkDpl = Y
End If
Case 4 'vers la droite
If (X + Dpl < L) Then
ChkDpl = X + Dpl
Collision Gif89a1.Left, Gif89a1.Top, _
Gif89a2.Left, Gif89a2.Top, _
Gif89a1.Width, Gif89a1.Height, _
Gif89a2.Width, Gif89a2.Height, "Z", "coin"
Else
ChkDpl = X
End If
Case 1 'vers le haut
If (Y - Dpl > 0) Then
ChkDpl = Y - Dpl
Collision Gif89a1.Left, Gif89a1.Top, _
Gif89a2.Left, Gif89a2.Top, _
Gif89a1.Width, Gif89a1.Height, _
Gif89a2.Width, Gif89a2.Height, "Z", "coin"
Else
ChkDpl = Y
End If
Case 3 'vers la gauche
If (X - Dpl > 0) Then
ChkDpl = X - Dpl
Collision Gif89a1.Left, Gif89a1.Top, _
Gif89a2.Left, Gif89a2.Top, _
Gif89a1.Width, Gif89a1.Height, _
Gif89a2.Width, Gif89a2.Height, "Z", "coin"
Else
ChkDpl = X
End If
End Select
End Function
'Fait apparaître la pièce à un autre endroit qd on la touche
Private Sub DeplaceCoin()
Dim i As Integer
'On déplace la pièce
Gif89a2.Visible = False
Gif89a2.Left = ((3970 - Gif89a1.Width) * Rnd)
Gif89a2.Top = ((F2D.Height - 1070) * Rnd)
Gif89a2.Visible = True
Cpt = Cpt + 1
'On ajoute une boule
For i = 1 To 30
If TabBoule(i, 0) = 0 Then 'Si l'emplacement est vide
Load Gif89a3(i) 'création d'une nouvelle boule
Gif89a3(i).FileName = App.Path & "\boule.gif"
Gif89a3(i).AutoSize = True
Gif89a3(i).AutoStart = True
Gif89a3(i).Visible = True 'on les rend visibles et on les place
Gif89a3(i).Left = ((3970 - Gif89a1.Width) * Rnd)
Gif89a3(i).Top = ((F2D.Height - 1070) * Rnd)
TabBoule(i, 0) = (Rnd * 3) + 1 '1, 2, 3 ou 4 => Haut Bas Gauche Droite
TabBoule(i, 1) = (Rnd * 30) + 10 'vitesse
Exit For
End If
Next i
'Si on touche un certain nombre de pièces Apparition d'une fée => Bonus ou malus
If Cpt Mod 4 = 0 Then 'Tous les 4 anneaux
Fairy = (Rnd * 5) + 1 'On choisit une fée au hasard
Gif89a4.FileName = App.Path & "\fee" & Fairy & ".gif"
Gif89a4.AutoSize = True
Gif89a4.AutoStart = True
Gif89a4.Visible = True 'on les rend visibles et on les place
Gif89a4.Left = ((3970 - Gif89a4.Width) * Rnd)
Gif89a4.Top = ((F2D.Height - 1070) * Rnd)
TpsAff = 300 'Temps d'affichage du bonus => 6 secondes
End If
End Sub
'Gestion des collisions entre les différents objets
Private Sub Collision(X1 As Integer, Y1 As Integer, X2 As Integer, Y2 As Integer, L1 As Integer, H1 As Integer, L2 As Integer, H2 As Integer, Sens As String, Obj As String)
Select Case Sens
Case "Z" 'Gauche ou droite, même critère
Y1 = Y1 '+ 100
L1 = L1 '- 184
H1 = H1 '- 100
L2 = L2 - 20
H2 = H2 - 20
If (((X1 + L1) >= X2) And (X1 <= (X2 + L2))) Then
If (((Y1 + H1) >= Y2) And (Y1 <= (Y2 + H2))) Then
Select Case Left(Obj, 3)
Case "bou"
If TpsBonus <> 0 Then 'Si on a un bonus
FairyAction Fairy, Obj 'action spéciale
Else 'Sinon dès qu'on touche on perd
If Left(Obj, 5) = "boule" Then MsgBox "Perdu": Timer.Interval = 0: Arret: Me.New.SetFocus 'Perdu
End If
Case "coi": Me.Score = Me.Score + 80: DeplaceCoin 'On Change la pièce de place
Case "fee" 'Si la fée est visible et qu'on la touche
If Gif89a4.Visible = True Then
Efface Fairy 'On efface la fée et réalise quelques actions
End If
End Select
End If
End If
End Select
End Sub
'Arrêt de l'animation du personnage lorsqu'on ne le déplace pas
Private Sub Arret()
Select Case Me.Gif89a1.FileName
Case App.Path & "\Down1.gif": Me.Gif89a1.FileName = App.Path & "\Down0.gif"
Case App.Path & "\Up1.gif": Me.Gif89a1.FileName = App.Path & "\Up0.gif"
Case App.Path & "\left1.gif": Me.Gif89a1.FileName = App.Path & "\left0.gif"
Case App.Path & "\right1.gif": Me.Gif89a1.FileName = App.Path & "\right0.gif"
End Select
End Sub
'Efface la fée quand on la touche, attribution des bonus
Private Sub Efface(Couleur As Integer)
TpsBonus = 300 '6 secondes
Gif89a4.Visible = False 'On fait disparaître la fée
TpsAff = 0 'On réduit son temps d'affichage à 0
Me.Bonus.ForeColor = vbRed 'Couleur Rouge
Select Case Couleur 'Texte à afficher en cas de bonus ou malus :)
Case 1: Me.Bonus = "Destruction"
Case 2: Me.Bonus = "Invisible"
Case 3: Me.Bonus = "+ 160 pts": Me.Score = Me.Score + 160
Case 4: Me.Bonus = "Perdu": MsgBox "Perdu": Timer.Interval = 0: Arret: Me.New.SetFocus
Case 5: Me.Bonus = "- 160 pts": Me.Score = Me.Score - 160
End Select
End Sub
'Action en fonction de la couleur de la fée
Private Sub FairyAction(Couleur As Integer, Obj As String)
Select Case Fairy
Case 1 'Destruction
TabBoule(Right(Obj, 1), 0) = 0: TabBoule(Right(Obj, 1), 1) = 0
Unload Me.Gif89a3(Right(Obj, 1)) 'destruction de la boule q
Case 2 'On passe au travers - Invisible pas d'action
Case Else 'Gestion de la collision normale
MsgBox "Perdu": Timer.Interval = 0: Arret: Me.New.SetFocus 'Perdu
End Select
End Sub
'Déplacement des boules
Private Sub BoulesDpl()
Dim i As Integer
For i = 0 To 30
If i <> 0 Then
If (TabBoule(i, 0) <> 0) Then
Select Case TabBoule(i, 0) 'Gestion du déplacement
Case 2 'vers le bas
If Gif89a3(i).Top > (F2D.Height - 800) Then
TabBoule(i, 0) = 1
Else 'on change de sens
TabBoule(i, 0) = 2
End If
Case 1 'vers la haut
If Gif89a3(i).Top < 50 Then
TabBoule(i, 0) = 2
Else
TabBoule(i, 0) = 1
End If
Case 4 'vers la droite
If Gif89a3(i).Left > (3780) Then
TabBoule(i, 0) = 3
Else 'on change de sens
TabBoule(i, 0) = 4
End If
Case 3 'vers la gauche
If Gif89a3(i).Left < 50 Then
TabBoule(i, 0) = 4
Else
TabBoule(i, 0) = 3
End If
End Select
'Déplacement des boules
Select Case TabBoule(i, 0)
Case 3, 4 'Déplacement latéral X , Y, Sens , épaiseur, Vitesse
Gif89a3(i).Left = ChkDpl(Gif89a3(i).Left, 0, TabBoule(i, 0), 10, TabBoule(i, 1))
Case 1, 2
Gif89a3(i).Top = ChkDpl(0, Gif89a3(i).Top, TabBoule(i, 0), 10, TabBoule(i, 1))
End Select 'Collision avec le personnage
Collision Gif89a1.Left, Gif89a1.Top, _
Gif89a3(i).Left, Gif89a3(i).Top, _
Gif89a1.Width, Gif89a1.Height, _
Gif89a3(i).Width, Gif89a3(i).Height, "Z", "boule" & i
End If
End If
Next i
End Sub
Historique
- 13 décembre 2008 10:32:14 :
- Optimisation du code
Déplacement en diagonale
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Jeu de dames [ par Christophe ]
Je cherche à réaliser un mini-jeu de dames. Sachant qu'on doit pouvoir ensuite gérer des événements Drag-Drop, quels types de contrôles dois-je utilis
winamp et VB5 [ par Rescator ]
bonjourj'utilise un petit prog ecris sous vb5 pour commander un jeu de lumière par le port // de mon PC. seulement j'aimerais récupérer le tempo de la
bouger objet avet une manette de jeu? [ par ZIDANE ]
Est ce que quelqu'un sait comment faire pour bouger un objet avec une mannette de jeu ordinaire ? (gamepad)Si vous avez la réponse pouvez vous me l'en
Jeu de tir à la Rogue Spear [ par Nat ]
Salut.Je développe un jeu de tir et j'ai grave besoin d'aide.Il me manque un graphiste et j'aimerais aussi savoir comment on fait pour interpréter la
SOURCE JEU D'ECHEC [ par TOUATI ]
POUR UN HANDICAPE SEMI VISUEL JE CHERCHE DES SOURCES POUR ADAPTER CE JEU A CES PROBLEMES POUR CELA JE CHERCHE /1/ les sources d'un jeu d'echec 2 / un
Cmt afficher une fenetre par dessus un jeu windows ? [ par lechti62 ]
Bonjour je voudrai savoir si il est possible quand un jeu Windows ou Direct Xest lancé, de pouvoir afficher un programme fait avec VB par dessus ce je
Comment creer un serveur de jeux en reseaux? [ par Momo3dfx ]
Salut a tous,j'ai un exellent site, sur un jeu, j'ai du matos pour faire un serveur, j'ai tout sauf l'expérience et el savoir faire.-Comment fait-on p
AIDE DATA SVP ! [ par Seb ]
Je fais un programme jeu :j ai une basse access que j accede grace au data de vb et j aimerai mettre a jour le score d'une personne à la fin d un jeu.
Tri d'un fichier pour un jeu [ par @ thedentiste @ ]
J'aimerai savoir comment peut on trier un fichierc'est pour faire une table des scores avec deux éléments le nom du joueur et le score Merci d'avance@
DX : aidez moi svp !!!!!!!!!!!!!!!!!!!!!!!!!!!!!! [ par Ophidian ]
a ceux qui sy connaissent et aux autres :dans la source du moteur3D en DX de je sais plus qui, on est dans un monde en 3D et on peut bouger. Comment f
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|