0
這個問題是關於AndEngine/Android,但也適用於Java。我在遊戲中有一個NPC類,當玩家靠近他們時,我希望他們通過在他們上面創建一個矩形/文本來顯示消息。我創建了多個NPC,並將它們添加到名爲NPCbody的數組中。如果他們靠近玩家,我想使用for循環在他們每個上面繪製矩形/文本。我可以做到這一點,但唯一的問題是,現在我有這個代碼,他們不會脫離現場。它填滿了玩家接近NPC的矩形。那麼我如何才能讓這些創建的矩形只爲每個NPC創建一次,並更新?創建並更新數組元素的對象? Android
try {
if (NPCbody.size() > 0) {
for (int i = 0; i < NPCbody.size(); i++) {
final Rectangle NPCmessageRectangle;
final Text NPCmessageText;
NPCmessageRectangle = new Rectangle(NPCx - 50, NPCy + 175, 200, 50,
vbom);
NPCmessageRectangle.setColor(Color.BLACK);
NPCmessageRectangle.setAlpha(90);
NPCmessageText = new Text(NPCx, NPCy, resourcesManager.smallFont,
"abcdefghijklmnopqrstuvwxyz1234567890.,!?\" ", vbom);
NPCmessageText.setText("");
attachChild(NPCmessageText);
NPCmessageText.setVisible(false);
attachChild(NPCmessageRectangle);
NPCmessageRectangle.setVisible(false);
NPCx = NPCbody.get(i).getPosition().x * 32;
NPCy = NPCbody.get(i).getPosition().y * 32;
NPCmessage = npc.getNPCmessage();
NPCmessageText.setText(NPCmessage);
NPCmessageText.setPosition(NPCx, NPCy + 50);
NPCmessageRectangle.setX(NPCx);
NPCmessageRectangle.setY(NPCy + 50);
if (isDistance(player.getX(), player.getY(), NPCx, NPCy,
150)) {
NPCmessageRectangle.setVisible(true);
NPCmessageText.setVisible(true);
System.out.println("Rectangle set visible for NPC "+i);
} else {
NPCmessageRectangle.setVisible(false);
NPCmessageText.setVisible(false);
}
}
}
} catch (Exception e) {
}
(此代碼是一個被反覆調用方法的一部分。)