在我的应用程序中,有一个玩家和10个目标。每个目标一个接一个地出现(从target1到target10)。这是一场射击游戏。如果我们达到第一个目标,那么第二个目标就会到来。目标具有名称,speedOfGunDraw,击中玩家的概率,speedOfFire等属性。 我该怎么做才能让它们一个接一个地出现这些属性。我正在使用CCMenuItem作为目标。我正在为玩家使用精灵。请让我知道这样做。 谢谢。
答案 0 :(得分:2)
解决您的问题:使用Cocos2D,您的场景将创建精灵。您可以获取当前运行的场景并向其发送消息(例如,“我正在拍摄”)。这可以通过导演来完成。
[[CCDirector sharedDirector] runningScene]; // returns a pointer to the running scene
[[[CCDirector sharedDirector] runningScene] someoneShotMe: self]; // will message the scene that you're shot.
或者,如果您的场景不控制事物,请在创建“敌人”时设置您希望作为代表通知的对象。
Enemy * enemy1 = [[Enemy alloc] init];
[enemy1 setDelegate: self];
// and then from your enemy object, you call a message on the delegate
[self->delegate someoneShotMe: self];
我认为你已经过度复杂了,因为你没有在那里使用MVC。
除了“视图”之外,你不应该为sprites创建子类以提供更多功能。
probabilityToHitPlayer
之类的属性不会直接影响视图,因此不应存储在精灵中。
创建一个新类,如Enemy
(NSObject
的子类),其中包含一个精灵,以及其他属性,如probabilityToHitPlayer
另外,使用菜单项是因为它们有触摸检测功能?不漂亮。相反,请查看CCTargetedTouchDelegate。