Cocos2d-x 3.2 大富翁游戏项目开发-第十八部分 问号随机事件,cocos2d-x项目开发

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

Cocos2d-x 3.2 大富翁游戏项目开发-第十八部分 问号随机事件,cocos2d-x项目开发

角色走完要求的步数后,先查看停留位置是否有问号,如果有,先处理问号事件,处理完毕后,再处理相邻周边上下左右地块问题,购买、升级或缴纳过路费。

问号随机事件主要是如下事件:

政府鼓励投资,返还税金10000

政府严查账务,补交税金20000

喝到假酒,上吐下泻,体力耗光

吃了大补丸,体力恢复

投资获利,分红20000

投资失败,亏损30000

由于还没有进行国际化处理,在用中文的时候,会出现乱码,我们暂时先都用英文处理一下,后期统一做国际化处理

1、与之对应的变量定义在ConstUtil.h文件中:

const int TAX_REBATES_TAG = 1; //政府鼓励投资,返还税金10000

const int PAY_TAXES_TAG = 2; //政府严查账务,补交税金20000

const int LOSS_STRENGTH_TAG =3;//喝到假酒,上吐下泻,体力耗光

const int PHYSICAL_RECOVERY_TAG =4;//吃了大补丸,体力恢复

const int INVESTMENT_DIVIDENDS_TAG = 5 ;//投资获利,分红20000

const int INVESTMENT_LOSS_TAG = 6; //投资失败,亏损30000

#defineTAX_REBATES"The government encourages investment, tax rebates 10000"

#definePAY_TAXES "Government scrutiny of accounts, pay taxes 20000"

#defineLOSS_STRENGTH "To drink alcohol, diarrhea, loss of light strength"

#definePHYSICAL_RECOVERY "Eat cake, physical recovery"

#defineINVESTMENT_DIVIDENDS "Investment profits, dividends 20000"

#defineINVESTMENT_LOSS "Investment failure, loss 30000"

2、在GameBaseScene.cpp初始化随机事件Map容器

void GameBaseScene::initRandomAskEvent()

{

randomAskEventMap.insert(TAX_REBATES_TAG,__String::create(TAX_REBATES));

randomAskEventMap.insert(PAY_TAXES_TAG,__String::create(PAY_TAXES));

randomAskEventMap.insert(LOSS_STRENGTH_TAG,__String::create(LOSS_STRENGTH));

randomAskEventMap.insert(PHYSICAL_RECOVERY_TAG,__String::create(PHYSICAL_RECOVERY));

randomAskEventMap.insert(INVESTMENT_DIVIDENDS_TAG,__String::create(INVESTMENT_DIVIDENDS));

randomAskEventMap.insert(INVESTMENT_LOSS_TAG,__String::create(INVESTMENT_LOSS));

}

3、当角色走完步数后,会调用到RicherGameController的handlePropEvent方法。

在该方法中我们判断角色停留的位置是否有问号,如果有,就发送一个问号信息MSG_RANDOM_ASK_EVENT,同时方法返回。如果没有问号,就调用aroundLandEvent()方法,这个方法是处理角色周边相邻上下左右地块信息的方法,我们把以前的代码抽取成了该方法,便于后期重复使用

void RicherGameController::handlePropEvent()

{

oneRoundDone =false;

float playerEnd_X = _colVector[stepsCount]*32;

float playerEnd_Y = _rowVector[stepsCount]*32 + 32;

Point pointInMap = Util::GL2map(Vec2(playerEnd_X,playerEnd_Y), GameBaseScene::_map);

int endId = GameBaseScene::wayLayer->getTileGIDAt(pointInMap);

if(endId == GameBaseScene::randomEvent_tiledID)

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

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

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

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

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

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

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

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

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

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

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

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

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

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