Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
FileInstall("balle.jpg", "balle.jpg")
FileInstall("bords.mp3", "bords.mp3")
FileInstall("fond.jpg", "fond.jpg")
FileInstall("letsgo.mp3", "letsgo.mp3")
FileInstall("loose.mp3", "loose.mp3")
FileInstall("raquette.jpg", "raquette.jpg")
FileInstall("raquettes.mp3", "raquettes.mp3")
;~ HotKeySet("{z}","_j1up")
;~ HotKeySet("{s}","_j1down")
HotKeySet("{F1}","_reset")
Opt("GuiOnEventMode", 1)
Dim $GO, $J1, $J2,$posMouse, $ralenti, $ballegauche = True, $pts1 = 0, $pts2 = 0
Local $vitesse = 15, $hauteurRaquettes = 60, $largeurRaquettes = 14, $yB = 30, $hauteurlargeurBalle = 20, $xB = 390, $vitesseBalle = 5
Local $random = 0
Local $IAPrecision = 8 ; 0 = imbatable / 7 = Normal / 8 = Mauvais
Local $MousePlay = 1
Global $IAJoueur1 = 1, $IAJoueur2 = 0, $titre = "GameTest"
$GameWindow = GUICreate($titre, 800, 600, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Quit")
$MousePlayCheckbox = GUICtrlCreateCheckbox("Jouer avec la souris", 8, 8, 121, 17)
$StartButton = GUICtrlCreateButton("Commencer", 8, 32, 115, 25)
GUICtrlSetOnEvent($StartButton,"_GO")
GUISetState(@SW_SHOW)
While $GO <> 1
If GUICtrlRead($MousePlayCheckbox) = $GUI_CHECKED Then
$MousePlay = 1
Else
$MousePlay = 0
EndIf
WEnd
Func _GO()
$GO = 1
EndFunc
If $MousePlay = 0 Then
HotKeySet("{up}","_j2up")
HotKeySet("{down}","_j2down")
EndIf
GUICtrlDelete($MousePlayCheckbox)
GUICtrlDelete($StartButton)
GUISetBkColor(0x000000)
GUICtrlSetOnEvent($GUI_EVENT_CLOSE, "_Quit")
$scores1 = GUICtrlCreateLabel("0", 312, 32, 40, 84)
GUICtrlSetFont(-1, 50, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$scores2 = GUICtrlCreateLabel("0", 456, 30, 40, 84)
GUICtrlSetFont(-1, 50, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$raquette1 = GUICtrlCreatePic("raquette.jpg", 8, 0, $largeurRaquettes, $hauteurRaquettes)
$raquette2 = GUICtrlCreatePic("raquette.jpg", 792-$largeurRaquettes, 0, $largeurRaquettes, $hauteurRaquettes)
$balle = GUICtrlCreatePic("balle.jpg", $xB, $yB, $hauteurlargeurBalle, $hauteurlargeurBalle)
SoundPlay("letsgo.mp3", 0)
AdlibRegister("Adlib", 15)
Func Adlib()
If _IsPressed(26) Then _j2up()
If _IsPressed(28) Then _j2down()
If _IsPressed("5A") Then _j1up()
If _IsPressed(53) Then _j1down()
_IAControl()
$posMouse = MouseGetPos()
$posFenetre = WinGetPos($titre)
If $mouseplay = 1 Then
$J2 = $posMouse[1] - $posFenetre[1] - 25 - ($hauteurRaquettes/2)
_VerifRaquettesHauteur()
GUICtrlSetPos($raquette2,792-$largeurRaquettes,$J2,$largeurRaquettes,$hauteurRaquettes)
EndIf
EndFunc
While 1
$randbot1 = Round(Random(-5, 5))
$randbot2 = Round(Random(-5, 5))
While $ballegauche = True
$xB = $xB - $vitesseBalle
$yB = _Affine(false, $xB, $yB)
GUICtrlSetPos($balle,$xB,_Affine(false, $xB, $yB),$hauteurlargeurBalle,$hauteurlargeurBalle)
sleep(10)
_VerifCollision()
WEnd
While $ballegauche = False
$xB = $xB + $vitesseBalle
$yB = _Affine(false, $xB, $yB)
GUICtrlSetPos($balle,$xB,_Affine(false, $xB, $yB),$hauteurlargeurBalle,$hauteurlargeurBalle)
sleep(10)
_VerifCollision()
WEnd
WEnd
Func _IAControl()
If $IAJoueur1 = 1 Then
$J1 = $yB - ($hauteurRaquettes / 2) + ($randbot1 * $IAPrecision)
_VerifRaquettesHauteur()
GUICtrlSetPos($raquette1,8,$J1,$largeurRaquettes,$hauteurRaquettes)
EndIf
If $IAJoueur2 = 1 Then
$J2 = $yB - ($hauteurRaquettes / 2) + ($randbot2 * $IAPrecision)
_VerifRaquettesHauteur()
GUICtrlSetPos($raquette2,792-$largeurRaquettes,$J2,$largeurRaquettes,$hauteurRaquettes)
EndIf
EndFunc
Func _Affine($randomise, $x, $y)
If $randomise = True Then $random = Round(Random(-5,5))
Return (($random/1000) * $x) + $y
EndFunc
Func _Quit()
Exit
EndFunc
Func _Reset()
$xB = 390
$pts1 = 0
$pts2 = 0
GUICtrlSetData($scores1,$pts1)
GUICtrlSetData($scores2,$pts2)
$random = 0
GUICtrlSetPos($raquette1,8, 0, $largeurRaquettes, $hauteurRaquettes)
GUICtrlSetPos($raquette2,792-$largeurRaquettes, 0, $largeurRaquettes, $hauteurRaquettes)
$J1 = 0
$J2 = 0
SoundPlay("letsgo.mp3", 0)
EndFunc
Func _VerifRaquettesHauteur()
If $J1 < 0 Then $J1 = 0
If $J2 < 0 Then $J2 = 0
If $J1 > 600-$hauteurRaquettes Then $J1 = 600-$hauteurRaquettes
If $J2 > 600-$hauteurRaquettes Then $J2 = 600-$hauteurRaquettes
EndFunc
Func _yVerif()
$zone = 0
If $yB > $J1 - $hauteurlargeurBalle And ($yB + $hauteurlargeurBalle) < ($J1 + $hauteurRaquettes + $hauteurlargeurBalle) Then $zone = $zone + 1
If $yB > $J2 - $hauteurlargeurBalle And ($yB + $hauteurlargeurBalle) < ($J2 + $hauteurRaquettes + $hauteurlargeurBalle) Then $zone = $zone + 2
Return $zone
EndFunc
Func _xVerif()
$zone = 0
If $xB < (8 + $largeurRaquettes) Then $zone = 1
If $xB > (792-$largeurRaquettes-$hauteurlargeurBalle) Then $zone = 2
If $xB < 0 Then $zone = -1
If $xB > (800 - $hauteurlargeurBalle) Then $zone = -2
Return $zone
EndFunc
Func _VerifCollision()
If $Ballegauche = True And (_xVerif() = 1 And _yVerif() = 3) Then
$ballegauche = False
SoundPlay("raquettes.mp3",0)
_Affine(True, $xB, $yB)
ElseIf $Ballegauche = False And (_xVerif() = 2 And _yVerif() = 3) Then
$ballegauche = True
SoundPlay("raquettes.mp3",0)
_Affine(True, $xB, $yB)
ElseIf $Ballegauche = True And (_xVerif() = 1 And _yVerif() = 1) Then
$ballegauche = False
SoundPlay("raquettes.mp3",0)
_Affine(True, $xB, $yB)
ElseIf $Ballegauche = False And (_xVerif() = 2 And _yVerif() = 2) Then
$ballegauche = True
SoundPlay("raquettes.mp3",0)
_Affine(True, $xB, $yB)
Else
If _xVerif() < 0 Then
If _xVerif() = -1 Then $pts2 = $pts2 + 1
If _xVerif() = -2 Then $pts1 = $pts1 + 1
SoundPlay("loose.mp3", 1)
GUICtrlSetData($scores1,$pts1)
GUICtrlSetData($scores2,$pts2)
$ballegauche = Not $ballegauche
$xB = 390
SoundPlay("letsgo.mp3", 0)
EndIf
If $yB < 0 Then
$random = $random * -1
SoundPlay("bords.mp3", 0)
ElseIf ($yB - $hauteurlargeurBalle) > 550 Then
$random = $random * -1
SoundPlay("bords.mp3", 0)
EndIf
EndIf
EndFunc
Func _j1up()
$J1 = $J1 - $vitesse
_VerifRaquettesHauteur()
GUICtrlSetPos($raquette1,8,$J1,$largeurRaquettes,$hauteurRaquettes)
EndFunc
Func _j1down()
$J1 = $J1 + $vitesse
_VerifRaquettesHauteur()
GUICtrlSetPos($raquette1,8,$J1,$largeurRaquettes,$hauteurRaquettes)
EndFunc
Func _j2up()
$J2 = $J2 - $vitesse
_VerifRaquettesHauteur()
GUICtrlSetPos($raquette2,792-$largeurRaquettes,$J2,$largeurRaquettes,$hauteurRaquettes)
EndFunc
Func _j2down()
$J2 = $J2 + $vitesse
_VerifRaquettesHauteur()
GUICtrlSetPos($raquette2,792-$largeurRaquettes,$J2,$largeurRaquettes,$hauteurRaquettes)
EndFunc