上一节,我们把游戏界面已经编译好了,那么这一节,我们要实现我们的游戏方法。

首先我们要添加3个菜单,添加按钮当然也可以。代码如下

//添加石头菜单auto shitouMenu= MenuItemImage::create("shitou.png","shitou.png",CC_CALLBACK_1(SettingScene::shitou, this));shitouMenu->setPosition(Point(300,100));auto menu = Menu::create(shitouMenu, NULL);menu->setPosition(Vec2::ZERO);this->addChild(menu, 1);//添加剪刀菜单auto jiandaoMenu= MenuItemImage::create("jiandao.png","jiandao.png",CC_CALLBACK_1(SettingScene::jiandao, this));jiandaoMenu->setPosition(Point(500,100));auto menu1= Menu::create(jiandaoMenu, NULL);menu1->setPosition(Vec2::ZERO);this->addChild(menu1, 1);//添加布菜单auto buMenu= MenuItemImage::create("bu.png","bu.png",CC_CALLBACK_1(SettingScene::bu, this));buMenu->setPosition(Point(700,100));auto menu2= Menu::create(buMenu, NULL);menu2->setPosition(Vec2::ZERO);this->addChild(menu2, 1);return true;

通过MenuItemImage这个类,我们在Init()中添加了菜单,两张图片分别代表的是点击菜单前后的样子.SetPosition不必多说。

//定义的石头回调函数
void SettingScene::shitou(Ref* pSender)
{ChuquanCount();auto sprite01=Sprite::create("shitou.png");sprite01->setPosition(Point(350,350));this->addChild(sprite01);sprite01->setTag(100);int x=rand()%3+1;switch (x){case 1:{auto spriteComputer1=Sprite::create("shitou.png");spriteComputer1->setPosition(Point(650,350));this->addChild(spriteComputer1);spriteComputer1->setTag(100);if(sprite01->getTag()==spriteComputer1->getTag()){CCLOG("Draw");DrawCount();}CCLOG("shitou");break;}case 2:{auto spriteComputer2=Sprite::create("jiandao.png");spriteComputer2->setPosition(Point(650,350));this->addChild(spriteComputer2);spriteComputer2->setTag(200);if(sprite01->getTag()<spriteComputer2->getTag()){CCLOG("Win");WinCount();}CCLOG("jiandao");break;}case 3:{auto spriteComputer3=Sprite::create("bu.png");spriteComputer3->setPosition(Point(650,350));this->addChild(spriteComputer3);spriteComputer3->setTag(300);if(sprite01->getTag()<spriteComputer3->getTag()){CCLOG("Lose");LoseCount();}CCLOG("bu");break;}default:{break;}}
}
//出拳次数
void SettingScene::ChuquanCount()
{count++;LabelTTFCountScore->setString(String::createWithFormat("%i",count)->getCString());
}
//胜利次数
void SettingScene::WinCount()
{wincount++;LabelTTFWinScore->setString(String::createWithFormat("%i",wincount)->getCString());
}
//失败次数
void SettingScene::LoseCount()
{losecount++;LabelTTFLoseScore->setString(String::createWithFormat("%i",losecount)->getCString());
}
//平局次数
void SettingScene::DrawCount()
{drawcount++;LabelTTFDrawScore->setString(String::createWithFormat("%i",drawcount)->getCString());
}

上边定义了石头的回调函数,以及计算分数方法。通过阅读代码不难理解其意思。要注意一点的是因为用到了随机数,要置随机数种子。就在我们的AppDelegate.cpp中的bool AppDelegate::applicationDidFinishLaunching()方法中,填入srand((int)time(0));在SettingScene中包含一个time.h和stdlib.h头文件,在来一个宏定义#define   (rand()%x)就齐活了,这样一个完整的游戏就制作好了。PS:中间可能有一些没有定义的,我没有截,希望读者多动手动脑。小编也会继续努力,做出更好的作品与读者们分享。

