Я хотел бы сделать движение квадрата только с использованием переменной экземпляра. У меня возникли проблемы, это мой код:Изменение переменной экземпляра
У меня есть один для Variables.JAVA для переменных:
public class Variables {
String name;
int Playerx;
int Playery;
int Playerw;
int Playerh;
}
и один, где он является основным, но не изменяет переменные выше. (упрощенное)
public static void main(String args[]) throws InterruptedException {
while (true) {
Variables P = new Variables(){
synchronized (c) {
c.clear();
first_level();
P.Playerx = 50;
P.Playery = 50;
P.Playerw = 100;
P.Playerh = 100;
c.drawRect(P.Playerx, P.Playery, P.Playerw, P.Playerh);
}
Thread.sleep(25);
// Controls
if (c.isKeyDown(Console.VK_UP)) {
P.Playery -= 10;
}
else if (c.isKeyDown(Console.VK_DOWN)) {
P.Playery += 10;
}
else if (c.isKeyDown(Console.VK_LEFT)) {
P.Playerx -= 10;
}
else if (c.isKeyDown(Console.VK_DOWN)) {
P.Playery += 10;
}
}
P.Player(x,y,w,h)
Не изменяйте?
Как это можно решить?
Какую графическую библиотеку вы используете? Свинг? Обработка? Другие? Вы знаете, что вы создаете новый экземпляр Variable с каждой итерацией цикла while, правильно? Почему у вас есть синхронизированный блок, когда не происходит многопоточности? –