个位大虾帮忙看一下,小弟实在太菜了,在此谢过~~~~~~~~
我要编一个坦克大战游戏,现以将坦克的功能和子弹的功能编好,但不能解决线程的同步问题,请个位大虾帮帮忙
代码如下(部分省略)
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就可以了