让2048游戏更快

laximzn5  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(203)

有没有办法让我的2048游戏运行得更快?
我做了一个叫做“高速模式”的设置,这样如果移动速度真的很快,我就会跳过生成、组合和移动动画,但是即使这样,当我同时发送一堆关键点时,我通常还是落后一到两步。
现在我有一个tilepanel类来处理显示我的瓷砖,并使用一个带有paintcomponent(不断绘制瓷砖)的计时器(非常基本的代码)来确保它不断更新电路板。

public void doAnimation() {
        System.nanoTime();
        Timer timer = new Timer(2, this);
        timer.start();

    }

我构建游戏的方式是,我有一个arraylist命令(即按right键将“right”添加到arraylist,最终arraylist到达并执行),以确保它始终执行移动,在执行序列中的下一个移动之前生成。
为了确保电路板不断自我更新,我制作了一个非常基本的运行线程:

public void run(){

                while(true) {
                    if(canDoNewMove&&commands.size()>0&&parent.spawnsLeft==0) {
                        move(commands.get(0));
                        commands.remove(0);
                        canDoNewMove=false;
                    }
                    if(commands.size()>=2) {
                        board.isBehind=true;
                    }
                    else {
                        board.isBehind=false;
                    }
                    if(totalMovements==0&&moveDone) {
                        moveDone=false;
                        if(parent.changed) {
                            parent.spawn(parent);

                        }
                        canDoNewMove=true;

                    }
                    //moveDone=false;
                    try {
                        Thread.sleep(0);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }};

        Thread sampleThread = new Thread(backGroundRunnable);
        sampleThread.start();

    }

减少方法调用是否会产生足够明显的差异,使操作在我按下键后立即完成,还是问题出在绘制电路板的tilepanel类中?
谢谢各位

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题