原文地址: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上最受欢迎的游戏类型.建造终极防御并且消灭掉成堆的入侵者总有一些不可思议乐趣!

在塔防游戏之旅中,你将使用Cocos2D从零开始建造你自己的塔防游戏!

你将学到如下内容:

  • 如何使用可配置的产生时间创建一波又一波的敌人
  • 如何使得敌人沿着指定的点前进
  • 如何在地图指定位置建立塔
  • 如何使得塔攻击敌人
  • 如何可视化调试显示路径点和塔的攻击范围

在该塔防游戏之旅结束时,你将有一个该类型游戏的实际框架,你将能够接着扩展去增加啊新的塔类型,敌人和地图!

对于本次旅程,你需要了解基本的Cocos2D知识,如果你完全是Cocos2D的新手,你应该首先查看其它入门的Cocos2D的教程.

废话无多,让我们开始建立我们的塔防游戏吧! ;)

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

  1. Cocos2D:塔防游戏制作之旅(十八)

    在Enemy.m的getDamaged:方法只给你添加如下1行(在if条件内): [theGame awardGold:200]; 现在运行游戏你将注意到你不能放置超出你资源金币的炮塔了.当然杀死敌人 ...

  2. Cocos2D:塔防游戏制作之旅(十六)

    编译运行你的app,放置一些炮塔在你的地图上吧!你将看到炮塔在敌人移动如攻击范围时如何立即开始攻击,并且敌人的血条将随着攻击不断减少知道它们被人道毁灭!胜利即将来临了! 哦!Okay,这里只有少数细节 ...

  3. Cocos2D:塔防游戏制作之旅(二)

    一个象牙塔的视图 如果你并不熟悉此类型的游戏,塔防游戏是一个战略游戏,你需要购买和将武装塔放置在战略位置,去阻止一波又一波的敌人到达并摧毁你的基地 每一波敌人都更强,这些更强的对手有着更快的速度和对于 ...

  4. Cocos2D:塔防游戏制作之旅(十七)

    getHpDamage方法当敌人到达基地时被调用.你需要添加该方法到Enemy.m的update:方法中去,以便检查当敌人到达基地是会发生什么.幸运的是,你已经在之前的代码中实现这些了,你可以接着往下 ...

  5. Cocos2D:塔防游戏制作之旅(八)

    如果所有东西通过检查,则创建一个新炮塔,将它放置在基座上,然后添加到towers数组中. 注意:在方法最后的bridge语法需要做一些解释.你下载的初始项目已经为一 些文件打开ARC,但不是Cocos ...

  6. Cocos2D:塔防游戏制作之旅(四)

    让我们看一下项目的结构.在TowerDefense文件夹,你将找到: 含有Cocos2D文件的libs文件夹 含有所有图片和声音的资源文件夹 现在,你已经准备就绪准备开始建造炮台之旅了 ;) 放置炮塔 ...

  7. Cocos2D:塔防游戏制作之旅(三)

    整合炮塔资源 为了快速开始,我们为你创建了开始的项目.它包括了一个空白的Cocos2D项目以及大多数你将在教程中使用到的资源. 所以首先下载该 开始项目 并且解压缩到你指定的位置中去. 注意:该项目的 ...

  8. Cocos2D:塔防游戏制作之旅(十四)

    塔之战:炮塔的攻击 炮塔就位了?检查.敌人前进中?再次检查 - 它们看起来就是如此!看起来到了击溃这些家伙的时候了!这里我们将智能置入炮塔的代码中去. 每一个炮塔检查是否有敌人在其攻击范围.(炮塔一次 ...

  9. Cocos2D:塔防游戏制作之旅(十三)

    让我们看一下Waves.plist文件,你将注意到它包含了3个数组.每一个数组表示一波攻击,也就是一组敌人一起到达闹事.第一个数组包含6个字典.每一个字典定义1个敌人. 在本次教程中,字典只存储敌人应 ...

随机推荐

  1. bootstrap插件fileinput.js 显示无法上传失败

    哪怕图片已经传到服务器上了 依然显示出错 // 处理完成后,必须返回一个json数据,否则会报错误 JSONObject jsonObject = new JSONObject(); jsonObje ...

  2. 用JavaScript按一定格式解析出URL 串中所有的参数

    1.先看看location对象 2.其中的search属性就获取当前URL的查询部分(问号?之后的部分) 3.改造location.search 比如当前URL为:https://www.hao123 ...

  3. c#默认类的修饰符。

    类的默认修饰符是internal  当其修饰符为internal时,其他模块不能访问该类, 所以class类的修饰符一般为public

  4. JavaScript正则表达式模式匹配(4)——使用exec返回数组、捕获性分组和非捕获性分组、嵌套分组

    使用exec返回数组 var pattern=/^[a-z]+\s[0-9]{4}$/; var str='google 2012'; alert(pattern.exec(str)); //返回一个 ...

  5. 聊聊LightProbe原理实现以及对LightProbe数据的修改

    0x00 前言 最近工作比较忙,所以文章已经很久没有更新了.这篇小文的主题也是在出差的高铁上想到,因为最近和一些朋友聊天,发现他们中很多人的项目中都使用了多个实时光源.细问之下主要是某些物体,例如角色 ...

  6. map函数、filer函数、reduce函数的用法和区别

    Map函数 map函数的用法如下: def add_one(x): return x+1 #使用普通函数 v1 = map(add_one,[1,2,3]) v1 = list(v1) print(v ...

  7. 牛客网编程练习之PAT乙级(Basic Level):1032 选大王

    典型的约瑟夫环问题 AC代码: import java.util.ArrayList; import java.util.List; import java.util.Scanner; /** * @ ...

  8. PTA中提交Python3程序的一些套路

    0. FAQ 0.1 提交后提示"答案错误"或者"格式错误" PTA检查答案正确与否是通过字符串匹配实现的.所以可能有以下几种原因: 格式错误:程序的输出要与题 ...

  9. git 撤销没有提交的变化

    参考: https://stackoverflow.com/questions/5807137/how-to-revert-uncommitted-changes-including-files-an ...

  10. 新版Azure CDN HTTPS加速服务正式上线

    随着网络安全问题日益得到全民重视,HTTPS网络访问协议在互联网访问中得到了广泛的使用.Azure CDN也早在一年前的2015年4月上线了HTTPS加速服务.该加速服务上线一年以来,用户使用量逐渐增 ...