Déplacement balle pong [Résolu]

christophesu 2 Messages postés mardi 28 novembre 2006Date d'inscription 5 juin 2007 Dernière intervention - 5 juin 2007 à 09:08 - Dernière réponse : christophesu 2 Messages postés mardi 28 novembre 2006Date d'inscription 5 juin 2007 Dernière intervention
- 5 juin 2007 à 21:32
Hello,
J'ai commencé a faire un Pong en VB 6.0 et la où je n'arrive plus c'est au moment de
faire le déplacement de la balle. Si une bonne ame serait assez patient pour m'aider sa serait super!

Merci d'avance
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 5 juin 2007 à 09:34
3
Merci
ce n'est jamais que l'utilisation toute bête de la fonction move !

(syntaxe object.Move left, top, width, height)

voiur dans ton aide en ligne ou utiliser F1 !

Tu auras, bien évidemment, à calculer des déplacements et tes rebonds (collisions) pour définir les valeurs left et top, mais cet aspect là est purement arithmétique (et n'a plus rien à voir avec la connaissance d'une syntaxe VP particulière)

Merci jmfmarques 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de jmfmarques
Meilleure réponse
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 5 juin 2007 à 09:48
3
Merci
Tiens, si la chose t'amuse...
Voilà un exemple plus complexe

sur ta form :
- 1 timer Timer1
- 1 picturebox Picture1 avec, en son intérieur : une shape circulaire nommée boule

Private versgauche As Integer, versdroite As Integer, sensx As Single, sensy As Single, kx As Single, ky As Single
Private Sub Form_Activate()
  Randomize
  Me.Move Screen.Width / 3, Screen.Height / 3, Screen.Width / 3, Screen.Height / 3
  With Picture1
     .Move 0, 0, 5000, 5000
     .BackColor = RGB(255, 255, 254)
     .AutoRedraw = True
     .FillColor = RGB(255, 255, 255)
     .FillStyle = 0
   End With
   Timer1.Enabled = True
   Picture1.Circle (2000, 2000), 1500, RGB(255, 0, 0), , , 1.5
   boule.Shape = 3
   boule.Move 2100, 2500, 300, 300
   Timer1.Interval = 20
   versgauche = 100
   vershaut = 120
   sensx = -1
   sensy = 1
   kx = 1
   ky = 1
End Sub


Private Sub Timer1_Timer()
 
  boule.Move boule.Left + (versgauche + kx) * sensx, boule.Top + (vershaut + ky) * sensy
  DoEvents
  If boum(Picture1, boule, vbWhite) Then
     'Timer1.Enabled = False
     While boum(Picture1, boule, vbWhite)
       boule.Move boule.Left - Int((versgauche + kx) * sensx / 10), boule.Top - Int((vershaut + ky) * sensy / 10)
       DoEvents
     Wend
     'MsgBox "boum"
     sensx = -sensx
     sensy = -sensy
     kx = Int((100 * Rnd) + 1) / 10
     ky = Int((100 * Rnd) + 1) / 5
  End If
End Sub


Private Function boum(controle As PictureBox, maboule As Shape, couleur As Long) As Boolean
   X1 = maboule.Left + (maboule.Width / 2)
   Y1 = maboule.Top
   X2 = maboule.Left + maboule.Width
   Y2 = maboule.Top + (maboule.Height / 2)
   X3 = X1
   Y3 = Y1 + maboule.Height
   X4 = maboule.Left
   Y4 = Y2
  If controle.Point(X1, Y1) <> couleur Then boum = True: Exit Function
  If controle.Point(X2, Y2) <> couleur Then boum = True: Exit Function
  If controle.Point(X3, Y3) <> couleur Then boum = True: Exit Function
  If controle.Point(X4, Y4) <> couleur Then boum = True
End Function


voilà donc le principe (et tu vois bien qu'à part la connaissance de Move, tout n'est que calcul)...
Fais les tiens ...


 

Merci jmfmarques 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de jmfmarques
Meilleure réponse
christophesu 2 Messages postés mardi 28 novembre 2006Date d'inscription 5 juin 2007 Dernière intervention - 5 juin 2007 à 21:32
3
Merci
Merci!!!
Je vais m'y mettre dès demain!
A bientot

Merci christophesu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de christophesu

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.