Arachnicide (genre jeu de la taupe, mais avec une araignée)

Description

Le principe de ce jeu est simple : frapper l'araignée autant de fois que possible pour récolter le max de points.

De nouvelles choses ont été mises au point :

- On voit l'heure
- On peut mettre pause
- La form ne se charge que si l'heure est à moins de 30 secondes, sinon, une form de chargement s'affiche à la place, jusqu'à ce que les secondes soient à 00
- Le changement de niveau s'affiche

Il y a juste la capture qui n'est pas d'actualité.

Source / Exemple :


'code de la form de jeu SEULEMENT

'Tous les labels sont cachés
'Certains timers ne sont pas activés
'Enjoy ;)

Private Sub Arachnide_Click()
'Si on clique sur l'araignée,
'On la cache temporairement
Arachnide.Visible = False
'Puis on détermine le score
'j'ai donné un score aléatoire, pour que ce ne soit pas fixe
    Score = Score + Int(Rnd * 26)
End Sub

Private Sub Arachnide_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Si on appuie sur le bouton gauche de la souris,
'(la souris est au-dessus de l'araignée)
'On change de curseur
'Le curseur se trouve dans la form des scores
    Arachnide.MouseIcon = Scores.toc2.Picture
End Sub

Private Sub Arachnide_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Si le bouton de la souris est relâché,
'Mais que la souris est toujours au-dessus de l'araignée,
'Alors on change de curseur (qui est aussi dans la form des scores)
    Arachnide.MouseIcon = Scores.toc.Picture
End Sub

Private Sub Best_score_Click()
'on annonce que l'affichage de la form est volontaire
Scores.Fonction = "0"
'puis on affiche la form des scores
    Scores.Show
End Sub

Private Sub Form_Load()
'on met le score de départ
'c'est logiquement 0 ;)
    Score = "0"
'On écrit le temps dans un label (pour déterminer le niveau et le
'temps de jeu
    Temps = Time$
'On écrit le temps passé dans le jeu
'Je mets -1, car ça ajoute 1 une fois la form chargée (à cause du temps)
    Minutes = "0"
'Si le fichier qui contient le nombre de scores contenus dans
'la liste des scores n'est pas vide,
If App.Path & "\list.txt" <> vbNullString Then
'Alors on l'ouvre
Open App.Path & "\list.txt" For Input As #1
'While not EOF est indispensable à l'utilisation de input
While Not EOF(1)
Input #1, temp
'Puis on le met dans un label
temp = Scores.nb_scores
'Wend donne la fin de While not
Wend
'On ferme
Close #1
Else
'On met fin à la fonction
End If
End Sub

Private Sub Put_off_temp_Click()
'Si on clique sur le bouton qui doit mettre pause,
'Si le label qui affiche que le jeu est en pause est invisible,
    If Pause.Visible = False Then
'alors on active le timer3 (qui va mettre la pause)
        Timer3.Enabled = True
'sinon,
    Else
'Si le label est visible,
    If Pause.Visible = True Then
'on désactive le timer3
        Timer3.Enabled = False
'on cache le label
        Pause.Visible = False
'on affiche l'araignée
        Arachnide.Visible = True
'on réactive les timer1 et timer2
        Timer1.Enabled = True
        Timer2.Enabled = True
    End If
    End If
End Sub

Private Sub Quit_Click()
'Si on veut quitter,
'Alors on met fin au programme
    End
End Sub

Private Sub Replay_Click()
'Si on clique sur recommencer,
'Alors on désactive le timer1
Timer1.Enabled = False
'On cache l'araignée
    Arachnide.Visible = False
'On décharge la feuille
Unload Me
'et on montre la feuille de debut (qui initialise tout).
begin.Show
End Sub

Private Sub Show_level_Change()
    Timer4.Enabled = True
End Sub

Private Sub Timer1_Timer()
'Voilà le timer responsable des mouvement de l'araignée
'On cache le niveau
'On génère un nombre aléatoire entre 1 et 9
'On met la fonction randomize pour que ce ne soit jamais les mêmes nombres générés
'(il faut bien que ça change ;)...)
Randomize
nombre = Int((Rnd * 9) + 1)
'Puis on lance la fonction qui va faire bouger l'araignée
Select Case nombre 'On sélectionne le nombre généré
Case 1 'Si il est égal à 1
'on positionne l'araignée au même endroit que le label1
Arachnide.Left = Label1.Left
Arachnide.Top = Label1.Top
Case 2 'Si il est égal à 2
'on positionne l'araignée au même endroit que le label2
Arachnide.Left = Label2.Left
Arachnide.Top = Label2.Top
Case 3 'Si il est égal à 3
'on positionne l'araignée au même endroit que le label3
Arachnide.Left = Label3.Left
Arachnide.Top = Label3.Top
Case 4 'Si il est égal à 4
'on positionne l'araignée au même endroit que le label4
Arachnide.Left = Label4.Left
Arachnide.Top = Label4.Top
Case 5 'Si il est égal à 5
'on positionne l'araignée au même endroit que le label15
Arachnide.Left = Label5.Left
Arachnide.Top = Label5.Top
Case 6 'Si il est égal à 6
'on positionne l'araignée au même endroit que le label6
Arachnide.Left = Label6.Left
Arachnide.Top = Label6.Top
Case 7 'Si il est égal à 7
'on positionne l'araignée au même endroit que le label7
Arachnide.Left = Label7.Left
Arachnide.Top = Label7.Top
Case 8 'Si il est égal à 8
'on positionne l'araignée au même endroit que le label8
Arachnide.Left = Label8.Left
Arachnide.Top = Label8.Top
Case 9 'Si il est égal à 9
'on positionne l'araignée au même endroit que le label9
Arachnide.Left = Label9.Left
Arachnide.Top = Label9.Top
End Select
'Puis on définit la vitesse du mouvement de l'araignée
'(en changeant l'intervalle du timer)
'l'intervalle du timer = la valeur du label qui a été fait en fonction
'du mode de difficulté
Timer1.Interval = Intervalle.Caption
'Puis on montre l'araignée
Arachnide.Visible = True
End Sub

