Cocos2D:塔防游戏制作之旅(十五)
来源:互联网 发布:手机淘宝邮箱注册链接 编辑:程序博客网 时间:2024/05/16 17:27
Yes,貌似添加了好多的代码啊 ;] ,在你添加更多代码时,你可能注意到一些Xcode中的一些警告.首先你先忽略这些警告,我们先添加少量最终缺失的部分,然后再来解释上面代码做了什么!
在Enemy.m中修改如下:
// Add the following at the beginning of initWithTheGame: (within the "if" condition)attackedBy = [[NSMutableArray alloc] initWithCapacity:5];// Replace the contents of getRemoved method with the following:-(void)getRemoved{ for(Tower * attacker in attackedBy) { [attacker targetKilled]; } [self.parent removeChild:self cleanup:YES]; [theGame.enemies removeObject:self]; //Notify the game that we killed an enemy so we can check if we can send another wave [theGame enemyGotKilled];}// Add the following methods-(void)getAttacked:(Tower *)attacker{ [attackedBy addObject:attacker];}-(void)gotLostSight:(Tower *)attacker{ [attackedBy removeObject:attacker];}-(void)getDamaged:(int)damage{ currentHp -=damage; if(currentHp <=0) { [self getRemoved]; }}
代码中最重要的部分是Tower中的update方法.炮塔将定时检查是否敌人进入了攻击范围,如果是,我们的炮塔将旋转然后开始向敌人开火.
一旦一个敌人被标记为被攻击,一个方法将被调度执行用之前初始的攻击频率去发射子弹.轮流的,每个敌人保持攻击自身炮塔的一个列表,所以当该敌人被摧毁时那些炮塔可以得到信号去停止攻击.
0 0
- Cocos2D:塔防游戏制作之旅(十五)
- Cocos2D:塔防游戏制作之旅(一)
- Cocos2D:塔防游戏制作之旅(二)
- Cocos2D:塔防游戏制作之旅(三)
- Cocos2D:塔防游戏制作之旅(四)
- Cocos2D:塔防游戏制作之旅(五)
- Cocos2D:塔防游戏制作之旅(六)
- Cocos2D:塔防游戏制作之旅(七)
- Cocos2D:塔防游戏制作之旅(八)
- Cocos2D:塔防游戏制作之旅(九)
- Cocos2D:塔防游戏制作之旅(十)
- Cocos2D:塔防游戏制作之旅(十一)
- Cocos2D:塔防游戏制作之旅(十二)
- Cocos2D:塔防游戏制作之旅(十三)
- Cocos2D:塔防游戏制作之旅(十四)
- Cocos2D:塔防游戏制作之旅(十六)
- Cocos2D:塔防游戏制作之旅(十七)
- Cocos2D:塔防游戏制作之旅(十八)
- Ubuntu14.04安装vncserver
- javaMail 发送邮件
- 数据库_MySQL_导入.sql文件与常用指令
- Linux文件系统(六)---三大缓冲区之 目录缓冲区dcache
- 《iOS7 by Tutorials》系列:iOS7的设计精髓(上)
- Cocos2D:塔防游戏制作之旅(十五)
- form 转json最佳示例
- Linux下vsftpd的简单应用(二)
- jquery 时间格式转换
- QT5 调用 MATLAB2013 引擎 win7
- Linux文件系统(七)---系统调用之open操作(二) 之 get_unused_fd
- svn删除文件后报错 ”xx“is missing from working copy
- dpkg的用法
- Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei)