bool HelloWorld::init()

{

if ( !Layer::init() )

{

return false;

}

visibleSize = Director::getInstance()->getVisibleSize();

Vec2 origin = Director::getInstance()->getVisibleOrigin();

srand(time(NULL));//随机种子

theRandomNum=rand()%100;//0~100之间

log("the randnum is %d",theRandomNum);

buildUI();

addListeners();

return true;

}

void HelloWorld::buildUI(){

auto label=Label::create();

label->setString("Please input a number between 0~100");

addChild(label);

label->setPosition(visibleSize.width/2,visibleSize.height-label->getContentSize().height/2-20);

tf=TextFieldTTF::textFieldWithPlaceHolder("Input number here","Courier",16);

tf->setPosition(visibleSize.width/2,label->getPositionY()-50);

addChild(tf);

submitBtn=Label::create();

submitBtn->setPosition(visibleSize.width/2,tf->getPositionY()-50);

submitBtn->setString("Submit");

addChild(submitBtn);

messageLabel=Label::create();

messageLabel->setPosition(visibleSize.width/2,submitBtn->getPositionY()-50);

addChild(messageLabel);

}

void HelloWorld::addListeners(){

auto director=Director::getInstance();

auto handle=[this](Touch* t,Event* e){

auto target=e->getCurrentTarget();

auto point=t->getLocation();

if (target->getBoundingBox().containsPoint(point)) {

if (target==tf) {

tf->attachWithIME();

}else if (target==submitBtn){

tf->detachWithIME();

int inputValue=__String::create(tf->getString())->intValue();

if (inputValue>theRandomNum) {

messageLabel->setString("input value is bigger");

}else if (inputValue<theRandomNum){

messageLabel->setString("input value is smaller");

}else{

messageLabel->setString("you get it");

}

}

}else{

tf->detachWithIME();

}

//        if (e->getCurrentTarget()==tf) {

//            tf->attachWithIME();

//        }else if (e->getCurrentTarget()==submitBtn){

//

//        }else{

//            tf->detachWithIME();

//        }

return false;

};

auto l=EventListenerTouchOneByOne::create();

l->onTouchBegan=handle;

director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(l,tf);

auto submitBtnClickListener=EventListenerTouchOneByOne::create();

submitBtnClickListener->onTouchBegan=handle;

director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(submitBtnClickListener,submitBtn);

}

转载于:https://www.cnblogs.com/daochong/p/5261187.html

cocos2d-x之猜数字游戏相关推荐

  1. C语言经典小游戏---猜数字游戏 (包含C语言中如何实现随机数的生成)

    题目描述:输入1-100之间的数字,进行猜数字游戏,猜大猜小有提示,直至才对为止,游戏可以重复游玩. 算法思路: 1.用void函数分别写出菜单程序与游戏进程程序. 2.用switch-case-de ...

  2. 例题3-4 猜数字游戏的提示(Master-Mind Hints, UVa 340)

    实现一个经典"猜数字"游戏.给定答案序列和用户猜的序列,统计有多少数字位置正确 (A),有多少数字在两个序列都出现过但位置不对(B). 输入包含多组数据.每组输入第一行为序列长度n ...

  3. c语言猜数字游戏用while,【C语言基础】有趣的猜数字游戏。(while循环,if语句,switch语句)...

    要求:猜数字游戏的实现.代码如下:#include #include #include void menu() { printf("***************************** ...

  4. python猜年龄代码_python入门教程NO.7用python来写一个猜数字游戏

    python入门教程 本文涉及的python基础语法为while循环 #python#3中while语句常常被用于循环执行某个程序,任何非0和非空null的值,都会被条件判断为True while 条 ...

  5. Go-实现猜数字游戏代码

    实现猜数字游戏代码 1 package main 2 3 import ( 4 "fmt" 5 "math/rand" 6 "time" 7 ...

  6. python猜数字游戏简单-python猜数字游戏快速求解解决方案

    python猜数字游戏快速求解解决方案.使用方法: 1. 保存代码为guessall.py 2. 执行python guessall.py > result.txt 3. 打开result.tx ...

  7. python游戏最简单代码-如何利用Python开发一个简单的猜数字游戏

    前言 本文介绍如何使用Python制作一个简单的猜数字游戏. 游戏规则 玩家将猜测一个数字.如果猜测是正确的,玩家赢.如果不正确,程序会提示玩家所猜的数字与实际数字相比是"大(high)&q ...

  8. python写一个游戏多少代码-Python项目实战之猜数字游戏(含实现代码)

    猜数字游戏,旨在提高初学者对 Python 变量类型以及循环结构的使用. 此游戏的游戏规则如下:程序随机内置一个位于一定范围内的数字作为猜测的结果,由用户猜测此数字.用户每猜测一次,由系统提示猜测结果 ...

  9. java猜数字游戏应用程序_猜数字游戏的Java小程序

    /* 猜数字游戏: 1,产生随机数. 2,获取键盘录入. 3,将录入数据变成数字,和随机数比较. 给出提示信息. 4,重复这个过程,如果猜中,程序就结束. 注意:对于输入1~100以外的数字,,以及非 ...

  10. 猜数字游戏python程序gui_python GUI 猜数字游戏

    # -*- coding:utf-8 -*- import easygui,random status = easygui.buttonbox("这是一个猜数字游戏,点击开始进行游戏,点击退 ...

最新文章

  1. ViewPager多页面滑动切换以及动画效果
  2. varchar2改为clob带来的问题
  3. session 重写进入redis测试
  4. 云南大学网络课程作业计算机,云南大学842计算机程序设计考研复习经验
  5. Leaflet笔记-把leaflet-tilelayer-wmts移植到vue cli中(含思路)
  6. OpenJudge NOI 1.8 17:最好的草
  7. 部分格式文件解释以及万能文件查看器下载
  8. Kracker路由器破解工具
  9. 离散时间傅里叶变换(DTFT)与离散傅里叶级数(DFS)
  10. 达内CEO受邀出席搜狐“2011职业教育高峰论坛”
  11. 帧动画和骨骼动画 本质的理解
  12. 在iOS开发中如何高效使用静态库
  13. scp cp
  14. 通信教程 | 概述并行与串行通信的区别
  15. 每日一学:Python 将时间戳转换为指定格式日期
  16. iSCSI #2 issue 记录
  17. C++学习——第一节课
  18. BLE 发射功率 发射功率概念介绍
  19. linux如何用命令寻找环境变量?
  20. 云端软件平台与虚拟系统大比拼

热门文章

  1. QWT错误static struct QMetaObject const QwtPlot
  2. Can't create handler inside thread that has not called Looper.prepare()
  3. Python基础进阶之路(三)之列表
  4. 微信小程序-配置请求合法域名的问题以及豆瓣api问题
  5. PHPer 面试指南-扩展阅读资源整理
  6. PHP 长连接,奏是这么简单
  7. Web.xml详解(转)
  8. [文摘20110527] 小故事 : 大有 和 天成 都是一辈子
  9. 反序列化时恢复transient字段
  10. 1月2日金象山滑雪(图片)