我要编一个坦克大战游戏,现以将坦克的功能和子弹的功能编好,但不能解决线程的同步问题,请个位大虾帮帮忙
代码如下(部分省略)
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()方法同时执行,互不影响
如能答复,小弟感激不尽
代码如下(部分省略)
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()方法同时执行,互不影响
如能答复,小弟感激不尽