Hallo,
ich habe in diesem script einen fehler, der ziemlcih komisch ist. Das script müsste so wie ich die funktion konfiguriet habe bis 3 bzw 4 zählen und dann wieder bis 0 und so weiter aber es klappt nicht weil die variabln plötzlich extrem komische Wert annehmen
Spoiler anzeigen
#include <Array.au3>
#include <Misc.au3>
Global $animator_array
[/autoit] [autoit][/autoit] [autoit]animator_add(0, 0, 0, 3, 4, 0, 2,True)
[/autoit] [autoit][/autoit] [autoit]While True
zeichne_particle()
; MouseMove($animator_array[0][9],$animator_array[0][10],100)
Sleep(500)
If _IsPressed(01) Then _ArrayDisplay($animator_array)
If _IsPressed(02) Then Exit
ToolTip($animator_array[0][9] & @LF & $animator_array[0][10] & @LF & $animator_array[0][11])
WEnd
Exit
[/autoit] [autoit][/autoit] [autoit]Func animator_add($x, $y, $z, $tx, $ty, $tz, $speed, $circle)
[/autoit] [autoit][/autoit] [autoit]Local $ubound = UBound($animator_array)
[/autoit] [autoit][/autoit] [autoit]If IsArray($animator_array) Then
ReDim $animator_array[$ubound + 1][13]
Else
Dim $animator_array[$ubound + 1][13]
EndIf
$animator_array[$ubound][0] = $x ; X Startpunkt
$animator_array[$ubound][1] = $y ; Y Startpunkt
$animator_array[$ubound][2] = $z ; Z Startpunkt
$animator_array[$ubound][3] = $tx ; X Zielpunkt
$animator_array[$ubound][4] = $ty ; Y Zielpunkt
$animator_array[$ubound][5] = $tz ; Z Zielpunkt
Local $distanz = Sqrt(($tx-$x)*($tx-$x) + ($ty-$y)*($ty-$y) + ($tz-$z)*($tz-$z)) ; Distanz
$animator_array[$ubound][6] = ($tx - $x) / $distanz ;X Vector
$animator_array[$ubound][7] = ($ty - $y) / $distanz ;Y Vector
$animator_array[$ubound][8] = ($tz - $z) / $distanz ;Z Vector
$animator_array[$ubound][9] = $x ; X Position
$animator_array[$ubound][10] = $y ; Y Position
$animator_array[$ubound][11] = $z ; Z Position
$animator_array[$ubound][12] = $circle
Return $ubound
EndFunc
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func zeichne_particle()
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($animator_array) - 1 Step 1
$animator_array[$i][9] += $animator_array[$i][6] ; X Bewegung
$animator_array[$i][10] += $animator_array[$i][7] ; Y Bewegung
$animator_array[$i][11] += $animator_array[$i][8] ; Z Bewegung
If ($animator_array[$i][0] = $animator_array[$i][9]) Or ($animator_array[$i][3] = $animator_array[$i][9]) Then ; Wenn Start- oder Zielpunkt erreicht wurden.
If $animator_array[$i][12] = False Then
MsgBox(0,"","")
particle_delete_effect($i)
$i -= 1
Else
MsgBox(0,"","")
$animator_array[$i][6] = -$animator_array[$i][6]
$animator_array[$i][7] = -$animator_array[$i][7]
$animator_array[$i][8] = -$animator_array[$i][8]
EndIf
EndIf
Next
EndFunc
[/autoit] [autoit][/autoit] [autoit]Func particle_delete_effect($num)
_ArrayDelete($animator_array, $num)
EndFunc