Cocos2d-x 3.2 大富翁游戏项目开发-第十六部分 相连地块缴纳过路费,cocos2d-x项目开发

  次阅读 作者:智能小宝 来源:互联网 2015-09-28 14:40 我要评论(0)

Cocos2d-x 3.2 大富翁游戏项目开发-第十六部分 相连地块缴纳过路费,cocos2d-x项目开发

当走到其他角色的地块时,根据当前地块是否连片,连片的话统一计算需要缴纳的过路费,连片的计算方式,是各个地块过路费总和。

首先获取当前行走角色路过的地块的x y坐标(Land layer层的坐标),然后获取角色的坐标(GL的坐标,需要转换成map中的坐标),

然后对这2个坐标值进行横向和纵向比较。

如图A位置:以寻找左边地块的方法为例分析

1、 把角色A坐标转换成map中的坐标

2、 把当前0号地块的sprite对象放入容器中,以便后面播放淡入淡出的动画

3、 0号地块x坐标同角色A的map坐标的x值是否相等,如果相等表示当前角色的上边或下边有对方的地块。

4、 取得0号地块左边相邻1号的坐标

5、 取得1号地块的GID值

6、 判断1号地块的GID值

7、 根据1号地块的GID等级,把过路费相加

8、 把1号地块sprite放入容器中

9、 继续查找左边相邻2号地块,处理方法同1号地块

10、如果左边没有地块了,退出寻找左边地块的循环,继续寻找右边地块

void GameBaseScene::payTolls(int payTag,float x,float y ,int playerTag)调用到displayArea方法

先说明一下参数

float x:表示在land Layer层中地块的横坐标值

float y:表示在land Layer层中地块的纵坐标值

RicherPlayer* player:当前行走的角色

int building_1_tiledID:路过的地块1等级

int building_2_tiledID:路过的地块2等级

int building_3_tiledID:路过的地块3等级

返回值表示除了当前地块的其他连片地块的过路费总和

int GameBaseScene::displayArea(float x,float y,RicherPlayer* player,int building_1_tiledID,int building_2_tiledID,int building_3_tiledID)

{

int sumMoney =0;//过路费总和初始值

float retX = Util::GL2map(player->getPosition(),_map).x; //把角色坐标转换成map中的坐标

if(x == retX) //比较map坐标的x值是否相等,如果相等表示当前角色的上边或下边有对方的地块。

{

float leftX= x - 1; //当前地块相邻左边的坐标

float rightX = x + 1; //当前地块相邻右边的坐标

int leftGID = landLayer->getTileGIDAt(ccp(leftX,y));//取得相邻左边地块的GID值

int rightGID = landLayer->getTileGIDAt(ccp(rightX,y));//取得相邻右边地块的GID值

displayVector.pushBack(landLayer->getTileAt(ccp(x,y))); //把当前地块的sprite对象放入容器中,以便后面播放淡入淡出的动画

while(leftGID != 0 && (leftGID == building_1_tiledID || leftGID == building_2_tiledID || leftGID == building_3_tiledID))//判断相邻左边地块的GID

{

if(leftGID == building_1_tiledID)//如果相邻左边地块的GID是等级1的地块,把过路费相加

{

sumMoney += LAND_BLANK_MONEY;

}

if(leftGID == building_2_tiledID)//如果相邻左边地块的GID是等级2的地块,把过路费相加

{

sumMoney += LAND_LEVEL_1_MONEY;

}

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...