hi,
ich hab heute gesehn das ein freund von mir sich ein kleines rpg schreibt. jetzt wollt ich das auch
machen und bin auf folgendes problem gestoßen: die collision...
ich hab mir gedacht das ich in die Walk funktionen ein if reinpack sodass es man sich nur bewegen
kann wärend man inerhalb der grünen labels ist... hätte zufällig jemand ne funktion mitder man abfragen
kann ob eine control inerhalb einer anderen liegt ? oder noch besser ob ein punkt innerhalb einer control liegt
ich weiß grade überhaupt nicht wie ich da ansätzen soll...
Code:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
HotKeySet("{w}","_WalkUp")
HotKeySet("{a}","_WalkLeft")
HotKeySet("{d}","_WalkRight")
HotKeySet("{s}","_WalkDown")
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Game.Test", 625, 443, 192, 124)
$Label1 = GUICtrlCreateLabel("", 72, 56, 356, 297)
GUICtrlSetBkColor(-1, 0x00FF00)
$Player = GUICtrlCreateLabel("", 100, 320, 12, 20)
GUICtrlSetBkColor(-1, 0x000000)
$Label2 = GUICtrlCreateLabel("", 424, 56, 140, 113)
GUICtrlSetBkColor(-1, 0x00FF00)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _WalkUp()
$pos = ControlGetPos("","",$Player)
GUICtrlSetPos($Player,$pos[0],$pos[1] - 2)
EndFunc
Func _WalkDown()
$pos = ControlGetPos("","",$Player)
GUICtrlSetPos($Player,$pos[0],$pos[1] + 2)
EndFunc
Func _WalkLeft()
$pos = ControlGetPos("","",$Player)
GUICtrlSetPos($Player,$pos[0] - 2,$pos[1])
EndFunc
Func _WalkRight()
$pos = ControlGetPos("","",$Player)
GUICtrlSetPos($Player,$pos[0] + 2,$pos[1])
EndFunc