让 2048 游戏更快

问题描述

有没有办法让我的 2048 游戏运行得更快?

我做了一个叫做高速模式的设置,这样如果移动速度非常快,我就会跳过生成、组合和移动动画,但是即使如此,当我向一堆垃圾发送垃圾邮件时,我通常仍然落后一两个移动键一次。

现在我有一个 tilePanel 类来处理显示我的图块,并使用带有paintComponent(不断绘制图块)的计时器(非常基本的代码)来确保它不断更新板。

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

    }

我构建游戏的方式是我有一个命令数组列表(即按右键将“正确”添加到数组列表中,最终数组列表获取并执行)我收到以确保它总是这样做一个移动,在执行序列中的下一个移动之前生成。

为了确保电路板不断自我更新,我制作了一个非常基本的运行线程:

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 类中的问题?

谢谢各位

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...