BBAT BATCH ON-LINE
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Connexion

Récupérer mon mot de passe

Qui est en ligne ?
Il y a en tout 2 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 2 Invités

Aucun

Le record du nombre d'utilisateurs en ligne est de 36 le Lun 23 Sep 2024, 10:15
Derniers sujets
» [StackOverflow] Batch to Create video .srt Subtitles with right timing
[AutoIt] Pong EmptyVen 25 Déc 2015, 14:17 par Sachadee

» [devellopez] Formater une date en ligne Dos
[AutoIt] Pong EmptyVen 31 Juil 2015, 10:40 par Dylan Gadacha

» Un super Tuto Batch de IniTScreen
[AutoIt] Pong EmptyLun 08 Juin 2015, 12:16 par InitScreen

» Un code MATRIX sympa
[AutoIt] Pong EmptyDim 12 Avr 2015, 14:27 par Sachadee

» [BAT/EXE] DresolChange changer la sesolution de l´écran
[AutoIt] Pong EmptyMar 17 Mar 2015, 09:12 par Sachadee

» [EXE/bat] DpScript Código Delphi interpreter
[AutoIt] Pong EmptyJeu 12 Mar 2015, 15:48 par Sachadee

» Externo SaveDlg com 2 kb
[AutoIt] Pong EmptyDim 15 Fév 2015, 12:20 par Sachadee

» présentation
[AutoIt] Pong EmptyDim 15 Fév 2015, 12:14 par Sachadee

» [developpez.com] Transcodage fichier vidéo si fichier déposé
[AutoIt] Pong EmptyMar 03 Fév 2015, 01:02 par Sachadee

Flux RSS



Flag Counter
Partenaires
Le deal à ne pas rater :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

[AutoIt] Pong

2 participants

Aller en bas

[AutoIt] Pong Empty [AutoIt] Pong

Message par Dylan Gadacha Lun 22 Sep 2014, 11:06

Salut !

Voici un Pong où vous jouez tout seul contre le mur à l'aide de votre souris (si vous allez vers le haut la raquette monte et si vous allez vers le bas elle descent)

Passez par le code source si vous voulez modifier les paramètres, j'ai la flemme de faire un menu ou une configuration via un .INI.
Je le ferai plus tard.

Code:
#Include <GUIConstants.Au3>
#Include <GUIConstantsEx.Au3>
#Include <WindowsConstants.Au3>
#Include <WinAPI.au3>

HotKeySet("{ESC}", _Quitter)

_WinAPI_ShowCursor(False)

_Game()

