Cocos2D iOS之旅:如何写一个敲地鼠游戏(七):弹出地鼠
弹出地鼠现在我们已经确认地鼠被放置在正确的位置上了,让我们添加它们弹出洞的代码吧. 首先,将原来999的z序改回0,使地鼠呆在地底下. 然后添加如下代码到init方法的底部: [self schedule:@selector(tryPopMoles:) interval:0.5];
如果你之前从未见过,你可以在节点运行调度方法告诉Cocos2D每隔几秒去调用其他方法,在这个例子中,我想要让地鼠们每隔1/2秒弹出洞去. 接下来添加tryPopMoles方法: - (void)tryPopMoles:(ccTime)dt {
for (CCSprite *mole in moles) {
if (arc4random() % 3 == 0) {
if (mole.numberOfRunningActions == 0) {
[self popMole:mole];
}
}
}
}
该方法每隔1/2秒被调用一次,每一次将遍历所有地鼠,让它们有1/3的机会去弹出洞穴.但是只有当它们并不在移动的时候才这样做 — 一个简单的检查的方法是看它当前运行的action数是否为0. 最终.增加popMole方法的实现代码: - (void) popMole:(CCSprite *)mole {
CCMoveBy *moveUp = [CCMoveBy actionWithDuration:0.2 position:ccp(0,mole.contentSize.height)]; // 1
CCEaseInOut *easeMoveUp = [CCEaseInOut actionWithAction:moveUp rate:3.0]; // 2
CCAction *easeMoveDown = [easeMoveUp reverse]; // 3
CCDelayTime *delay = [CCDelayTime actionWithDuration:0.5]; // 4
[mole runAction:[CCSequence actions:easeMoveUp,delay,easeMoveDown,nil]]; // 5
}
这段代码使用Cocos2D actions使得地鼠弹出它的洞穴.暂停半秒钟,然后缩回去.让我们一段一段的解释一下:
That’s it!编译运行代码,你将看到地鼠愉快的钻出它们的洞穴! 接下来干神马?这里是迄今为止所有的项目代码: sample project 接下来,我们将添加一些有趣的动画:地鼠发笑和被K的时候,增加游戏逻辑,这样你可以在每次敲地鼠时得到一些分数,并且还有一些声音效果. 下篇见 ;) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |