1
随着我的游戏进行,敌人变得更强。为了让敌人变得更强大,我制作了一个名为thealth的私人int(可能是一个糟糕的编程选择),每次这个sprite都会触及这个财富 - ;直到它达到零并且精灵被移除。这工作得很好,直到我决定一次在我的场景中有多个精灵。我遇到的问题是,如果这个精灵拥有两个财富(例如),我触摸它,所有其他精灵都有他们的财富 - ;太。那么我怎么能给每个精灵自己的健康,所以如果我碰它,其他精灵不会受到影响?每个敌人的生命
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
if (pSceneTouchEvent.isActionDown()) {
if (this.getAlpha() > 0.8f) {
thealth--;
}
if (thealth == 0) {
this.detachSelf();
mScene.unregisterTouchArea(this);
Score++;
if (Score < 35) {
thealth = 1;
}
if (Score > 35) {
thealth = 2;
}
if (Score > 100) {
thealth = 3;
}
}
return true;
}
return false;
}
听起来像健康定义为静态 – SpiderPig
确保thealth是一个实例变量( - >每个实例有它自己的拷贝),而不是一个静态或全局变量。 – Patashu
我知道这不是最好的代码,我一直试图教自己的Java和我一直在相处,我猜。谢谢你们的帮助。 – user2300663