仔细研究游戏中精灵的运动,我们发现:所有这样的运动都可以细分为若干个基本动作和基本动作的组合动作。进一步通过动作扩展,我们可以将同一精灵的更多动作和不同精灵之间的不同动作连贯起来,形成关于整个运动世界的连续模拟。
我们给出示例ZYG003,展示Cocos2D-iPone支持的主要动作:
基本动作
| | (Action *) | action | |
// 创建动作
id actionTo = [CCMoveTo actionWithDuration: 2 position:ccp(s.width-40, s.height-40)];
// 使用动作。(说明:tamara是一个CCSprite。)
[tamara runAction: actionTo];
接下来,我们从以下3个方面介绍基本动作。
瞬时动作
Cocos2d-iPhone提供以下瞬时动作:(示例代码G04中的CCInstantActionLayer实现了下面的代码):
l
效果类似于node.Position = ccp(x, y)。之所以作为一个动作来实现是为了可以与其他动作形成一个连续动作。下面为示例代码:
- (void) OnPlaceMenue:(id) sender
{
}
l
效果类似于 [node setVisible:NO]. 之所以作为一个动作来实现是为了可以与其他动作形成一个连续动作。下面为示例代码:
- (void) OnHideMenue:(id) sender
{
}
l
效果类似于 [node setVisible:YES]. 之所以作为一个动作来实现是为了可以与其他动作形成一个连续动作。下面为示例代码:
- (void) OnShowMenue:(id) sender
{
}
l
代码如下:
- (void) OnToggleMenue:(id) sender
{
}
还有几个较为特殊的二个(网格重用 – ReuseGrid、停止网格 – StopGrid)我们后面介绍。
延时动作
Cocos2d-iPhone提供以下瞬时动作:(示例代码G04中的IntervalActionLayer实现了下面的代码)。函数命名规则是
XxxxTo: 意味着运动到指定的位置。
XxxxBy:意味着运动到按照指定的x、y增量的位置。(x、y可以是负值)
l
l
l
设置终点位置和跳跃的高度和次数。
l
设置终点位置和跳跃的高度和次数。
l
支持3次贝塞尔曲线:P0-起点,P1-起点切线方向,P2-终点切线方向,P3-终点。
首先设置定Bezier参数,然后执行。
l
设置放大倍数,是浮点型。
l
l
l
l
设定闪烁次数
l
l
l
l
l
...
如果您对本文感兴趣,可以到这里下载完整PDF。示例源代码下载。