Je faisais juste un petit test en autoit afin de tester un pong. Bon alors ça marche bien, mais la balle semble saccadé...
voyez par vous même:
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
OnAutoItExitRegister("_Close")
Global $vitesse=10
Global $angle=-45
Global $FPS=25
Global $TimeUntilOtherPic=(1/$FPS)*1000
Global $xB=640/2,$yB=480/2
Global $iW = 640, $iH = 480,$colour
Global $Form1 = GUICreate("Pong", $iW, $iH)
_GDIPlus_Startup()
$hGraphics=_GDIPlus_GraphicsCreateFromHWND($Form1)
Local $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iW, $iH, $hGraphics)
Local $hBackbuffer = _GDIPlus_ImageGetGraphicsContext($hBitmap)
_GDIPlus_GraphicsClear($hBackbuffer,0xFFFFFFFF)
GUIRegisterMsg($WM_ERASEBKGND, "WM_ERASEBKGND")
GUISetState(@SW_SHOW)
initBall($hGraphics)
$temps=TimerInit()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
if TimerDiff($temps)>=$TimeUntilOtherPic Then
$temps=TimerInit()
if $xB>=$iW or $xB<=0 then
calc_vert()
ElseIf $yB>=$iH or $yB<=0 Then
calc_hor()
EndIf
deplace($hGraphics,$angle,$vitesse)
EndIf
WEnd
func initBall($hGraph)
_GDIPlus_GraphicsFillEllipse2($hGraph,$iW/2,$iH/2,5)
EndFunc
Func calc_hor()
$angle=360-$angle
EndFunc
Func calc_vert()
$angle=180-$angle
EndFunc
Func deplace($graph,$angle,$vitesse)
$temp=(3.141592654*$angle)/180
_GDIPlus_GraphicsFillEllipse2($graph,$xB,$yB,5,0xFFFFFFFF)
$xB+=$vitesse*Cos($temp)
$yB+=$vitesse*sin($temp)
_GDIPlus_GraphicsFillEllipse2($graph,$xB,$yB,5)
EndFunc
Func _GDIPlus_GraphicsFillEllipse2($hGrap, $x,$y,$r,$color=0xFF000000)
$colour=_GDIPlus_BrushCreateSolid($color)
_GDIPlus_GraphicsFillEllipse($hGrap,$x-($r/2),$y-($r/2),$r,$r,$colour)
EndFunc
Func WM_ERASEBKGND()
_GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $iW, $iH)
Return 1
EndFunc
Func _Close()
GUIRegisterMsg($WM_ERASEBKGND, "")
_GDIPlus_BrushDispose($colour)
_GDIPlus_BitmapDispose($hBitmap)
_GDIPlus_GraphicsDispose($hBackbuffer)
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_Shutdown()
GUIDelete($Form1)
Exit
EndFunc