Hallo,
Ich versuche gerade das Spiel Mamba zu programmieren.
Ich komm aber gerade bei der Collision nicht weiter, wie muss ich das machen?
Spoiler anzeigen
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <Misc.au3>
Global $StartPosiSpinneX=152
Global $StartPosiSpinneY=102
Global $StartPosiSchlangeX=898
Global $StartPosiSchlangeY=698
Global $SpinnenSpeed=2
Global $SchlangenSpeed=3
Global $SpinnenDicke=40
Global $SchlangenDicke=25
$hWnd=GUICreate ( "Mamba", 1100, 850 )
GUISetBkColor ( 0xABCDEF )
$Beenden=GUICtrlCreateButton ( "Beenden", 965, 740, 125, 100 )
GUISetState ()
Local $accel[4][2]= [["{UP}"],["{DOWN}"],["{LEFT}"],["{RIGHT}"]]
GUISetAccelerators($accel)
_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit]$hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hWnd)
$HintergrundFeldFarbe=_GDIPlus_BrushCreateSolid(0xFFFFFFFF)
$SpinneFarbe=_GDIPlus_BrushCreateSolid(0xFF00FF00)
$SchlangeFarbe=_GDIPlus_BrushCreateSolid(0xFFFF0000)
$temp=_GDIPlus_BrushCreateSolid(0xFF000000)
[/autoit] [autoit][/autoit] [autoit]Sleep ( 20 )
[/autoit] [autoit][/autoit] [autoit]$HintergrundFeld=_GDIPlus_GraphicsFillRect ( $hGraphic, 150, 100, 800, 650, $HintergrundFeldFarbe )
$SpielFeld=_GDIPlus_GraphicsDrawRect( $hGraphic, 148, 98, 802, 652 )
$DieSpinne=_GDIPlus_GraphicsFillRect ( $hGraphic, $StartPosiSpinneX, $StartPosiSpinneY, $SpinnenDicke, $SpinnenDicke, $SpinneFarbe )
$DieSchlange=_GDIPlus_GraphicsFillRect ( $hGraphic, $StartPosiSchlangeX, $StartPosiSchlangeY, $SchlangenDicke, $SchlangenDicke, $SchlangeFarbe )
GUIRegisterMsg ( 0x000F, "wm_paint" )
AdlibEnable('_Zyklus', 10)
While 1
$msg=GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
_GDIPlus_BrushDispose ( $HintergrundFeldFarbe )
_GDIPlus_BrushDispose ( $SpinneFarbe )
_GDIPlus_BrushDispose ( $SchlangeFarbe )
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
Exit
Case $Beenden
_GDIPlus_BrushDispose ( $HintergrundFeldFarbe )
_GDIPlus_BrushDispose ( $SpinneFarbe )
_GDIPlus_BrushDispose ( $SchlangeFarbe )
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_Shutdown()
Exit
EndSwitch
WEnd
Func _Zyklus()
If _IsPressed('26') Then
_hoch()
ElseIf _IsPressed('28') Then
_runter()
ElseIf _IsPressed('25') Then
_links()
ElseIf _IsPressed('27') Then
_rechts()
EndIf
_CollisionMitSchlange()
EndFunc ;==>_Zyklus
Func _hoch()
If $StartPosiSpinneY-$SchlangenSpeed<=100 Then
Sleep ( 1 )
Else
_GDIPlus_GraphicsFillRect ( $hGraphic, $StartPosiSpinneX, $StartPosiSpinneY+38, $SpinnenDicke, 2, $HintergrundFeldFarbe )
$StartPosiSpinneY-=$SpinnenSpeed
_GDIPlus_GraphicsFillRect ( $hGraphic, $StartPosiSpinneX, $StartPosiSpinneY, $SpinnenDicke, $SpinnenDicke, $SpinneFarbe )
EndIf
EndFunc
Func _runter()
If $StartPosiSpinneY+50>=756 Then
Sleep ( 1 )
Else
_GDIPlus_GraphicsFillRect ( $hGraphic, $StartPosiSpinneX, $StartPosiSpinneY, $SpinnenDicke, 2, $HintergrundFeldFarbe )
$StartPosiSpinneY+=$SpinnenSpeed
_GDIPlus_GraphicsFillRect ( $hGraphic, $StartPosiSpinneX, $StartPosiSpinneY, $SpinnenDicke, $SpinnenDicke, $SpinneFarbe )
EndIf
EndFunc
Func _links()
If $StartPosiSpinneX-$SpinnenSpeed<=150 Then
Sleep ( 1 )
Else
_GDIPlus_GraphicsFillRect ( $hGraphic, $StartPosiSpinneX+38, $StartPosiSpinneY, 2, $SpinnenDicke, $HintergrundFeldFarbe )
$StartPosiSpinneX-=$SpinnenSpeed
_GDIPlus_GraphicsFillRect ( $hGraphic, $StartPosiSpinneX, $StartPosiSpinneY, $SpinnenDicke, $SpinnenDicke, $SpinneFarbe )
EndIf
EndFunc
Func _rechts()
If $StartPosiSpinneX>=906 Then
Sleep ( 1 )
Else
_GDIPlus_GraphicsFillRect ( $hGraphic, $StartPosiSpinneX, $StartPosiSpinneY, 2, $SpinnenDicke, $HintergrundFeldFarbe )
$StartPosiSpinneX+=$SpinnenSpeed
_GDIPlus_GraphicsFillRect ( $hGraphic, $StartPosiSpinneX, $StartPosiSpinneY, $SpinnenDicke, $SpinnenDicke, $SpinneFarbe )
EndIf
EndFunc
Func wm_paint()
Sleep ( 10 )
$HintergrundFeld=_GDIPlus_GraphicsFillRect ( $hGraphic, 150, 100, 800, 650, $HintergrundFeldFarbe )
$SpielFeld=_GDIPlus_GraphicsDrawRect( $hGraphic, 148, 98, 802, 652 )
$DieSpinne=_GDIPlus_GraphicsFillRect ( $hGraphic, $StartPosiSpinneX, $StartPosiSpinneY, $SpinnenDicke, $SpinnenDicke, $SpinneFarbe )
$DieSchlange=_GDIPlus_GraphicsFillRect ( $hGraphic, $StartPosiSchlangeX, $StartPosiSchlangeY, $SchlangenDicke, $SchlangenDicke, $SchlangeFarbe )
EndFunc
Func _CollisionMitSchlange()
ToolTip ( "Spinne X "&$StartPosiSpinneX&" Spinne Y "&$StartPosiSpinneY&" Schlange X "&$StartPosiSchlangeX&" Schlange Y "&$StartPosiSchlangeY )
If $StartPosiSpinneY+51=$StartPosiSchlangeY Then
FileOpen ( @ScriptDir&"\temp.txt", 9 )
FileWrite ( @ScriptDir&"\temp.txt", "Collision" )
EndIf
EndFunc