Hallo Leute
ich hab mir ein kleines GDI+ skript gebastelt, was Regentropfen darstellen soll, aber wenn ich es jetzt ausführe ist es erst schnell, dann wird es langsamer, wenn ich aber die Maus dann wieder bewege, dann wird es wieder schneller.
Ich wollte euch fragen, warum das so ist.
Spoiler anzeigen
#include <GuiConstants.au3>
#include <GDIPlus.au3>
#include <Misc.au3>
$fach = 0
Dim $gegner[80][2]
For $j = 0 To UBound($gegner) - 1 Step 1
$gegner[$j][0] = -100
Next
OnAutoItExitRegister("_EXIT")
$Gui = GUICreate("Regen", 500, 500, 100, 100)
_GDIPlus_Startup()
$brushSchwarz = _GDIPlus_BrushCreateSolid(0xFFABCDEF)
$brushWeiss = _GDIPlus_BrushCreateSolid(0xFFFFFFFF)
$graphic = _GDIPlus_GraphicsCreateFromHWND($Gui)
$bitmap = _GDIPlus_BitmapCreateFromGraphics(500, 500, $graphic)
$buffer = _GDIPlus_ImageGetGraphicsContext($bitmap)
GUISetState()
AdlibRegister("_gegnerSpawn", 500)
Do
For $m = 0 To UBound($gegner) - 1 Step 1
If $gegner[$m][1] >= 480 Then $gegner[$m][1] = 0
Next
For $k = 0 To UBound($gegner) - 1 Step 1
$gegner[$k][1] += 2
Next
$msg = GUIGetMsg()
_GDIPlus_GraphicsFillRect($buffer, 0, 0, 500, 500, $brushWeiss)
For $i = 0 To UBound($gegner) - 1 Step 1
_GDIPlus_GraphicsFillEllipse($buffer, $gegner[$i][0], $gegner[$i][1], 20, 20, $brushSchwarz)
Next
_GDIPlus_GraphicsDrawImageRect($graphic, $bitmap, 0, 0, 500, 500)
Until $msg = $GUI_EVENT_CLOSE
Func _EXIT()
_GDIPlus_BrushDispose($brushSchwarz)
_GDIPlus_BrushDispose($brushWeiss)
_GDIPlus_GraphicsDispose($buffer)
_GDIPlus_GraphicsDispose($graphic)
_GDIPlus_Shutdown()
EndFunc ;==>_EXIT
Func _gegnerSpawn()
If $fach <= UBound($gegner) - 2 Then
$gegner[$fach][0] = Random(0, 480, 1)
$fach += 1
$gegner[$fach][1] = 0
EndIf
EndFunc ;==>_gegnerSpawn
Danke
DFPWare