【发布时间】:2014-07-03 02:23:35
【问题描述】:
我正在用 java 制作游戏,我正在尝试制作我的暂停菜单。目前我正在检查 esc 按钮是否被按下并运行我的菜单 JFrame。问题是我的游戏一直在后台运行。菜单打开时如何暂停游戏线程?
主游戏循环代码
public void run() {
try {
init();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long lastTime = System.nanoTime();
final double amountOfTicks = 60D;
double ns = 1000000000/amountOfTicks;
double delta = 0;
while(running){
long now = System.nanoTime();
delta +=(now - lastTime)/ns;
lastTime = now;
if (delta >= 1) {
tick();
delta--;
}
render();
}
stop();
}
检查暂停菜单的代码
public void tick() {
if (up) {
playerUp = true;
playerDown = false;
playerLeft = false;
playerRight = false;
y -= SPEED;
moving = true;
}
if (dn) {
playerDown = true;
playerLeft = false;
playerRight = false;
playerUp = false;
y += SPEED;
moving = true;
}
if (lt) {
playerLeft = true;
playerRight = false;
playerDown = false;
playerUp = false;
x -= SPEED;
moving = true;
}
if (rt) {
playerRight = true;
playerLeft = false;
playerUp = false;
playerDown = false;
x += SPEED;
moving = true;
}
if (esc) {
pauseMenu.main(null);
}
【问题讨论】:
-
请分享示例代码。
-
看这里也许:stackoverflow.com/questions/8299010/… 一个小样本......如果没有帮助显示你的一些代码
-
包含代码的已编辑问题
标签: java multithreading jframe sleep