ich habe ein Problem damit, ein Element mit RemoveAt aus einer Liste zu löschen.
Aufruf der Update-Funktion:
B4X:
Sub Update (BallList As List, id As Int)
If (y > 800) Then
BallList.RemoveAt(id)
Return
End If
If x > 445 OR x < 0 Then
If x > 445 Then x = 445
If x < 0 Then x = 0
v = 180 - v
End If
If y < 0 Then
y = 0
v = 360 - v
End If
x = x + CosD(v) * s
y = y + SinD(v) * s
End Sub
Du sprichst von RemoveAt aber in deinem Code findet man diese Funktion nicht ?
Ich verstehe auch den Code von der Update Routine nicht.
Du übergibst Parameter die gar nicht verwendet werden ?
Wenn Du RemoveAt verwenden willst ist es vorteilhafter For i = BallList.Size - 1 To 0 Step -1
anstatt For i = 0 To BallList.Size - 1
zu verwenden.
Wenn Du in der Schlaufe ein Element löschst wird BallList.Size um 1 vermindert und dann bekommst Du eine OutOfBoundary Fehlemeldung.
mein Fehler, habe nur den halben Code gepostet. Jetzt kommt keine Fehlermeldung mehr, allerdings wird auch die Update-Funktion nicht mehr ausgeführt. Was mache ich falsch?