Func _Game()
   Global $Width = @DesktopWidth
   Global $Height = @DesktopHeight
   Global $Form1 = GUICreate("AutoIt - Pong", $Width, $Height, 0, 0, $WS_Popup)
   GUISetBkColor("0x000000", $Form1)
   GUISetState(@SW_SHOW, $Form1)
   Global $RacketW = 15 ; // Largeur de la raquette //
   Global $RacketH = 80 ; // Hauteur de la raquette //
   Global $BallS = 15 ; // Dimension de la balle //
   Global $W = 15 ; Taille des murs //
   Global $Coordinates = MouseGetPos()
   Global $H = $Coordinates[1]
   Global $Speed = 10 ; // Vitesse //
   Global $X = $Width/2
   Global $Y = $Height/2
   Global $MoveX = "-3"
   Global $MoveY = "6"
   For $I = 0 To $Height Step $W*2
     GUICtrlCreateLabel("", ($Width-$W)/2, $I, $W, $W)
     GUICtrlSetBkColor(-1, "0xFFFFFF")
   Next
   GUICtrlCreateLabel("", $Width-$W, 0, $W, $Height)
   GUICtrlSetBkColor(-1, "0xFFFFFF")
   $Racket = GUICtrlCreateLabel("", $W, $H, $RacketW, $RacketH)
   GUICtrlSetBkColor($Racket, "0xFFFFFF")
   $Ball = GUICtrlCreateLabel("", ($X-($BallS/2)), ($Y-($BallS/2)), $BallS, $BallS)
   GUICtrlSetBkColor($Ball, "0xFFFFFF")

   While GUIGetMsg() <> $GUI_Event_Close
     $Coordinates = MouseGetPos()
     $H = $Coordinates[1]
     $X = $X+$MoveX
     $Y = $Y+$MoveY
     $Coordinates = MouseGetPos()
     If $H < $W Then $H = $W
     If $H > $Height-$RacketH-$W Then $H = $Height-$RacketH-$W

     ; // Si on est trop à droite et que le déplacement horizontal est positif //
     If $X > $Width-$W And $MoveX > 0 Then
       $MoveX = (-$MoveX) ; // Inverser la valeur //
     EndIf
     ; // Si on est trop en bas et que le déplacement vertical est positif //
     If $Y > $Height-$W And $MoveY > 0 Then
       $MoveY = (-$MoveY) ; // Inverser la valeur //
     EndIf
     ; // Si on est trop haut et le déplacement vertical est negatif //
     If $X < $W And $MoveX < 0 Then
       $MoveX = Abs($MoveX) ; // Rendre positive cette valeur //
     EndIf

     If $Y < $W And $MoveY < 0 Then
       $MoveY = Abs($MoveY) ; // Rendre positive cette valeur //
     EndIf

     If $X < $W+($RacketW+($BallS/2)) And $Y > $H And $Y < $H+$RacketH Then
       $MoveX = (-$MoveX) ; // Inverser la valeur //
     EndIf

     If $X < $W Then _GameOver()
     Sleep($Speed)
     While $H = $Coordinates[1]
       $Coordinates = MouseGetPos()
       $X = $X+$MoveX
       $Y = $Y+$MoveY

       ; // Si on est trop à droite et que le déplacement horizontal est positif //
       If $X > $Width-$W And $MoveX > 0 Then
         $MoveX = (-$MoveX) ; // Inverser la valeur //
       EndIf
       ; // Si on est trop en bas et que le déplacement vertical est positif //
       If $Y > $Height-$W And $MoveY > 0 Then
         $MoveY = (-$MoveY) ; // Inverser la valeur //
       EndIf
       ; // Si on est trop haut et le déplacement vertical est negatif //
       If $X < $W And $MoveX < 0 Then
         $MoveX = Abs($MoveX) ; // Rendre positive cette valeur //
       EndIf

       If $Y < $W And $MoveY < 0 Then
         $MoveY = Abs($MoveY) ; // Rendre positive cette valeur //
       EndIf

       If $X < $W+($RacketW+($BallS/2)) And $Y > $H And $Y < $H+$RacketH Then
         $MoveX = (-$MoveX) ; // Inverser la valeur //
       EndIf

       If $X < $W Then _GameOver()
       GUICtrlDelete($Ball)
       $Ball = GUICtrlCreateLabel("", ($X-($BallS/2)), ($Y-($BallS/2)), $BallS, $BallS)
       GUICtrlSetBkColor($Ball, "0xFFFFFF")
       Sleep($Speed)
     WEnd

     GUICtrlDelete($Racket)
     GUICtrlDelete($Ball)
     $Racket = GUICtrlCreateLabel("", $W, $H, $RacketW, $RacketH)
     GUICtrlSetBkColor($Racket, "0xFFFFFF")
     $Ball = GUICtrlCreateLabel("", ($X-($BallS/2)), ($Y-($BallS/2)), $BallS, $BallS)
     GUICtrlSetBkColor($Ball, "0xFFFFFF")
   WEnd
EndFunc

Func _GameOver()
   GUIDelete($Form1)
   $Form2 = GUICreate("", $Width, $Height, 0, 0, $WS_POPUP)
   GUISetState(@SW_SHOW, $Form2)
   GUICtrlCreateLabel("VOUS AVEZ PERDU !", 0, ($Height-100)/2, $Width, 100, $SS_CENTER)
   GUICtrlSetFont(-1, 40, 0, 0, "Fixedsys")
   GUISetBkColor("0x000000", $Form2)
   GUICtrlSetColor(-1, "0xFFFFFF")
   Sleep(3000)
   GUIDelete($Form2)
   Sleep(100)
   _Game()
EndFunc

Func _Quitter()
   Exit
EndFunc

ECHAP pour quitter.
Le jeu recommence tout seul au bout de 3 secondes.

Dylan.
Dylan Gadacha
Dylan Gadacha
EQUIPE BBAT
EQUIPE BBAT

Mensagens : 106
Data de inscrição : 24/10/2013
Idade : 25

Revenir en haut Aller en bas

[AutoIt] Pong Empty Re: [AutoIt] Pong

Message par Dylan Gadacha Mar 23 Sep 2014, 03:09

Version Transparente:

[Vous devez être inscrit et connecté pour voir ce lien]

