Un pong tout bete

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 669 fois - Téléchargée 30 fois

Contenu du snippet

Hé bien je suis certain que ce n'est pas le premier sur ce site ;-)
Néanmoin la plupart de ceux que j'ai vu utilisais des controle comme des label ou images :O
Celui ci est tout bete , et tien dans une seule sub, il utilise aucun control (sauf la form biensur)

Donc vous n'avez qu'a copîer-coller le code et faire F5 :P

Il gère les resize de form
Pour les control c'est :
A et Z pour le joueur 1 et FLECHE HAUT et FLECHE BAS pour le joueur 2.

Il y a aussi un limitateur de frame parce que sur ma machine du moin j'approchais du million de frame par secondes sans limite et en mode compilé :-/.

Source / Exemple :


Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Sub pong()
Dim Raq1 As Integer: Raq1 = Height / 2 - 1000
Dim Raq2 As Integer: Raq2 = Height / 2 - 1000
Dim BalleX As Integer: BalleX = 1000
Dim BalleY As Integer: BalleY = 1000
Dim BalleXP As Integer: BalleXP = 75
Dim BalleYP As Integer: BalleYP = 75
Dim PointJ1 As Integer, PointJ2 As Integer
Dim FPS, temp, F
    AutoRedraw = True
    ForeColor = RGB(255, 255, 255)
    BackColor = RGB(0, 0, 0)
Do
    DrawWidth = (Height / 740)
    FPS = FPS + 1
    If GetAsyncKeyState(65) < 0 Then If Raq1 - (Height / 32) > 100 Then Raq1 = Raq1 - (Height / 32) '65
    If GetAsyncKeyState(90) < 0 Then If Raq1 + (Height / 32) < Height - ((Height / 4) + 500) Then Raq1 = Raq1 + (Height / 32) '90
    If GetAsyncKeyState(38) < 0 Then If Raq2 - (Height / 32) > 100 Then Raq2 = Raq2 - (Height / 32) '38
    If GetAsyncKeyState(40) < 0 Then If Raq2 + (Height / 32) < Height - ((Height / 4) + 500) Then Raq2 = Raq2 + (Height / 32)  '40
    Cls
    CurrentX = Width - 800: Print Format(F, "00") & " FPS":: If temp <= Timer Then temp = Timer + 1: F = FPS: FPS = 0
    PSet (BalleX, BalleY) 'On dessine la balle
    Line (100, Raq1)-(100, Raq1 + (Height / 4)) 'La raquete gauche
    Line (Width - 300, Raq2)-(Width - 300, Raq2 + (Height / 4)) 'La raquette droite
    CurrentX = (Width / 2) - TextWidth("XX a XX")
    CurrentY = 20
    Print Format(PointJ1, "00") & " à " & Format(PointJ2, "00") 'Affiche le score
    If BalleY >= Height - 500 Then BalleYP = -75
    If BalleY <= 100 Then BalleYP = 75
    If (BalleX > Width - 400) And (BalleY >= Raq2) And (BalleY <= Raq2 + (Height / 4)) Then BalleXP = -75
    If (BalleX <= 200 And BalleY > 0) And (BalleY >= Raq1) And (BalleY <= Raq1 + (Height / 4)) Then BalleXP = 75
    If BalleX < 0 Then PointJ2 = PointJ2 + 1: BalleX = Width / 2: BalleXP = 75
    If BalleX > Width Then PointJ1 = PointJ1 + 1: BalleX = Width / 2: BalleXP = -75
    BalleX = BalleX + BalleXP
    BalleY = BalleY + BalleYP
    i = Timer + 0.03
    While Timer < i
        DoEvents
    Wend
    DoEvents
Loop
End Sub

Private Sub Form_Load()
Show
Call pong
End Sub

Private Sub Form_Unload(Cancel As Integer)
End
End Sub

Conclusion :


C'est vraiment très basique comme code , mais bon j'avais jamais codé de pong depuis que je programme :)

Théoriquement il devrait pas y avoir de bugs , malgré le fait que je ne l'aille pas soumis a un test rigoureux...

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
lundi 30 octobre 2006
Statut
Membre
Dernière intervention
30 octobre 2006

C'est vrai qu'en pensant ent francs constant (http://www.insee.fr/fr/indicateur/achatfranc.htm) :
Sinclair Zx81 : 990 Francs + Magneto K7 300 Francs + Télé 36 cm N&B 990 Francs + 16 Ko Ram 300 Francs -> 2580 Francs 1981 * 0,32235 -> 831 euros 2005 ...

En tout cas rien ne valait le Locomotive Basic ... Mais à l'époque déjà le plus pourri et le plus répandu etait le microsoft ... au fait est-ce que le gamins de dix ans peuvent encore se faire leur propre jeu d'arcade inspiré de dizaines de code sources sur leur PC comme nous sur nos bécannes ? non ... dommage ...
Messages postés
299
Date d'inscription
lundi 14 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2013
1
à quand la section "anciens combattants" dans le forum ? Je plaisante mais ça pourrait être intéressant !
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
22
lol, ok, excuse, j'ai subodoré le lien... ça arrive (c'est même une tare humaine amusante)!
Messages postés
592
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
4 décembre 2008

Je vois pas ou était mon sarcasme ? J'ai dit que mon premier ordi a été un ZX80 , et que j'ai commencer a coder avec qbasic.... il n'y avait aucun lien entre les 2 .... qb j'ai commencer ça un peu plus tard sur une autre machine...
Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
22
C'est encore sarcastique ça parce que le QBasic n'est apparu qu'avec les versions de MS-DOS... sur IBM (si je dis pas de conneries!). A mon avis, sans connaître le ZX80, c'était du BASIC, pas du QBASIC !!! Enfin bref, on est quand même vachement loin du sujet initiale lol ;D
Afficher les 28 commentaires

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.