日期:2014-05-20  浏览次数:20616 次

请问要多个敌人的时候要怎么扩展精灵类啊?最好给个实例 谢谢
请问要多个敌人的时候要怎么扩展精灵类啊?
我做了好几星期了就是想不出来,书上也没有详细的.
好心人最好给个实例   谢谢

------解决方案--------------------
不知道你说的“多个敌人”是什么意思,

如果是一种敌人,也就是动作、模型、事件什么的都一样的敌人,
只是数量上多的话,就用楼上兄弟说的数组。
因为java的数组是所有集合里面遍历存取最快的!
(不过,如果要动态的删除或者添加的话,还是用List比较好!
具体的性能你可以参照一下《think in java》第三版,
有专门的章节做的介绍。不过是j2se版,可以参考之


如果是多种敌人的话,那就一种敌人设计一个类,从精灵里面继承。
为了利用面向对象的优点,最好设计一个统一的借口,
让所有的敌人都实现这个接口。目的是统一各个类的行为
(这个行为不是action的行为,而是程序调用的行为,context)
然后在用数组的办法来进行管理!

至于“都要动”的话,
有2个办法,
1是把graphic对象传给每个“敌人”实例,然后让这些实例自己改变自己的状态,自己paint自己
2是这些实例只进行状态的变化,然后canvas进行统一的paint。
(我说的“状态变化”是指位置、图标等等的“敌人”的属性的变化)

感觉上第一个各自paint自己的那一亩三分地,应该比较容易进行设计吧!

具体的就要看楼主的需求和要求了!

good luck