Je suis en train de faire un jeu "Snake" en VB2010. J'utilise des boîtes d'images pour créer le serpent. Le serpent se déplace bien et il ramasse les pommes bien. Mais quand je tourne le serpent vers la gauche ou vers le haut, il n'affiche que les 5 premiers segments du serpent. Lorsque le serpent se déplace vers la droite ou vers le bas, il affiche le serpent entier. Je suis complètement perplexe sur ce qui se passe.Vb2010 - jeu de serpent numéro
Voici mon code pour déplacer le serpent.
'Moving the Body Of the Snake
For i As Integer = (Length - 1) To 1 Step (-1)
Snake(i).X = Snake(i - 1).X
Snake(i).Y = Snake(i - 1).Y
SnakeBody(i).Location = New Point(Snake(i).X, Snake(i).Y)
Snake(i).Facing = Snake(i - 1).Facing
Next i
'Moves the Head of the Snake
'Moves Left
If Snake(0).Facing = 1 Then
Snake(0).X = Snake(0).X - 20
SnakeBody(0).Location = New Point(Snake(0).X, Snake(0).Y)
' Moves Up
ElseIf Snake(0).Facing = 2 Then
Snake(0).Y = Snake(0).Y - 20
SnakeBody(0).Location = New Point(Snake(0).X, Snake(0).Y)
' Moves Right
ElseIf Snake(0).Facing = 3 Then
Snake(0).X = Snake(0).X + 20
SnakeBody(0).Location = New Point(Snake(0).X, Snake(0).Y)
' Moves Down
ElseIf Snake(0).Facing = 4 Then
Snake(0).Y = Snake(0).Y + 20
SnakeBody(0).Location = New Point(Snake(0).X, Snake(0).Y)
End If
Length += 1
Voici également le code qui ajoute un segment au serpent lorsqu'il entre en contact avec la pomme.
'Checks to see if the head of the snake finds the food
If Snake(0).X = Food.Left And Snake(0).Y = Food.Top Then
LoadSnakeBody()
'Placing the new body on its place
If Snake(Length - 1).Facing = 1 Then 'Looking left
Snake(Length).X = Snake(Length - 1).X - SnakeBody(0).Width
Snake(Length).Y = Snake(Length - 1).Y
SnakeBody(Length).Location = New Point(Snake(Length).X, Snake(Length).Y)
SnakeBody(Length).Visible = True
ElseIf Snake(Length - 1).Facing = 2 Then 'Looking up
Snake(Length).X = Snake(Length - 1).X
Snake(Length).Y = Snake(Length - 1).Y + SnakeBody(0).Height
SnakeBody(Length).Location = New Point(Snake(Length).X, Snake(Length).Y)
SnakeBody(Length).Visible = True
ElseIf Snake(Length - 1).Facing = 3 Then 'Looking right
Snake(Length).X = Snake(Length - 1).X - SnakeBody(0).Width
Snake(Length).Y = Snake(Length - 1).Y
SnakeBody(Length).Location = New Point(Snake(Length).X, Snake(Length).Y)
SnakeBody(Length).Visible = True
ElseIf Snake(Length - 1).Facing = 4 Then 'Looking down
Snake(Length).X = Snake(Length - 1).X
Snake(Length).Y = Snake(Length - 1).Y - SnakeBody(0).Height
SnakeBody(Length).Location = New Point(Snake(Length).X, Snake(Length).Y)
SnakeBody(Length).Visible = True
End If
PlaceFood()
End If
Si quelqu'un pouvait me dire ce qui ne va pas, j'apprécierais beaucoup!
Merci
Avez-vous de la chance pour résoudre votre problème? – awshepard