Code:
#Include <GUIConstants.Au3>
#Include <GUIConstantsEx.Au3>
#Include <WindowsConstants.Au3>
#Include <WinAPI.au3>

HotKeySet("{ESC}", _Quitter)

_WinAPI_ShowCursor(False)

_Game()

Func _Game()
   Global $Width = @DesktopWidth
   Global $Height = @DesktopHeight
   Global $RacketW = 10 ; // Largeur de la raquette //
   Global $RacketH = 60 ; // Hauteur de la raquette //
   Global $BallS = 10 ; // Dimension de la balle //
   Global $W = 10 ; Taille des murs //
   Global $Coordinates = MouseGetPos()
   Global $H = $Coordinates[1]
   Global $Speed = 10 ; // Vitesse //
   Global $X = $Width/2
   Global $Y = $Height/2
   Global $MoveX = "-3"
   Global $MoveY = "6"

   For $I = 0 To $Height Step $W*2
     Assign("Form_" & $I, GUICreate("", $W, $W, ($Width-$W)/2, $I, BitOR($WS_POPUP, $DS_MODALFRAME), BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST)), 2)
     GUISetBkColor("0x000000", Eval("Form_" & $I))
     GUISetState(@SW_SHOW, Eval("Form_" & $I))
   Next

   Global $Wall = GUICreate("", $W, $Height, $Width-$W, 0, BitOR($WS_POPUP, $DS_MODALFRAME), BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
   GUISetBkColor("0x000000", $Wall)
   GUISetState(@SW_SHOW, $Wall)

   Global $Racket = GUICreate("", $RacketW, $RacketH, $W, $H, BitOR($WS_POPUP, $DS_MODALFRAME), BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
   GUISetBkColor("0x000000", $Racket)
   GUISetState(@SW_SHOW, $Racket)

   Global $Ball = GUICreate("", $BallS, $BallS, ($X-($BallS/2)), ($Y-($BallS/2)), BitOR($WS_POPUP, $DS_MODALFRAME), BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
   GUISetBkColor("0x000000", $Ball)
   GUISetState(@SW_SHOW, $Ball)

   While GUIGetMsg() <> $GUI_Event_Close
     $Coordinates = MouseGetPos()
     $H = $Coordinates[1]
     $X = $X+$MoveX
     $Y = $Y+$MoveY
     $Coordinates = MouseGetPos()
     If $H < $W Then $H = $W
     If $H > $Height-$RacketH-$W Then $H = $Height-$RacketH-$W

     ; // Si on est trop à droite et que le déplacement horizontal est positif //
     If $X > $Width-$W And $MoveX > 0 Then
       $MoveX = (-$MoveX) ; // Inverser la valeur //
     EndIf
     ; // Si on est trop en bas et que le déplacement vertical est positif //
     If $Y > $Height-$W And $MoveY > 0 Then
       $MoveY = (-$MoveY) ; // Inverser la valeur //
     EndIf
     ; // Si on est trop haut et le déplacement vertical est negatif //
     If $X < $W And $MoveX < 0 Then
       $MoveX = Abs($MoveX) ; // Rendre positive cette valeur //
     EndIf

     If $Y < $W And $MoveY < 0 Then
       $MoveY = Abs($MoveY) ; // Rendre positive cette valeur //
     EndIf

     If $X < $W+($RacketW+($BallS/2)) And $Y > $H And $Y < $H+$RacketH Then
       $MoveX = (-$MoveX) ; // Inverser la valeur //
     EndIf

     If $X < $W Then _GameOver()
     Sleep($Speed)
     While $H = $Coordinates[1]
       $Coordinates = MouseGetPos()
       $X = $X+$MoveX
       $Y = $Y+$MoveY

       ; // Si on est trop à droite et que le déplacement horizontal est positif //
       If $X > $Width-$W And $MoveX > 0 Then
         $MoveX = (-$MoveX) ; // Inverser la valeur //
       EndIf
       ; // Si on est trop en bas et que le déplacement vertical est positif //
       If $Y > $Height-$W And $MoveY > 0 Then
         $MoveY = (-$MoveY) ; // Inverser la valeur //
       EndIf
       ; // Si on est trop haut et le déplacement vertical est negatif //
       If $X < $W And $MoveX < 0 Then
         $MoveX = Abs($MoveX) ; // Rendre positive cette valeur //
       EndIf

       If $Y < $W And $MoveY < 0 Then
         $MoveY = Abs($MoveY) ; // Rendre positive cette valeur //
       EndIf

       If $X < $W+($RacketW+($BallS/2)) And $Y > $H And $Y < $H+$RacketH Then
         $MoveX = (-$MoveX) ; // Inverser la valeur //
       EndIf

       If $X < $W Then _GameOver()

       GUIDelete($Ball)
       $Ball = GUICreate("", $BallS, $BallS, ($X-($BallS/2)), ($Y-($BallS/2)), BitOR($WS_POPUP, $DS_MODALFRAME), BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
       GUISetBkColor("0x000000", $Ball)
       GUISetState(@SW_SHOW, $Ball)

       Sleep($Speed)
     WEnd

     GUIDelete($Racket)
     GUIDelete($Ball)

     $Racket = GUICreate("", $RacketW, $RacketH, $W, $H, BitOR($WS_POPUP, $DS_MODALFRAME), BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
     GUISetBkColor("0x000000", $Racket)
     GUISetState(@SW_SHOW, $Racket)

     $Ball = GUICreate("", $BallS, $BallS, ($X-($BallS/2)), ($Y-($BallS/2)), BitOR($WS_POPUP, $DS_MODALFRAME), BitOR($WS_EX_TOOLWINDOW, $WS_EX_TOPMOST))
     GUISetBkColor("0x000000", $Ball)
     GUISetState(@SW_SHOW, $Ball)
   WEnd
EndFunc

Func _GameOver()
   GUIDelete($Racket)
   GUIDelete($Ball)
   For $I = 0 To $Height Step $W*2
     GUIDelete(Eval("Form_" & $I))
   Next
   GUIDelete($Wall)
   _Game()
EndFunc

Func _Quitter()
   Exit
EndFunc
Dylan Gadacha
Dylan Gadacha
EQUIPE BBAT
EQUIPE BBAT

Mensagens : 106
Data de inscrição : 24/10/2013
Idade : 25

Revenir en haut Aller en bas

[AutoIt] Pong Empty Re: [AutoIt] Pong

Message par Sachadee Mar 23 Sep 2014, 10:26

Excellent Dylan, Bravo !

Tu començes à devenir bon en math.... [AutoIt] Pong 4130014067
Sachadee
Sachadee
Admin
Admin

Mensagens : 591
Data de inscrição : 04/06/2013

https://bbat.forumeiro.com

Revenir en haut Aller en bas

[AutoIt] Pong Empty Re: [AutoIt] Pong

Message par Dylan Gadacha Mar 23 Sep 2014, 12:09

Oh, je dois t'avouer que j'avais les formules sous les yeux [AutoIt] Pong 959169622

(Ou du moins, le cahier des charges) :

Nous voulons que si la balle touche le bord droit, elle rebondisse. Pour ça, nous allons décréter que si x (l'abscisse de la balle, l'axe horizontal) est supérieur à la largeur de la fenêtre et que le déplacement est positif, c'est à dire de la gauche vers la droite, deplacementX est inversé.

Nous voulons que si la balle touche le bas de la fenêtre, elle rebondisse. Pour ça, nous allons décréter que si y (l'ordonnée de la balle, l'axe vertical) est supérieur à la hauteur de la fenêtre et que le déplacement est positif, c'est à dire du haut vers le bas, deplacementY est inversé.

Nous voulons que si la balle touche le haut de la fenêtre, elle rebondisse. Pour ça, nous allons décréter que si y (l'ordonnée de la balle, l'axe vertical) est inférieur à la hauteur de la fenêtre et que le déplacement est négatif, c'est à dire du bas vers le haut, deplacementY est positif.

Nous voulons que si la balle touche le plateau, elle rebondisse. Pour cela, nous allons poser comme condition que si x est inférieur à largeur du plateau + la moitié de celle de la balle, que y est supérieur à h et que y est inférieur à h+hauteur du plateau, deplacementX est inversé.
Dylan Gadacha
Dylan Gadacha
EQUIPE BBAT
EQUIPE BBAT

Mensagens : 106
Data de inscrição : 24/10/2013
Idade : 25

Revenir en haut Aller en bas

[AutoIt] Pong Empty Re: [AutoIt] Pong

Message par Sachadee Mar 23 Sep 2014, 15:14

Wink
Sachadee
Sachadee
Admin
Admin

Mensagens : 591
Data de inscrição : 04/06/2013

https://bbat.forumeiro.com

Revenir en haut Aller en bas

[AutoIt] Pong Empty Re: [AutoIt] Pong

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum