了解CCMoveTo CCCallFuncN CCSequence用法

在《iPhone & iPad Cocos2D游戏开发实战》一书中在看第四章时候遇到陌生知识,然后在网上找到相关知识点,再此记录;

由序列控制蜘蛛的移动方法代码

-(void) runSpiderMoveSequence:(CCSprite*)spider {
// 随着时间慢慢增加蜘蛛的移动速度 
numSpidersMoved++;//定义的int型变量
if (numSpidersMoved % 8 == 0 && spiderMoveDuration > 2.0f) {
spiderMoveDuration -= 0.1f; }
// 用于控制蜘蛛移动的动作序列
CGPoint belowScreenPosition = CGPointMake(spider.position.x,
-[spider texture].contentSize.height);
CCMoveTo* move = [CCMoveTo actionWithDuration:spiderMoveDuration position:belowScreenPosition];
CCCallFuncN* call = [CCCallFuncN actionWithTarget:self selector:@selector(spiderBelowScreen:)];
CCSequence* sequence = [CCSequence actions:move, call, nil];
[spider runAction:sequence]; 
}

RunSpiderMoveSequence方法的作用是跟踪已被放下的蜘蛛数量。每次到第八个蜘蛛时,spiderMoveDuration的值就会被减少,从而提高所有蜘蛛的移动速度。%这个符号叫作“余数运算子”(Modulus Operator),用于得到运用除法以后得到的余数。比如,如果numSpidersMoved可以用8除尽,那么“余数运算子”的计算结果就应该是0。

这里用到的动作序列只有一个CCMoveTo动作和一个CCCallFuncN动作。你可以改进蜘蛛的行为,比如让它往下移动一点,等个几秒钟,然后一直移动到底部,就像真的邪恶的蜘蛛通常会做的那样。我将把具体的做法留给你去发挥。我选择CCCallFuncN的目的是给spiderBelowScreen方法传递蜘蛛精灵作为它的sender变量。这样的话,当某只蜘蛛到达屏幕底部时,我就可以直接引用那个蜘蛛,不需要再去到处找了 


1.CCMoveTo  

表示移动到某一个点,还有一个与它类似的CCMoveBy表示移动相对于当前位置某个位置,相当于一个向量;


2.CCCallFuncN

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值