begin process at 2012 05 27 06:56:24
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > JEU EN GIFS ANIMÉS FIRECOIN

JEU EN GIFS ANIMÉS FIRECOIN


 Information sur la source

Note :
Aucune note
Catégorie :Jeux Classé sous :Jeu, Gifs animés, GIF89, Firecoin, TBBUIM Niveau :Débutant Date de création :29/11/2008 Date de mise à jour :13/12/2008 10:32:14 Vu / téléchargé :3 322 / 308

Auteur : tbbuim1

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

13 décembre 2008 10:32:14 :
Optimisation du code Déplacement en diagonale

 Sources du même auteur

Source avec Zip Source avec une capture JEU DE REFLEXION ET D'ENTRAINEMENT OCULAIRE
Source avec Zip Source avec une capture JEU DE MATH - CALCUL MENTAL
REMPLACER LE SYMBOLE DÉCIMAL
Source avec Zip Source avec une capture OCX PROGRESSBAR SANS FIN PARAMÉTRABLE
Source avec Zip Source avec une capture DEMINEUR RESEAU TYPE MSN WINSOCK

 Sources de la même categorie

Source avec Zip [VBA] TOWER BATTLE 4 par Softmama
Source avec Zip Source avec une capture [VBA] TOWER BATTLE 3 par Softmama
Source avec Zip Source avec une capture Source .NET (Dotnet) XBOXLIVE AVATAR DOWNLOAD par quentinix
Source avec Zip Source avec une capture Source .NET (Dotnet) GÉNÉRATEUR DE GRILLES DE MOTS MÉLÉS par ardeliner
Source avec Zip HUTOWERS JEU DE CARTES SIMILAIRE AU VIEIL ADATOWERS QUI NE M... par roudoudou2708

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture COLUMETRIS par Softmama
Source avec Zip Source avec une capture Source .NET (Dotnet) DES CHIFFRES ET DES LETTRES par ShayW
Source avec Zip Source avec une capture JEU DE REFLEXION ET D'ENTRAINEMENT OCULAIRE par tbbuim1
Source avec Zip Source avec une capture BMW SERIE 7 par serge_saati
Source avec Zip Source avec une capture $$$ BLACKJACK $$$ LE CÉLÈBRE JEU DU 21 PRATIQUÉ DANS LES CAS... par FrAnCkY555

Commentaires et avis

Commentaire de jrivet le 01/12/2008 00:22:26

Salut,
Petites améliorations possibles.

-Le fond vert brrrrr (flashee non?)
-Un simple Msgbox pour dire perdu??? (dommage non?)
- pourquoi 2 raccourcis pour nouvelle partie?

pour le code quelques petites améliorations.
-pourquoi utiliser un module?
-pourquoi mettre Jeu ,foot ,Sens ,Cpt ,Tps ,TpsAff ,TpsBonus en variables  publiques??
-pourquoi faire parfois Gif89a2.AutoSize = True ET PARFOIS Me.Gif89a4.Visible = False
Attentoin dans la déclaration Dim H, L, Dpl As Integer  SEUL Dpl est de style integer H et L sont de type Variant

@+
Julien

Commentaire de tbbuim1 le 01/12/2008 09:51:54

Merci pour tes remarques.
Moi j'aime bien le fond, tu voudrais que ça soit de quelle couleur? ^o)
Je voulais mettre une image dessus, mais les gifs sont transparent avec la couleur du form mais pas avec son image :s donc j'ai laissé le vert du coup.
J'ai utiliser un module parce qu'au départ je fais toujours ça, mais on peut tout mettre dans le form.
Pour les variables public j'aurais pu mettre dim, mais par habitude aussi j'ai mis public
Pour l'autosize, c'est pour ne pas à avoir à déterminé la taille de l'objet, le gif89 va la déterminer pour moi. gif4.visible = false c'est pour rendre la fée invisible qd le tpsAff est écoulé ou qu'on recommence.
2 raccourcis pour nouvelle partie, car Ctrl+A plus facile à faire que Ctrl+N  (à mon avis) donc j'ai laissé les 2 :)
Pour la déclaration integer, jsuis au courant, mais j'ai eu la flemme de tout écrire, il devait être 3h du mat qd j'ai fait cette partie là.
Pour le perdu je comptais mettre le bonhomme qui tourne sur lui même et tombe, mais je n'ai pas trouver l'animation et pas eu le temps de la faire. Donc tout ceci sur la prochaine maj, en attendant, entraînez-vous!

 Ajouter un commentaire


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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales