【问题标题】:How to set a respawn system in cocos2d that is based on a timer?如何在 cocos2d 中设置基于计时器的重生系统?
【发布时间】:2012-06-14 10:02:21
【问题描述】:

我想根据计时器重生敌人的精灵,任何建议都将不胜感激。 如果你给我看一些代码示例就好了。

   -(void)addEnemyAtX:(int)x y:(int)y {
  CCSprite *enemy = [CCSprite spriteWithFile:@"enemy1.png"];
  enemy.position = ccp(x, y);
  [self addChild:enemy];
  [self animateEnemy: enemy];}


  - (void) enemyMoveFinished:(id)sender {
CCSprite *enemy = (CCSprite *)sender;

    [self animateEnemy: enemy];
 }// a method to move the enemy 10 pixels toward the player
 - (void) animateEnemy:(CCSprite*)enemy
    {
    // speed of the enemy
     ccTime actualDuration = 0.3;

     // Create the actions
        id actionMove = [CCMoveBy actionWithDuration:actualDuration
                                                    position:ccpMult(ccpNormalize(ccpSub(player.position,enemy.position)), 10)];
     id actionMoveDone = [CCCallFuncN actionWithTarget:self
                                         selector:@selector(enemyMoveFinished:)];
          [enemy runAction:
                 [CCSequence actions:actionMove, actionMoveDone, nil]];



         }

【问题讨论】:

  • [自我计划:@selector(spawn:) 间隔:1.0f];其他所有内容都过于特定于实现,您没有提供任何您希望如何生成精灵的细节(规则、条件等)。
  • 我希望它生成在与敌人开始时完全相同的位置。我希望有多达无限数量的精灵,并且我希望每 15 秒就可以制作一个新的精灵。我会贴出敌人的代码。
  • 有很多精灵。确保使用批处理节点并删除您不经常使用的节点,否则您将遇到严重的性能问题。

标签: iphone xcode ios5 cocos2d-iphone sprite


【解决方案1】:

我认为你应该先学习 Cocos2D 的基础知识 ;) 《学习 Cocos2D》一书中对它进行了很好的介绍——我推荐它! 尽管如此,这是您想要的代码行,但我怀疑它是否有用;)

action = [CCSpawn actions:
          [CCAnimate actionWithAnimation:animation
break;
restoreOriginalFrame:NO],
[CCMoveTo actionWithDuration:2.4f
 position:ccp([self position].x +
 nil];
xPositionOffSet,
[self position].y)],

【讨论】:

  • 我具体如何实现它?是的,我是新手,但我正在努力学习,而且我已经学到了很多。
  • 你应该为敌人制作一个实现文件。像“MyEnemy.m”(当然还有 .h)。在那里你几乎可以做任何你需要敌人做的事情。在以下方法中也有上述代码 -> -(void)changeState:(CharacterStates)newState
  • 我猜是因为你缺乏一些方法;)就像我说的,试着熟悉基础知识,它会来找你。这并不难,但是在这里解释甚至编写所有代码都太多了。我是通过《Learning Cocos2D》这本书学习的——它真的很棒。否则,您可以访问 www.raywenderlich.com - 有很多教程,还有一些关于生成敌人的教程 :)
  • 他在哪个教程中重生了敌人?
  • 好吧,别偷懒,直接去现场吧 ;) 例如,第一个涵盖了你可以在屏幕上产生多个敌人的人raywenderlich.com/352/…
猜你喜欢
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2022-06-25
  • 2015-09-15
  • 1970-01-01
  • 1970-01-01
  • 2018-11-20
相关资源
最近更新 更多