首頁 資料庫 mysql教程 (译)使用cocos2d、LevelHelper和SpriteHelper实现疯狂考拉(Pa

(译)使用cocos2d、LevelHelper和SpriteHelper实现疯狂考拉(Pa

Jun 07, 2016 pm 03:27 PM
使用

PS:关于cocos2d国外有很多不错的教程网站,http://highoncoding.com/也是其中一个,看了他们8月17发的疯狂考拉教程,其实主要是用到了LevelHelper和SpriteHelper这两个工具,还有SneakyInput做的摇杆以及一点点的box2d,其实子龙山人很早之前也翻译过类的文

PS:关于cocos2d国外有很多不错的教程网站,http://highoncoding.com/也是其中一个,看了他们8月17发的疯狂考拉教程,其实主要是用到了LevelHelper和SpriteHelper这两个工具,还有SneakyInput做的摇杆以及一点点的box2d,其实子龙山人很早之前也翻译过类似的文章,不过我都忘了,自己尝试翻译了一下,重温这些工具的使用,郑重声明:由于本人英语水平比较烂,翻译水平有限,各位就凑合看吧!

http://highoncoding.com/Articles/868_Implementing_Kraazy_Koala_Using_Cocos2d__LevelHelper_and_SpriteHelper_Part__3.aspx

使用Joints悬挂猴子:(Hanging Monkey with Joints: )

猴子不只是坐在那里,他们倒挂在树木上或者像Tarzan那样在树枝上晃悠。借助joints的力量我们可以在我们的游戏中实现同样的效果。在LevelHelper创建joints是非常简单的。你只需要做的是选择要创建的joint的类型,然后选择其包含的bodies就行了!一个joint只能用于一个物理body。这意味着body精灵要么是静态的要么是动态的。尽管我们可以创建一个joint用于树和猴子之间,但在这里我们会使用不同的方法来实现。这里的block将是不可见的,所以它不会使我们的树难看。我们将在这篇文章中解释我们的做法的原因。

下面的屏幕截图显示了如何在block和猴子之间做一个joint。确保joint是静态的,猴子是动态的。

(译)使用cocos2d、LevelHelper和SpriteHelper实现疯狂考拉(Pa

使用LevelHelper运行关卡,你会发现,现在的猴子从左至右晃悠很像...猴子。

(译)使用cocos2d、LevelHelper和SpriteHelper实现疯狂考拉(Pa

注意:如果LevelHelper加载的不是您最近的更改,先关闭SceneTester,然后再次测试关卡。在SceneTester有一个bug,它不能获取最新的更变。

发射香蕉:(Shooting Bananas:)

目前,猴子是手无寸铁的,但这是改变的。我们将提供无限量的香蕉给猴子。香蕉在给定的时间间隔内扔出,这通过NSTimer类来安排实现,如在下面的代码所示:

[NSTimer scheduledTimerWithTimeInterval:8.0 target:self selector:@selector(throwBanana:) userInfo:nil repeats:YES];

登入後複製

以上代码每8秒触发一次throwBanana方法。 throwBanana方法实现如下:

-(void) throwBanana:(NSTimer *) timer
{
    banana = [loader createSpriteWithName:@"fruit_banana_100" fromSheet:@"KoalaSheet" fromSHFile:@"KoalaSpriteHelper"];
    
    banana.tag = BANANA;
    
    [banana transformPosition:CGPointMake(monkey.position.x - 100, monkey.position.y)];

    banana.visible = TRUE;
    
    float randomXForce = ((arc4random() % 3) + 0.15) * -1;
    float randomYForce = ((arc4random() % 3) + 0.15) * 1;
    
    [banana body]->ApplyLinearImpulse(b2Vec2(randomXForce,randomYForce), banana.body->GetWorldCenter());
}

登入後複製

炸药:(Dynamites: )

菠萝杀不死一只猴子!我们需要炸药!在本节中,我们将用LevelHelper提供的路径选项创建一个炸药导火线。我们将把一个炸药放在树下,然后炸了猴子。

从精灵图标视图中拖拽炸药,并将其放置在树下。使用贝赛尔工具创建一条从考拉到炸药的路径,如下面的截图所示:

(译)使用cocos2d、LevelHelper和SpriteHelper实现疯狂考拉(Pa

为了使贝塞尔有一个路径,只需在右窗格中选中该框。给贝塞尔取一个唯一的名称“DynamiteLine”。

(译)使用cocos2d、LevelHelper和SpriteHelper实现疯狂考拉(Pa

这时我们已经制定了炸药导火线,接下来我们要点燃它。从精灵的资产视图中拖拽火花(火)精灵,并把它放在炸药导火线开始端的旁边。

(译)使用cocos2d、LevelHelper和SpriteHelper实现疯狂考拉(Pa

“火”精灵路径被设置为沿着炸药导火线。设置“火”精灵属性,如下面的截图所示:

(译)使用cocos2d、LevelHelper和SpriteHelper实现疯狂考拉(Pa

如果您在LevelHelper运行关卡,你会看到,火精灵开始沿着路径,当它到达终点时什么也没有发生。当火精灵到达路径的终点时我们需要触发某种形式的通知。这就是NSNotificationCenter的作用了。下面的代码实现了,使用NSNotificationCenter通知如何安排到达路径终点。

[[NSNotificationCenter defaultCenter] addObserver:self
                                                selector:@selector(firePathHasEnded:)
                                                    name:LHPathMovementHasEndedNotification
                                                  object:fire];

 -(void)firePathHasEnded:(NSNotification*) notification
{
    LHSprite *dynamite = [loader spriteWithUniqueName:@"dynamite"];

    CCParticleExplosion *explosion = [[CCParticleExplosion alloc] init];

    explosion.position = dynamite.position;
    [self addChild:explosion];

    CCParticleFire *fire = [[CCParticleFire alloc] init];
    fire.position = dynamite.position;
    [self addChild:fire];

    [monkey removeAllAttachedJoints];

}
登入後複製

firePathHasEnded方法简单地实现了一些爆炸效果并确保猴子掉进燃烧的火海中!

下载代码:(Download Code: )

疯狂考拉的完整代码firePathHThe,可以通过以下链接从Github下载:

Kraazy Koala Source Code

总结:(Conclusion: )

在这三部分组成的教程系列中,我们学会了如何使用cocos2d LevelHelper,SpriteHelper和Kobold2d做一个完整的游戏。游戏涵盖了LevelHelper和SpriteHelper框架许多不同的方面。我们真的希望你喜欢这一系列教程。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用磁力鏈接 如何使用磁力鏈接 Feb 18, 2024 am 10:02 AM

如何使用磁力鏈接

如何使用mdf和mds文件 如何使用mdf和mds文件 Feb 19, 2024 pm 05:36 PM

如何使用mdf和mds文件

crystaldiskmark是什麼軟體? -crystaldiskmark如何使用? crystaldiskmark是什麼軟體? -crystaldiskmark如何使用? Mar 18, 2024 pm 02:58 PM

crystaldiskmark是什麼軟體? -crystaldiskmark如何使用?

foob​​ar2000怎麼下載? -foobar2000怎麼使用 foob​​ar2000怎麼下載? -foobar2000怎麼使用 Mar 18, 2024 am 10:58 AM

foob​​ar2000怎麼下載? -foobar2000怎麼使用

網易信箱大師怎麼用 網易信箱大師怎麼用 Mar 27, 2024 pm 05:32 PM

網易信箱大師怎麼用

小愛音箱怎麼用 小愛音箱怎麼連接手機 小愛音箱怎麼用 小愛音箱怎麼連接手機 Feb 22, 2024 pm 05:19 PM

小愛音箱怎麼用 小愛音箱怎麼連接手機

百度網盤app怎麼用 百度網盤app怎麼用 Mar 27, 2024 pm 06:46 PM

百度網盤app怎麼用

pip鏡像來源簡易指南:輕鬆掌握使用方法 pip鏡像來源簡易指南:輕鬆掌握使用方法 Jan 16, 2024 am 10:18 AM

pip鏡像來源簡易指南:輕鬆掌握使用方法

See all articles