为精灵的运动制作ccTime功能的最佳方法是什么?

时间:2011-10-11 14:28:34

标签: iphone objective-c cocos2d-iphone

我正在尝试制作一款简单的游戏,而我正在努力制作一支箭头。 到目前为止,我有两个功能,

-(void)ccTouchesBegan

触摸开始做一些数学运算并从箭头和拇指按压的初始拍摄点获取矢量,然后将这些数据传递到另一个函数:

-(void)shatArrow:(CGPoint)cl:(CGPoint)nv{

}

我想要的是shatArrow函数调用一个ccTime函数,该函数仅为了使箭头移动而运行,一旦箭头完成它的投影,ccTime函数将停止,并且可以在以后再次调用需要的时候。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

安排更新选择器(即在您班级的init方法中):

[self scheduleUpdate];

然后实现更新方法:

-(void) update:(ccTime)delta
{
  if (isArrowMoving)
  {
     // arrow move code here

     if (arrow movement should end)
     {
        isArrowMoving = NO;
     }
  }
}

您可以保持更新方法的运行,除非您有数百个箭头,它不会影响性能。

-(void) shootArrow:(CGPoint)cl:(CGPoint)nv
{
   isArrowMoving = YES;
   // other arrow movement init code here
}
不过,这是“拍摄,拍摄,拍摄”,而不是“拍摄,拍摄,拍摄”或类似的东西。 (我想你没有要求#LinguisticsOverflow答案);)