寒風的Cocos2dx之旅之剪刀、石头、布系列专题(2 )相关推荐

  1. 寒風的Cocos2dx之旅之剪刀、石头、布系列专题(1)

    本节小编为读者们讲述如何在cocos2d上做一个剪刀石头布的游戏,游戏画面如下: 首先看到这个画面:我们来分析一下它到底有几个层?有菜单层.显示结果层.显示分数层.显示菜单背景层.宏观角度上看:有3个 ...

  2. Java黑皮书课后题第3章:*3.17(游戏:剪刀、石头、布)编写可以玩流行的剪刀-石头-布游戏的程序

    *3.17(游戏:剪刀.石头.布)编写可以玩流行的剪刀-石头-布游戏的程序 题目 题目概述 运行示例 ***特别注意*** 破题 代码 题目 题目概述 *3.17(游戏:剪刀.石头.布)编写可以玩流行 ...

  3. linux石头剪刀布游戏三次,一个 Shell的剪刀,石头,布的小游戏,喜欢的可以看看

    vim a_猜石头,剪刀,布.sh #!/bin/bash game=(剪刀 石头 布) num=[ R A N D O M c o m p u t e r = [ RANDOM%3 ] comput ...

  4. [寒江孤叶丶的Cocos2d-x之旅_17]Cocos2d-x 3.2版本以上LUA脚本热更新(动态更新)解决方案

    原创文章,欢迎转载,转载请注明:文章来自[寒江孤叶丶的Cocos2d-x之旅系列] 博客地址:http://blog.csdn.net/qq446569365 能够进行热更新,是Lua脚本的最大优势, ...

  5. [寒江孤叶丶的Cocos2d-x之旅_30]Cocos2d-x 3.5 EditBox无法显示字体的原因

    原创文章,欢迎转载,转载请注明:文章来自[寒江孤叶丶的Cocos2d-x之旅系列] 博客地址:http://blog.csdn.net/qq446569365 Editbox是一个非常好使的输入控件, ...

  6. java编程石头剪刀布图片_石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源...

    原标题:石头.剪刀.布!10分钟带你打开深度学习大门,代码已开源 沉沉 发自 宇宙中心 量子位 出品 | 公众号 QbitAI 深度学习技术的不断普及,越来越多的语言可以用来进行深度学习项目的开发,即 ...

  7. 团队-石头,剪刀,布-设计文档

    项目名称:石头,剪刀,布游戏 项目参加人员:王聪.李宇鸿.李佳旭.余兴财.王佳傲.魏来 项目所需环境及工具:android studio2.2 页面设计:开始页面设置两个按钮,一个跳转到人机页面一个跳 ...

  8. Java黑皮书课后题第5章:**5.34(游戏:石头、剪刀、布)编程练习题3.17给出玩石头-剪刀-布游戏的程序。修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止

    5.34(游戏:石头.剪刀.布)编程练习题3.17给出玩石头-剪刀-布游戏的程序.修改这个程序,让用户可以连续玩这个游戏,直到用户或者计算机赢对手两次以上为止 题目 题目概述 编程练习题3.17 破题 ...

  9. java编程石头剪刀布_java 开发的石头,剪刀,布的游戏 demo

    [java]代码库/* * 创建一个类Game,石头,剪刀,布的游戏. */ public class Game { /** * @param args */ String[] s ={"石 ...

最新文章

  1. 什么时候使用临时表?
  2. 使用jmeter测试java程序
  3. .NET 缩略图服务器 ResizingServer
  4. ACCESS数据库连接字符串
  5. Virtualbox虚拟机Linux Guest的Additions安装方法
  6. 基于jquery的从一个页面跳转到另一个页面的指定位置的实现代码
  7. 苹果华人工程师被捕后续,按“商业间谍”指控,本人不认罪
  8. 开发ffmpeg/live555常见问题错误及解决方法
  9. 阶段3 1.Mybatis_09.Mybatis的多表操作_4 完成account一对一操作-建立实体类关系的方式...
  10. Python文件属性、文件摘要
  11. B站视频、音频分开传输
  12. 怎么恢复oracle的包,Oracle的恢复管理器及DBMS_JOB包分析
  13. ADO数据库访问技术
  14. OpenCV——硬币检测与计数的设计实现
  15. 简单操作拥有Win7/XP双系统
  16. POX控制器的分析(二)
  17. 国密:SM2公私钥加签验签
  18. mug网络用语_游戏术语
  19. 文字转语音的配音软件,萝莉等语音资源可以自行编辑声音文本内容
  20. 优化CSP模式 手游也能站着把钱挣了

热门文章

  1. 25个细致微妙的扁平化2.0风格网页设计
  2. html图片重叠怎么实现,css如何实现图片堆叠效果
  3. 美国乔治亚理工学院的计算机专业,美国乔治亚理工学院的最新排名介绍
  4. Mixly21:遥控彩灯
  5. 三朝元老经验(转,推荐)
  6. 2022-2027年中国智能电网建设光通信器件行业市场调研及未来发展趋势预测报告
  7. 谈谈老衲对闭包的理解!!综合了我在网上看的资料,把我的理解跟大家分享
  8. 注定与众不同_没有原因的数据注定会使我们失败
  9. 身份证识别web端调用
  10. nyoj 451 光棍节的快乐