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

Cocos2D:塔防游戏制作之旅(七),第1张

概述用这3个变量,你可以创建多种不同类型的炮塔,它们可以有着不同的攻击属性,比如长距离重型攻击力,但是慢速攻击的炮塔,或者是渴望快速攻击但是攻击范围近的炮塔. 最后,代码包括了一个draw方法,它在炮塔周围绘制圆圈,用来显示调试目的的炮塔攻击范围. 该到了让玩家添加一些炮塔的时候了! 打开HelloWorldLayer.m文件,做出以下修改: //At the top of the file:#im

用这3个变量,你可以创建多种不同类型的炮塔,它们可以有着不同的攻击属性,比如长距离重型攻击力,但是慢速攻击的炮塔,或者是渴望快速攻击但是攻击范围近的炮塔.

最后,代码包括了一个draw方法,它在炮塔周围绘制圆圈,用来显示调试目的的炮塔攻击范围.

该到了让玩家添加一些炮塔的时候了!

打开HelloWorldLayer.m文件,做出以下修改:

//At the top of the file:#import "Tower.h"//Add the following methods:-(BOol)canBuyTower{    return YES;}- (voID)cctouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{    for( UItouch *touch in touches ) {        CGPoint location = [touch locationInVIEw: [touch vIEw]];        location = [[CCDirector sharedDirector] convertToGL: location];            for(CCSprite * tb in towerBases)            {             if( CGRectContainsPoint([tb boundingBox],location) &&                             [self canBuyTower] && !tb.userData)            {                 //We will spend our gold later.                        Tower * tower = [Tower nodeWithTheGame:self location:tb.position];                        [towers addobject:tower];                         tb.userData = (__brIDge voID *)(tower);            }        }    }}

cctouchesBegan:方法当用户在屏幕任意位置点击时调用.代码然后枚举towerBases数组去检查用户点击的位置是否在炮塔基座中.

但是在炮塔创建前,我们需要检查2件事:

用户的金币足够吗?canBuyTower方法将检查用户是否有足够的金币去购买炮塔.对于现在来说,你的玩家拥有无穷的金币,canBuyTowers总是返回YES. 玩家是否重叠建造炮塔?如果tb.UserData被设置,则表示该基座位置已经有一个炮塔了,所以你不能再其上建造新的炮塔了! 总结

以上是内存溢出为你收集整理的Cocos2D:塔防游戏制作之旅(七)全部内容,希望文章能够帮你解决Cocos2D:塔防游戏制作之旅(七)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1074559.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存