栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

java里面的暂停按钮

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java里面的暂停按钮

我已设法使用*running = !running暂停游戏

但如果使用,则无法取消暂停

而thread.resume()或thread.wait()在“P' P'按下

private volatile boolean running;

private Thread thread;

public static enum STATE {

MENU,

GAME,

};

public static STATE State = STATE.MENU;

public void init(){

requestFocus();

}

private synchronized void start(){

if(running)

return;

running = true;

thread = new Thread(this);

thread.start();

}

private synchronized void stop(){

if(!running)

return;

running = false;

try{

thread.join();

}catch(InterruptedException e){

e.printStackTrace();

}

}

public void run() {

init();

while(running){

/some codes

}

stop();

}

private void render(){

if(State == STATE.GAME){

p.render(g);

c.render(g);

}else if(State == STATE.MENU){

menu.render(g);

}

g.dispose();

bs.show();

}

public void keyPressed(KeyEvent e){

int key = e.getKeyCode();

if(State == STATE.GAME){

if(key == KeyEvent.VK_RIGHT){

p.setVelX(5);

}else if(key == KeyEvent.VK_LEFT){

p.setVelX(-5);

}else if(key == KeyEvent.VK_DOWN){

p.setVelY(5);

}else if(key == KeyEvent.VK_UP){

p.setVelY(-5);

}else if(key == KeyEvent.VK_SPACE && !is_shooting){

c.addEntity(new Bullet(p.getX(), p.getY(), tex, this));

is_shooting = true;

}else if(key == KeyEvent.VK_P){

此行将暂停。

running = !running;

}

}

}

public void keyReleased(KeyEvent e){

int key = e.getKeyCode();

if(key == KeyEvent.VK_RIGHT){

p.setVelX(0);

}else if(key == KeyEvent.VK_LEFT){

p.setVelX(0);

}else if(key == KeyEvent.VK_DOWN){

p.setVelY(0);

}else if(key == KeyEvent.VK_UP){

p.setVelY(0);

}else if(key == KeyEvent.VK_SPACE){

is_shooting = false;

}else if(key == KeyEvent.VK_P){

// This line doesn't work.

running = true;

}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984624.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号