【发布时间】:2016-01-10 15:01:47
【问题描述】:
我想只使用实例变量来移动一个正方形。我有麻烦这是我的代码:
我有一个用于 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) 不变?
如何解决?
【问题讨论】:
-
您使用的是什么 GUI 库?摇摆?加工?其他?您确实知道您正在为您的 while 循环的每次迭代创建一个新的变量实例,对吗?当似乎没有任何多线程正在进行时,为什么你有一个同步块?