Hallo!
Habe schon einiges mirt der Prospeed.dll verzapft, die Funktionen sind idR sehr schnell und auch mit AutoIt einfach zu nutzen .
@hulle, da das Sprite automatisch den Weg zum Ziel findet ( auch durch ein Labyrinth^^) musst du nur den Zielpunkt angeben und die Geschwindigkeit dort hin, hab dein Beispiel mal abgewandelt
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <prospeed30.au3>
Opt("GUIOnEventMode", 1)
$ball = loadsprite("Ball.bmp")
$Ball_x = 400
$Ball_y = 400
$Ball_speed_x = -2
$Ball_speed_y = -2
$GUI_MAIN = GUICreate("Test", 640, 480, Default, Default, $WS_POPUP)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
GUISetState()
GetHDC()
$createbitmap = CreateImage(640,480)
CreateBuffer(640,480)
SetBuffer($createbitmap)
PaintImage($hDC,0,0,640,480,$createbitmap,0,0,0)
;$spaceship = Sprite($spaceship1, Destination, $S_offsetX, $S_offsetY, WIDTH, HEIGHT, FRAMES, START_FRAME, FRAME_SPEED, posX, posY)
[/autoit] [autoit][/autoit] [autoit]$Ball_sprite = Sprite($ball, $hdc, 0, 0, 15 ,15, 1, 1, 1, $Ball_x, $Ball_y)
[/autoit] [autoit][/autoit] [autoit]; syntax : SetSpriteSpeed($S_Alias, Speed X, Speed Y)
SetSpriteSpeed($Ball_sprite, 10, 10)
MoveSprite($Ball_sprite, 0,0)
[/autoit] [autoit][/autoit] [autoit]; syntax : Movesprite($S_Alias, $posx, $posy)
While 1
Sleep(20)
;~ $Ball_x += $Ball_speed_x
;~ $ball_y += $Ball_speed_y
; MoveSprite($Ball_sprite, $Ball_x, $Ball_y)
WEnd
[/autoit] [autoit][/autoit] [autoit]Func _Exit()
FreeImage($Ball)
DeleteSprite($ball_sprite)
DestroyBuffer()
DllClose($S_DLL)
Exit
EndFunc
Alizame, Ahnung hast du nicht, wieso gibst du dann deinen Senf dazu?
Lad die Prospeed-AutoIt-Demo (Teil dieser Datei) runter und schau dir an, was damit machbar ist. Dann nimm dir in den kompletten Sommerferien nichts vor und mach das mit GDI+. Viel Spass....