Cocos2D:塔防游戏制作之旅(九)
炮塔哲学:敌人,攻击波和路径点
在创建敌人之前,让我们先为它们”铺路”.敌人将沿着一系列的路径点前进,这些路径点互相连接,它们被定义为敌人在你创建的世界中移动的路径.
敌人将在第一个路径点上出现,搜索列表中下一个路径点,然后这样重复下去,直到它们到达最后一个路径点-你的基地!如果这些家伙抵达你的基地,你将收到损伤.
我们使用类模板创建路径点的列表,名字为Waypoint,继承于CCNode.
将Waypoint.h替换为如下内容:
#import "cocos2d.h"
#import "HelloWorldLayer.h"@interface Waypoint: CCNode {HelloWorldLayer *theGame;
}@property (nonatomic,readwrite) CGPoint myPosition;
@property (nonatomic,assign) Waypoint *nextWaypoint;+(id)nodeWithTheGame:(HelloWorldLayer*)_game location:(CGPoint)location;
-(id)initWithTheGame:(HelloWorldLayer *)_game location:(CGPoint)location;@end
然后在替换Waypoint.m为以下内容:
#import "Waypoint.h"@implementation Waypoint@synthesize myPosition, nextWaypoint;+(id)nodeWithTheGame:(HelloWorldLayer*)_game location:(CGPoint)location
{return [[self alloc] initWithTheGame:_game location:location];
}-(id)initWithTheGame:(HelloWorldLayer *)_game location:(CGPoint)location
{if( (self=[super init])) {theGame = _game;[self setPosition:CGPointZero];myPosition = location;[theGame addChild:self];}return self;
}-(void)draw
{ccDrawColor4B(0, 255, 2, 255);ccDrawCircle(myPosition, 6, 360, 30, false);ccDrawCircle(myPosition, 2, 360, 30, false);if(nextWaypoint)ccDrawLine(myPosition, nextWaypoint.myPosition);[super draw];
}@end
首先,代码通过传递HelloWorldLayer对象的引用和一个CGPoint来初始化一个路径点,CGPoint是该路径点的位置.
每一个路径点包括了下一个路径点的引用;它创建了一系列路径点的链接(你以前有认真留意过数据结构课程吗?).每一个路径点”知道”列表中的下一个路径点.通过跟随这些路径点链接,你可以引导敌人到它们最终的目的地.敌人从不会从地图上撤退,它们有点像神风特工队的队员一样(kamikaze warriors).
Cocos2D:塔防游戏制作之旅(九)相关推荐
- Cocos2D:塔防游戏制作之旅(十)
最终,draw方法显示这些路径点被放置在哪里,并且绘制出路径点之间的连线,它们仅仅被用作调试.一个成品游戏不应该绘制敌人的路径 - 那对于玩家来说太过容易了! 创建路径点的列表.打开HelloWorl ...
- 塔防游戏制作教程(四)
嗨!大家好,我是小蚂蚁.今天我们继续分享制作一个塔防小游戏的第四节,如何实现炮塔的升级和出售功能. 如何实现炮塔的升级 在炮塔升级时,我们简单地做一些属性的提升以及外表的变化,例如当炮塔升级后,攻击速 ...
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--简介+代码+资源
学校实训项目需要用cocos2dx做一款塔防游戏,因为时间与制图技术.创意原因无法进行原创,碰巧找到了皇家守卫军这款游戏的图片资源,决定用cocos2dx来重现这款经典塔防游戏. 本项目已完成3分之1 ...
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--敌人(二)之BOSS
该章节主要介绍游戏中的BOSS 我主要制作了两个BOSS,分别为第6关的神灯和11关的大猩猩 首先,是BOSS的入场动画,例如第六关墙壁倒塌的效果.我们注意到BaseMap中有个虚函数virtual ...
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--其他
最后一章,讲一下其他零碎的地方. 防御塔方面,还有炮塔的两个高级塔,例如地震塔,机器人塔.地震塔就是周围敌人全部减少血量,机器人塔就是一个士兵类,炮塔升级成士兵类,实现方式和士兵类似. 法师塔方面,死 ...
- [Cocos2d塔防游戏开发]Cocos2dx-3.X完成塔防游戏《王国保卫战》--防御塔(五)之高级箭塔
该章节主要介绍高级箭塔 2级和3级箭塔与初级箭塔只是替换了图片并且将攻击力.射程等提高,其他并无区别 高级箭塔也是高级塔中最好设计的,通过替换一些图片,增加例如发光的眼睛,飞翔的老鹰等动画即可. 不同 ...
- 微信塔防小游戏开发教程,唤境引擎制作塔防游戏分享
今天带来的是塔防游戏制作攻略! 点击这里来下载工程文件, 点击这里可以下载工程中所用的素材哦~ 预览状态时敌人会从四个生成点随机生成,并且会自动寻路绕过黑色墙体走向红色终点.点击黑色墙体可以创建炮塔, ...
- 如何制作一个塔防游戏 Cocos2d x 2 0 4
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本文实践 ...
- (译)如何使用cocos2d制作一个塔防游戏:第三部分
原文链接地址:http://www.iphonegametutorials.com/2011/04/19/cocos2d-game-tutorial-%E2%80%93-how-to-build-a- ...
- (译)如何使用cocos2d制作一个塔防游戏:引子
原文链接地址:http://www.iphonegametutorials.com/2011/04/11/cocos2d-game-tutorial-how-to-build-a-tower-defe ...
最新文章
- 背包模型dp1:01背包,完全背包,多重背包的两大优化的详解
- VIM编辑器(第十章)
- hdu4411 经典费用里建图
- Entity Framework Unit Testing problem and solution(转)
- LINQ to SQL语句(1)之Where(抄的好)
- ARM指令寻址方式之: 内存访问指令寻址
- 数据结构与算法之反转单向链表和双向链表
- WPF特效-实现3D足球效果
- 进程间通信-----管道
- SolidWorks学习日记
- 工业机器人技术试题_《工业机器人技术基础》课程试卷A卷
- zabbix mysql安装配置_Zabbix安装图解教程 | 系统运维
- 基于ATmega16单片机 程控滤波器程序源代码
- linux系统中 为mysql还原数据库_linux中mysql还原数据库命令
- android文件恢复功能,安卓手机误删文件恢复?快速恢复办法
- 恶心的极速输入法windows10 删除
- NFC开发 —————实现NFC手机做门禁卡的方法(二)
- 京东自动评价助手/京东评价
- (node)Warning: Accessing non-existent property ‘xxx‘ of module exports inside circular depen
- matlab 相位滞后,相位滞后.PPT
热门文章
- C# 静态变量及静态函数
- WINCE--修改MAC地址
- PyTorch 模型训练教程(一)-数据
- prepared statement mysql_MySQL之 Statement实现及PreparedStatement实现
- Python图像处理](2)---图像融合、加法运算及图像类型转换、图像缩放、图像旋转、图像翻转与图像平移
- 通过OpenSSL创建自签名证书在Flask实现HTTPS
- 利用格林函数解泊松方程
- jupyter notebook 快捷键
- Qt Chart柱状图实现
- knot DNS 02 Tips - XDP