日期:2014-05-20  浏览次数:20791 次

个位大虾帮忙看一下,小弟实在太菜了,在此谢过~~~~~~~~
我要编一个坦克大战游戏,现以将坦克的功能和子弹的功能编好,但不能解决线程的同步问题,请个位大虾帮帮忙
代码如下(部分省略)
public   class   TankSprite   extends   GameCanvas   implements   Runnable{
public   TankSprite()   {
super(true);
try   {
Tanksprite();

}   catch   (IOException   e)   {

e.printStackTrace();
}  
tankmap   =   new   TankMap();
start();
}
public   void   start(){
isRun   =   true;
Thread   t   =   new   Thread(this);
t.start();

}
public   void   stop(){
isRun   =   false;
}
public   void   run()   {
mSprite.setFrame(0);
while(isRun   ==   true){
render(g);
input();
try{
Thread.sleep(mFrameDelay);
}catch(InterruptedException   ie){}
}

}
}


public   class   BulletSprite   extends   TankSprite   implements   Runnable{
public   BulletSprite()   {

try   {
bulletSprite();
}   catch   (IOException   e)   {

e.printStackTrace();
}  
start();
}
public   void   bulletSprite()   throws   IOException   {

bullet   =   Image.createImage( "/bullet.png ");
mSprite   =   new   Sprite(bullet);
flushGraphics();

}
public   void   start(){
isRun   =   true;
Thread   t   =   new   Thread(this);
t.start();
}
public   void   stop(){
isRun   =   false;
}
public   void   run()   {
mSprite.setFrame(0);
while(isRun   ==   true){
tankmap.mBackground.paint(g);
mSprite.setPosition(x,   y);
fire();

try{
Thread.sleep(mFrameDelay);
}catch(InterruptedException   ie){}
}

}
}

我就是想将两个类中的rum()方法同时执行,互不影响
如能答复,小弟感激不尽

------解决方案--------------------
单机游戏用单线成就可以了
------解决方案--------------------
2楼不厚道
要是这样LZ还问干嘛
------解决方案--------------------
帮顶
------解决方案--------------------
同时执行互不影响,如果这两个类里没有相交叉的地方有可能实现,但是你第二个类继承了第一个类,还是不建议你这样做,如果需要同步的话,就把需要同步的类前边加上synchronized就可以了