我正在开发一款风景java游戏。
我有一个像这样的精灵数组;
Sprite stickArray[] = new Sprite[10];
并将其初始化为可见性为false。
for (int j = 0; j < stickArray.length; j++) {
if (stickArray[j] != null) {
stickArray[j].setPosition(stickX, stickY);
stickArray[j].setVisible(false);
}
}
后来我想在重复一个键时一个接一个地垂直定位它。最初的flashBool是假的。
public void keyRepeatInGame(int keyCode) {
int gameKey = getGameAction(keyCode);
Graphics g = getGraphics();
if (gameKey == FIRE || keyCode == KEY_NUM5) {
pressBool = true;
}
}
后来我写了这样的代码; 最初一个Sticksprite就在那里。在这个精灵上面,我想把每根棍子放在clalling keyrepeat()的空格键上。
for (int i = 0; i < stickArray.length; i++) {
if (pressBool) {
if (i == 0) {
stickArray[i].setPosition(stickSprite.getX(),
stickSprite.getY() - stickSprite.getHeight());
stickArray[i].setVisible(true);
} else {
stickArray[i].setPosition(stickArray[i-1].getX(),
stickArray[i-1].getY() - stickArray[i].getHeight());
stickArray[i].setVisible(true);
}
}
}
此代码正在部分工作.Stick正在添加到精灵上,一次性完成。
如何更改代码以便仅在调用keyrepeat()时重复添加操纵杆,并使其逐一可见?
答案 0 :(得分:0)
我使用附加条件和break语句更改了代码;
if (pressBool) {
if (stickSprite != null && !stickArray[i].isVisible()
&& stickArray[i] != null) {
if (i == 0) {
stickArray[i].setPosition(
stickSprite.getX(),
stickSprite.getY());
stickArray[i].setVisible(true);
break;
} else if (i > 0) {
stickArray[i].setPosition(
stickArray[i].getX(),
stickArray[i - 1].getY()
- stickArray[i].getHeight());
stickArray[i].setVisible(true);
break;
}
}
}
有效。