Private Sub Timer2_Timer()
'on affiche l'heure actuelle dans un label
    Heure = Time$
'on cache le niveau (au cas où...)
'Si les minutes du label(dynamique) = les minutes de l'autre label(fixe)
'+ le temps passé dans le jeu
'(ça calcule donc le temps passé en fonction de l'heure actuelle
'et de l'heure à laquelle la form s'est chargée)
    If Minute(Heure) = Minute(Temps) + Minutes Then
'Alors, il y a 1 minute en +
    Minutes = Minutes + 1
'le niveau augmente donc d'1 cran
    Level_number = Level_number + 1
'on désactive le timer1
    Timer1.Enabled = False
'on cache l'araignée
    Arachnide.Visible = False
'puis on active le timer4
'(ça permet d'afficher le niveau)
    Timer4.Enabled = True
'on le désactive
    Timer4.Enabled = False
'puis on cache le niveau
    Niveau.Visible = False
'on réactive les 2 timers
    Timer1.Enabled = True
    Timer2.Enabled = True
'puis on montre l'araignée
    Arachnide.Visible = True
    End If
'Si le temps passé dans le jeu est de 10 minutes,
    If Minutes = 10 Then
'Alors on annonce la fin du jeu
    MsgBox "Vous êtes arrivé au niveau 10, le jeu se termine là !", vbOKOnly, "Arachnicide"
    nom_joueur = InputBox("Quel est votre nom ?", "Arachnicide - Nom du joueur")
'On mémorise le nom du joueur qui a fait le score
'puis on ajoute le score et le nom du joueur dans la liste des scores
    Scores.List1.AddItem (nom_joueur & " - " & Score)
'Si le nombre de scores est null, alors il égale 0
    If Scores.nb_scores = vbNullString Then Scores.nb_scores = "0"
'le score monte d'1 cran (car on vient d'en ajouter 1)
    Scores.nb_scores = Scores.nb_scores + 1
'On cache la form
    Unload Me
'Puis on détermine que la feuille des scores n'a pas été lancé
'volontairement
    Scores.Fonction = "1"
'On affiche la feuille des scores
    Scores.Show
    End If
End Sub

Private Sub Timer3_Timer()
'Voici le timer qui permet de mettre pause
'on désactive les timer1 et timer2
    Timer1.Enabled = False
    Timer2.Enabled = False
'on cache l'araignée (pour éviter la triche)
    Arachnide.Visible = False
'On montre le label qui affiche pause
    Pause.Visible = True
End Sub

Private Sub Timer4_Timer()
'Voici le timer qui permet d'afficher le niveau actuel
'on remet l'intervalle par défaut
    Timer4.Interval = "1"
'on désactive le timer1
    Timer1.Enabled = False
'on cache l'araignée
    Arachnide.Visible = False
'on détermine le texte label qui affiche le niveau actuel
'(Niveau + " n°_du_niveau")
    Niveau = "Niveau " + Level_number
'on change d'intervalle
    Timer4.Interval = "1000"
'on affiche le niveau
    Niveau.Visible = True
'on désactive ce timer
    Timer4.Enabled = False
'on active le timer1
    Timer1.Enabled = True
End Sub

Private Sub Timer5_Timer()
'on garde le niveau à jour
    Show_level = "Niveau " + Level_number
End Sub

Private Sub Timer6_Timer()
'pour des raisons de sécurité,
'si le timer1 est activé, alors le niveau ne s'affiche pas
    If Timer1.Enabled = True Then Niveau.Visible = False
End Sub

Conclusion :


Voilà, j'ai mis à jour, et tout est parfaitement détaillé, du moins, je l'espère...

J'e m'y suis mis un bon moment pour régler quelques problèmes que j'ai résolu, puis j'en ai profité pour ajouter des options.

Si toutefois vous ne comprenez pas, ou si vous avez un quelconque problème, n'hésitez pas, soit laissez un message sur le forum, soit envoyez-moi un e-mail.

Merci, @+ et bonne prog ;)

Sharky

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.