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. java下载网络中的文件,java下载网络文件解决思路
  2. Object.create()方法
  3. elasticsearch 第二篇(配置篇)
  4. Python字符串基础操作
  5. VTK:BackgroundTexture背景纹理用法实战
  6. Singleton patterns 单件(创建型模式)
  7. windows聚焦壁纸不更新_壁纸推荐说 | 爱上你的壁纸,每天更新的免费壁纸软件dynamic theme...
  8. c语言头文件和源文件_C语言头文件防卫式声明
  9. SpringMVC源码解析(四)——请求处理
  10. 最新安卓手机性价比榜公布:Redmi连夺三冠
  11. c语言学习-使用指针求一个字符串的长度
  12. 如何使用SQL Server配置管理器
  13. 关于vue中next和Tick(nextTick)的一点理解
  14. Mysql中,int(10)和int(11)的区别
  15. Python编程:从入门到实践 11-3
  16. 计算机简历个人优势,简历个人优势怎么写
  17. Groovy学习(二):GDK初探
  18. 如何将自己的网站上传至服务器并通过域名进行访问
  19. JDOM和XPATH薛谷雨
  20. 低学历者已无法生存 程序员尤其明显

热门文章

  1. 10_隐马尔科夫模型HMM2_统计学习方法
  2. Centos7 连接Serial串口记录
  3. SylixOS内存错误排查方法
  4. pagePiling.js - 创建美丽的全屏滚动效果
  5. 主机连接虚拟机 web服务
  6. IOS开发之MVC模式的介绍
  7. Do 32-bit build only with XCode 5.1
  8. Java系列笔记(3) - Java 内存区域和GC机制
  9. 汇编中求补指令NEG的小问题..
  10. 一款强大的cisco模拟配置、拓扑制作工具