Je travaille sur un petit projet de jeu et je suis venu en problème en essayant de déplacer l'objet du point A au point B avec une vitesse de mouvement solide et un chemin de mouvement linéaire.prise de jeu - Mouvement linéaire entre les 2 objets (VB.NET/Tout langage de programmation)
Avec mes recherches, j'ai trouvé un morceau de code pour ce faire, mais il ne semble pas fonctionner parfaitement que la vitesse semble être différente en fonction de l'angle, il se déplace vers.
Ce code au moment:
Dim x As Single, y As Single
Dim sngInc As Single
Dim lStepValue As Long
Dim PT1X = pObj.Left
Dim PT1Y = pObj.Top
Dim PT2X = pTarget.Left
Dim PT2Y = pTarget.Top
If PT1Y = PT2Y Then
sngInc = 1
If PT2X > PT1X Then
lStepValue = 1
Else
lStepValue = -1
End If
y = PT1Y
x = PT1X
x += lStepValue * sngInc
pObj.Left = x
pObj.Top = y
Else
If PT2Y > PT1Y Then
lStepValue = 1
Else
lStepValue = -1
End If
sngInc = (PT2X - PT1X)/Math.Abs(PT1Y - PT2Y)
x = PT1X
y = PT1Y
y += lStepValue
x = x + sngInc * Math.Abs(lStepValue)
pObj.Left = x
pObj.Top = y
End If
À mon projet de test, il est sous une minuterie avec une tique de 30ms. Je l'ai traduit à partir d'un code VB6 que j'ai trouvé quelque part. Le problème est que je l'ai dit plus haut, est que la vitesse de déplacement ne sera pas exactement la valeur de 1, mais quelque chose près de lui en fonction de l'angle. Est-ce que quelqu'un peut me fournir un correctif ou un exemple dans un autre langage de programmation comment cela se fait, parce que je n'ai pas trouvé d'aide de Google attendre le code VB6 que j'ai trouvé et je n'ai aucune expérience sur ce sujet. Je ne suis même pas sûr si on l'appelle mouvement linéaire entre 2 objet.
Merci beaucoup :)
Merci, cela fonctionne comme je le veux :) –