Hi,
Ich beschäftige mich seit kurzem mit Gdi+ und habe ein Feld mit einem Bild gemacht, wobei sich das Bild beim drücken der Pfeiltasten bewegen soll. Durch den Beispielcode habe ich das auch zusammengebastelt, allerdings flackert das Bild beim bewegen, da die Zeitabstände vom Gui-wieder-weiß-färben bis zum gezeichneten Bild zu groß und mit freiem Auge erkennbar ist. Hättet ihr da eine Idee, wie man das lösen könnte?
Ich währe auch dankbar wenn mir jemand ein gutes GDI+ Tut zeigen könnte.
Hier mein Code:
PHP Code:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GdiPlus.au3>
#include <Misc.au3>
_GdiPlus_Startup()
Global $x=1
Global $y=1
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 458, 395, 192, 124)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GLobal $hwnd=WinGetHandle($Form1)
GLobal $grundflache=_GdiPlus_graphicsCreateFromHwnd($hwnd)
GLobal $figur=_GdiPlus_ImageLoadFromFile(@ScriptDir&"\figur.jpg")
GLobal $fHoehe=_GDIPlus_ImageGetHeight($figur)
GLobal $fBreite=_GDIPlus_ImageGetWidth($figur)
GLobal $bildgroese=$fHoehe/$fBreite
_GdiPlus_GraphicsDrawImageRect($grundflache,$figur,$x,$y,20,20 * $bildgroese)
While 1
$clear=0
Select
case _IsPressed(25)
$x=$x-1
$clear=1
case _IsPressed(26)
$y=$y-1
$clear=1
case _IsPressed(27)
$x=$x+1
$clear=1
case _IsPressed(28)
$y=$y+1
$clear=1
EndSelect
if $clear=1 Then
GUiSetBkColor(0xFFFFFF,$hwnd)
$clear=0
EndIf
_GdiPlus_GraphicsDrawImageRect($grundflache,$figur,$x,$y,20,20 * $bildgroese)
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _ende()
_GdiPlus_GraphicsDispose($grundflache)
_GdiPlus_ImageDispose($figur)
_GdiPlus_Shutdown()
EndFunc
Thx an alle Helfer!
Lg V8II