Cocos2D:塔防游戏制作之旅(八)】的更多相关文章

如果所有东西通过检查,则创建一个新炮塔,将它放置在基座上,然后添加到towers数组中. 注意:在方法最后的bridge语法需要做一些解释.你下载的初始项目已经为一 些文件打开ARC,但不是Cocos2D的所有文件.当你存储一个CCSprite属性 (non-ARC)到你自己的炮塔对象的指针(ARC)中去时,__bridge指导告知编 译器仅仅简单存储指针,但是不传递所有权.更详细的内容可以在 http://www.mikeash.com/pyblog/friday-qa-2011-09-30-…
在Enemy.m的getDamaged:方法只给你添加如下1行(在if条件内): [theGame awardGold:200]; 现在运行游戏你将注意到你不能放置超出你资源金币的炮塔了.当然杀死敌人可以奖励金币,so你可以继续购买更多的炮塔!这是一个令人惊叹的系统,不是吗? 现在,最终,对于一些额外的地方,添加一些酷酷的背景音乐(由Kevin MacLeod制作)和cxfr制作的音效,他们可以使你的游戏更有趣一些! 打开HelloWorldLayer.m并且添加以下修改: //At the t…
原文地址:http://www.raywenderlich.com/37701/how-to-make-a-tower-defense-game-tutorial 由Pablo Ruiz写的入门教程,内容相当不错,现由本猫翻译出来,希望大家可以从中学到不少东西.由于本猫水平有限,难免不少错误,欢迎拍砖指正 ;) 文章写成于2013/6/8,Cocos2D版本为2.1-rc1,首次由Pablo Ruiz发布,由Brian Broom更新. 塔防游戏类型有理由成为iOS上最受欢迎的游戏类型.建造终极…
编译运行你的app,放置一些炮塔在你的地图上吧!你将看到炮塔在敌人移动如攻击范围时如何立即开始攻击,并且敌人的血条将随着攻击不断减少知道它们被人道毁灭!胜利即将来临了! 哦!Okay,这里只有少数细节还未实现你就可以得到一个完整特性的塔防游戏啦!音效应该是一个不错的尝试.并且尽管不可战胜和极端富裕很好,你的基地还是应该有能力持续抗打的能力 - 并且你需要限制玩家的金币供给. 闪耀着的炮塔:Gotta Polish It All! 开始实现显示玩家剩余的命数 - 以及当玩家失败时发生什么! 打开H…
一个象牙塔的视图 如果你并不熟悉此类型的游戏,塔防游戏是一个战略游戏,你需要购买和将武装塔放置在战略位置,去阻止一波又一波的敌人到达并摧毁你的基地 每一波敌人都更强,这些更强的对手有着更快的速度和对于你攻击而言更厚的防御力.在游戏最终你将在所有攻击中存活下来(胜利!),或者足够的敌人到达你的基地将其摧毁(啊偶!你被打败了!). 这里有一个游戏运行时的截图: 就像你看到的那样,敌人从屏幕左上角出现,然后沿着绿色的路径直达玩家的基地.顺着这条路径,周围有一些可以放置炮塔的平台.玩家可以购买和放置他们…
getHpDamage方法当敌人到达基地时被调用.你需要添加该方法到Enemy.m的update:方法中去,以便检查当敌人到达基地是会发生什么.幸运的是,你已经在之前的代码中实现这些了,你可以接着往下走了! ;] 编译运行游戏,但是这次控制住你即将扣动扳机的手指让敌人抵达你的基地吧. 你将看到玩家生命在减少,直到游戏结束. 欧拉,肥猫(你怎么知道我是肥猫? 猫猪注),是时候限制金币供给了. 大多数游戏被实现为"零和(zero-sum)"型的特性,赋予每个塔一定消费并且限制玩家的资源.你…
让我们看一下项目的结构.在TowerDefense文件夹,你将找到: 含有Cocos2D文件的libs文件夹 含有所有图片和声音的资源文件夹 现在,你已经准备就绪准备开始建造炮台之旅了 ;) 放置炮塔的艺术 首先,为场景增加背景图片.打开HelloWorldLayer.m文件,然后在init方法的if条件中添加如下代码行: // 1 - Initialize self.touchEnabled = YES; CGSize winSize = [CCDirector sharedDirector]…
整合炮塔资源 为了快速开始,我们为你创建了开始的项目.它包括了一个空白的Cocos2D项目以及大多数你将在教程中使用到的资源. 所以首先下载该 开始项目 并且解压缩到你指定的位置中去. 注意:该项目的艺术资源来有Vicki制作的自免费艺术包中,它基于Oray Studios的其他免费的艺术包.如果你喜欢它们,你可以雇佣Oray Studios中的艺术家们! 开始项目基于Cocos2D 2.1(RC1)的基础模板而创建,他提供你一个可工作的项目:包含一个在屏幕上带有居中标签的HelloWorldL…
塔之战:炮塔的攻击 炮塔就位了?检查.敌人前进中?再次检查 - 它们看起来就是如此!看起来到了击溃这些家伙的时候了!这里我们将智能置入炮塔的代码中去. 每一个炮塔检查是否有敌人在其攻击范围.(炮塔一次只能攻击一个敌人.猫猪注)如果有,炮塔将开始向敌人开火直到两件事之一发生:敌人移出攻击范围或者敌人被摧毁.炮塔接着开始寻找其他欠扁的家伙 :] 将它们放到一起,新建新炮塔!你已经有一个防御基础了! 因为敌人和炮塔类相互依赖彼此,你不得不首先更新它们类的头文件,去避免你在修改实现代码时Xcode发生显…
让我们看一下Waves.plist文件,你将注意到它包含了3个数组.每一个数组表示一波攻击,也就是一组敌人一起到达闹事.第一个数组包含6个字典.每一个字典定义1个敌人. 在本次教程中,字典只存储敌人应该出现的时间,但是该字典也可以用来定义敌人的类型或者其他任何区分敌人的特殊属性. loadWave方法检查下一波攻击应该何时出现,基于攻击波的信息创建对应的敌人,并且将它们调度出现到屏幕上. 方法enemyGotKilled检查有多少敌人存在于屏幕上,如果一个都没有,则送出下一个攻击波.在后来,该方…