用java写了个小游戏  
比如说是一个tank的小游戏  
可以让tank移动 ,但是怎么让tank的移动更加的灵敏  就和那些商业版的游戏一样   
不然用public void keyPressed(KeyEvent e) {}方法写出来的效果总是很别扭的样子让物体移动有什么技巧 使用请高手指点

解决方案 »

  1.   

    这个没办法的java的桌面级应用就是一个杯具所有的空间都是重绘你的,明白?
    其实最好的办法就是把动的和不动的分开,比如说背景不动,上面的坦克动,但是用java典型不可能
      

  2.   

    是要让游戏里的物体的移动速度加快吗?
    把repaint后线程睡眠的时间减少一点就可以了
    比如说原来是private class PaintThread implements Runnable { public void run() {
    while(true) {
    repaint();
    try {
    Thread.sleep(50);
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
    }
    把sleep(50)改成20那移动的速度就快了1倍多
      

  3.   

    单从接受键盘输入事件与程序的响应这一环节来说,就是通过keyPressed方法,看看是不是其它方面没有优化造成的,java做小游戏的话,应该无法靠人主观判断性能差异才对。
      

  4.   

    感觉,如果觉得太慢就用线程去控制
    如果没做好,只能够说明控制的不合理,
    我用java搞视频的回放,数据量非常大,也没觉得慢,觉得很流畅
      

  5.   

    移动物体更顺畅,可能设计物理学的知识吧,因为key事件只是进入了Event Queue,具体怎么计算物体位移看你设计的计算式了。如果要避免屏幕闪烁就需使用双缓冲,每秒刷新25帧左右,动态计算CPU的负荷来sleep一段计算出来的时间。