作者scornn (sccccon)
看板AndroidDev
标题Re: [问题] 想问暂停游戏的问题
时间Sun Apr 17 09:03:59 2011
※ 引述《ted66 (ted)》之铭言:
假设你的Thread 变数是 mGameThread
public void run() {
try {
while(mIsRunning) {
if ( mIsPause ) {
syncronized(mGameThread) {
wait();
}
}
// draw, update
}
} catch(Exception e) {
}
}
然後在onPause的时候 mIsPause = true
在onResume的时候
把 mIsPause = false; 再去notify thread 起来
mGameThread.notify();
试看看吧~
: 开发层: (应用/框架/库/核心)
: 应用
: 问题:
: 我在Thread有设定控制canvas的开关,但是每次关起来就打不开了
: 结果游戏暂停就醒不过来,研究好几天还没研究出游戏怎麽暂停
: 程式码: (请多利用置底文网站)
: public void run(){
: while(flag){ <==============这边flag开关
: canvas = null;
: draw();
: }
: }
: public void draw(){
: try{
: canvas = surfaceHolder.lockCanvas(null);//
: synchronized(surfaceHolder){
: father.doDraw(canvas);//
: }
: }
: catch(Exception e){
: e.printStackTrace();
: }
: finally{//释放画布
: if(canvas != null){
: surfaceHolder.unlockCanvasAndPost(canvas);//
: }
: }
: }
: 程式码只有撷取重要部分所以就直接贴上来,但是不管怎麽改都一样
: 而且surfaceDestroyed中如果把flag=false以後就也不知道怎样让他醒来
: 我是有设定两个方块按下去可以暂停或者开始
: if(stop.contains(x, y))
: gt.flag = false;
: if(resum.contains(x, y))
: gt.flag = true;
: 但是暂停了下面的方块怎样按都不会变成true继续绘图,我爬文看很多人都是用while
: 当作开关游戏,还是有其他的暂停方式呢?我也有thread.join()在关掉也没用
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.121.169.169