多个对象如何在没有实例引用的情况下向对象发送通知(在 java 中)? |
您所在的位置:网站首页 › java怎么开发游戏 › 多个对象如何在没有实例引用的情况下向对象发送通知(在 java 中)? |
假设您的应用程序中的 GameWorld 类可以访问所有关卡,而这些关卡又在该关卡上有敌人。您可以参考以下代码库并提出最适合您需求的解决方案。 public class GameWorld { private List gameLevels; private GameLevel currentLevel; public GameWorld() { gameLevels = new LinkedList(); this.instantiate(); } private void instantiate() { // instantiate game adding levels to it } public void moveToNextLevel() { currentLevel = currentLevel.next(); } } public class Enemy { private EnemyType enemyType; private GameLevel gameLevel; public Enemy(GameLevel level, EnemyType type) { enemyType = type; gameLevel = level; } private void create() { // .. instantiation task gameLevel.listEnemy(this); } private void killEnemy() { // clean up task gameLevel.delistEnemy(this); // .. clean up task } } public class GameLevel { private GameWorld gameWorld; private List enemies; private GameLevel nextLevel; public GameLevel(GameWorld world) { enemies = new ArrayList(); gameWorld = world; } public void listEnemy(Enemy enemy) { enemies.add(enemy); } public void delistEnemy(Enemy enemy) { enemies.remove(enemy); if(enemies.isEmpty()) { gameWorld.moveToNextLevel(); } } public void setNextLevel() { // set next level after this } public GameLevel next() { return nextLevel; } } |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |