I\'m not even sure if this code will do anything even if it works, but I don\'t know what to do to get rid of the \"Local variables referenced from an inner class must be final
You haven't shown all the code, but I suspect that adding:
final int i0 = i;
inside your loop and using i0
instead of i
as the index for your arrays should fix the error.
Alternatively, as commented by @James_D, you can also add Sprite sprite = fireballRight[i];
before the anonymous class and use sprite
inside the handle
method.
Note that the final
modifier is optional in this case with Java 8+.
As it says, the var i
needs to have the final
prefix. Change the code to something like this:-
for(int i = 0; i < 50; i++) {
final int i2 = i;
new AnimationTimer()
{
public void handle()
{
fireballRight[i2].setImage("puercosloco/fireballright.png"); // Use i2 instead of i.
You can do the field private and static.