Hallo,
Bin jetzt beim Ball, hab keine Ahnung wie ich den jetzt Diagonal fliegen lasse ( und was muss ich machen damit er die 0 nicht übermalen kann? )
Spoiler anzeigen
#include <GDIPlus.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>
HotKeySet("{ESC}", "_ende")
Global $BewegungSenkrecht=5
Global $ballpos1 = @DesktopWidth/2
Global $ballpos2 = @DesktopHeight/2-50
Global $Strichpos1 = @DesktopHeight / 2 - 70
Global $Strichpos2 = @DesktopHeight / 2 + 70
Global $RStrichpos1 = @DesktopHeight / 2 - 70
Global $RStrichpos2 = @DesktopHeight / 2 + 70
Global $Titel = "Pong"
Global $Rahmenbreite = 10
Global $dll = DllOpen("user32.dll")
_GDIPlus_Startup()
;~ $WS_EX_COMPOSITED = 0x2000000
Global $hGUI = GUICreate($Titel, @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, BitOR($WS_EX_TOPMOST, 0x0));$WS_EX_COMPOSITED))
Global $hwnd = WinGetHandle($Titel)
GUISetBkColor(0x0)
$Willkommen = GUICtrlCreateLabel("Willkommen bei Pong made by Greek", @DesktopWidth / 4, @DesktopHeight / 2 - 150, 1000, 200)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 40)
GUISetState(@SW_SHOW)
Do
Sleep(100)
Until _IsPressed("0D", $dll) Or _IsPressed("20", $dll)
GUICtrlSetState($Willkommen, $GUI_HIDE)
[/autoit] [autoit][/autoit] [autoit]$hGraphic = _GDIPlus_GraphicsCreateFromHWND($hwnd)
$hPenRahmen = _GDIPlus_PenCreate(0xFF0000FF, 15, 2)
$hPen = _GDIPlus_PenCreate(0xFFFFFFFF, 15, 2)
$hpen_Del = _GDIPlus_PenCreate(0xFF000000, 15, 2)
_GDIPlus_GraphicsDrawLine($hGraphic, 100, $Strichpos1, 100, $Strichpos2, $hPen)
_GDIPlus_GraphicsDrawLine($hGraphic, @DesktopWidth - 100, $Strichpos1, @DesktopWidth - 100, $Strichpos2, $hPen)
_DrawRahmen()
$Spielstand = GUICtrlCreateLabel("0:0", @DesktopWidth / 2, @DesktopHeight / 15, 100, 100)
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetFont(-1, 40)
AdlibEnable('_Zyklus', 10)
[/autoit] [autoit][/autoit] [autoit]Local $accel[4][2] = [["w"],["s"],["{UP}"],["{DOWN}"]]
GuiSetAccelerators($accel)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _ende()
_GDIPlus_Shutdown()
Exit
EndFunc ;==>_ende
Func _DrawRahmen()
_GDIPlus_GraphicsDrawLine($hGraphic, $Rahmenbreite / 2, 0, $Rahmenbreite / 2, @DesktopHeight, $hPenRahmen)
_GDIPlus_GraphicsDrawLine($hGraphic, 0, $Rahmenbreite / 2, @DesktopWidth, $Rahmenbreite / 2, $hPenRahmen)
_GDIPlus_GraphicsDrawLine($hGraphic, @DesktopWidth - $Rahmenbreite / 2, 0, @DesktopWidth - $Rahmenbreite / 2, @DesktopHeight, $hPenRahmen)
_GDIPlus_GraphicsDrawLine($hGraphic, 0, @DesktopHeight - $Rahmenbreite / 2, @DesktopWidth, @DesktopHeight - $Rahmenbreite / 2, $hPenRahmen)
EndFunc ;==>_DrawRahmen
Func _Zyklus()
If _IsPressed('57') Then
_hoch()
EndIf
If _IsPressed('53') Then
_runter()
EndIf
If _IsPressed('26') Then
_hoch2()
EndIf
If _IsPressed('28') Then
_runter2()
EndIf
_ball()
If _DetectCollision()=1 Then
_Abprallen(1)
ElseIf _DetectCollision()=2 Then
_Abprallen(2)
EndIf
EndFunc ;==>_Zyklus
Func _hoch()
If $Strichpos1 >= 25 Then
_GDIPlus_GraphicsDrawLine($hGraphic, 100, $Strichpos2 - 10, 100, $Strichpos2, $hpen_Del)
$Strichpos1 -= 10
$Strichpos2 -= 10
_GDIPlus_GraphicsDrawLine($hGraphic, 100, $Strichpos1, 100, $Strichpos2, $hPen)
EndIf
EndFunc ;==>_hoch
Func _runter()
If $Strichpos2 <= @DesktopHeight - 25 Then
_GDIPlus_GraphicsDrawLine($hGraphic, 100, $Strichpos1, 100, $Strichpos1 + 10, $hpen_Del)
$Strichpos1 += 10
$Strichpos2 += 10
_GDIPlus_GraphicsDrawLine($hGraphic, 100, $Strichpos1, 100, $Strichpos2, $hPen)
EndIf
EndFunc ;==>_runter
Func _hoch2()
If $RStrichpos1 >= 25 Then
_GDIPlus_GraphicsDrawLine($hGraphic, @DesktopWidth - 100, $RStrichpos2 - 10, @DesktopWidth - 100, $RStrichpos2, $hpen_Del)
$RStrichpos1 -= 10
$RStrichpos2 -= 10
_GDIPlus_GraphicsDrawLine($hGraphic, @DesktopWidth - 100, $RStrichpos1, @DesktopWidth - 100, $RStrichpos2, $hPen)
EndIf
EndFunc ;==>_hoch
Func _runter2()
If $RStrichpos2 <= @DesktopHeight - 25 Then
_GDIPlus_GraphicsDrawLine($hGraphic, @DesktopWidth - 100, $RStrichpos1, @DesktopWidth - 100, $RStrichpos1 + 10, $hpen_Del)
$RStrichpos1 += 10
$RStrichpos2 += 10
_GDIPlus_GraphicsDrawLine($hGraphic, @DesktopWidth - 100, $RStrichpos1, @DesktopWidth - 100, $RStrichpos2, $hPen)
EndIf
EndFunc ;==>_runter
Func _ball()
$ball=_GDIPlus_GraphicsDrawArc ($hGraphic,$ballpos1, $ballpos2, 15, 15, 180, 360, $hPen)
$ball=_GDIPlus_GraphicsDrawArc ($hGraphic,$ballpos1, $ballpos2, 15, 15, 180, 360, $hpen_Del)
$ballpos2+=$BewegungSenkrecht
$ball=_GDIPlus_GraphicsDrawArc ($hGraphic,$ballpos1, $ballpos2, 15, 15, 180, 360, $hPen)
EndFunc
Func _DetectCollision()
If $ballpos2=@DesktopHeight-35 Then
Return 1
ElseIf $ballpos2=35 Then
Return 2
EndIf
EndFunc
Func _Abprallen($number)
If $number=1 Then
$BewegungSenkrecht=-5
ElseIf $number=2 Then
$BewegungSenkrecht=+5
EndIf
EndFunc