Hallo leute,
ich möchte einen Schneefall per Grafik schreiben, nicht per Pixel. Ich Zeig euch gleich mal den Code wie weit ich schon bin.
bei diesem Code gibt es wohl einen Fehler ich weis nicht wo er liegt. Der Fehler zeigt sich so, die Grafiken werden gezeichnet Wunderbar, aber wenn ich diese Wie schneefall nach unten gleiten lasse, dann geht von den ganzen 50 grafiken nur 1 Grafik Kerzengerade nach unten aber nur zum Teil, danach stürzt das Script ab, jemand von euch eine Idee, wie ich diesen Fehler umgehe?
Mein Code:
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
Global $Count = 50
Global $hGraphics
Global $hImage
Dim $aHandles[100][4]
$hGUI = GUICreate("Grafik Schneefall", 615, 438, 196, 127)
GUISetState(@SW_SHOW)
_GDIPlus_Startup()
[/autoit] [autoit][/autoit] [autoit];Load Image
$hImage = _GDIPlus_ImageLoadFromFile("soother.png")
;Zeige Grafik an
$hGraphics = _GDIPlus_GraphicsCreateFromHWND($hGUI)
For $i = 1 To $Count
_Bilderstellen($i, Random(0, 615), Random(1, 50))
If $i = $Count Then
_Fall()
EndIf
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_GDIPlus_GraphicsDispose($hGraphics)
_GDIPlus_ImageDispose($hImage)
_GDIPlus_Shutdown()
Exit
EndSwitch
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit]Func _Bilderstellen($i, $x, $y)
$aHandles[$i][1] = _GDIPlus_GraphicsDrawImageRect($hGraphics, $hImage, $x, $y, 40, 40)
$aHandles[$i][2] = $x
$aHandles[$i][3] = $y
EndFunc ;==>_Bilderstellen
Func _Fall()
For $a = $aHandles[$i][3] To 615
_GDIPlus_GraphicsDrawImageRect($hGraphics, $hImage, $aHandles[$a][2], $a, 40, 40)
Sleep(100)
Next
EndFunc
Wär super wenn ihr mir helfen könnt