实例变量更改

时间:2016-01-10 15:01:47

标签: java eclipse ide

我想仅使用Instance Variable来移动一个正方形。我遇到麻烦这是我的代码:

我有一个Variables.JAVA for Variables:

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)不改变?

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您正在设置每次迭代的默认值,您的代码是同步的,因此在绘制后完成对键的响应,并且在下一次迭代中,您再次覆盖值,这样您将永远不会看到任何更改。 此外,每次都实例化一个新的P对象,而不是保持先前的实例存活,因此它们是GC。