cocos2d-x之加法计算器
bool HelloWorld::init()
{
if ( !Layer::init() )
{
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
buildUI();
addListeners();
return true;
}
void HelloWorld::buildUI(){
aTF=TextFieldTTF::textFieldWithPlaceHolder("Value","Courier",16);
aTF->setPosition(100,300);
addChild(aTF);
auto addLabel=Label::create();
addLabel->setString("+");
addChild(addLabel);
addLabel->setPosition(aTF->getPositionX()+50,aTF->getPositionY());
bTF=TextFieldTTF::textFieldWithPlaceHolder("Value","Courier",16);
bTF->setPosition(addLabel->getPositionX()+50,aTF->getPositionY());
addChild(bTF);
auto equalLabel=Label::create();
equalLabel->setString("=");
addChild(equalLabel);
equalLabel->setPosition(bTF->getPositionX()+50,aTF->getPositionY());
resultLabel=Label::create();
addChild(resultLabel);
resultLabel->setPosition(equalLabel->getPositionX()+50,aTF->getPositionY());
addBtn=Label::create();
addBtn->setString("Add");
addBtn->setSystemFontSize(16);
addChild(addBtn);
addBtn->setPosition(aTF->getPositionX(),aTF->getPositionY()-50);
}
void HelloWorld::addListeners(){
auto director=Director::getInstance();
auto handler=[=](Touch *t,Event *e){
auto target=e->getCurrentTarget();
if (target->getBoundingBox().containsPoint(t->getLocation())) {
if (aTF==target) {
aTF->attachWithIME();
}else if(bTF==target){
bTF->attachWithIME();
}else if (target==addBtn){
int a=__String::create(aTF->getString())->intValue();
int b=__String::create(bTF->getString())->intValue();
resultLabel->setString(StringUtils::format("%d",a+b));
}
}
return false;
};
auto addListenerToTarget=[director,handler](Node *target){
auto l=EventListenerTouchOneByOne::create();
l->onTouchBegan=handler;
director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(l,target);
};
addListenerToTarget(addBtn);
addListenerToTarget(aTF);
addListenerToTarget(bTF);
// auto addListener=EventListenerTouchOneByOne::create();
// addListener->onTouchBegan=handler;
// director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(addListener,addBtn);
//
// auto aTfClickListener=EventListenerTouchOneByOne::create();
// aTfClickListener->onTouchBegan=handler;
// director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(aTfClickListener,aTF);
//
// auto bTfClickListener=EventListenerTouchOneByOne::create();
// bTfClickListener->onTouchBegan=handler;
// director->getEventDispatcher()->addEventListenerWithSceneGraphPriority(bTfClickListener,bTF);
}
cocos2d-x之加法计算器的更多相关文章
- iOS学习——制作一个小型加法计算器
一.项目要求:制作一个加法计算器.在第1个和第2个文本框中输入两个整数,然后点击“计算”按钮,可将计算结果显示在第3个文本框中. 二.开发步骤: 1.搭建UI界面 2.监听按钮的点击事件 3.获取文本 ...
- objective-c 一个链式加法计算器实现
一个链式加法计算器实现思路 1.使用时的效果 Calculate * manger=[Calculate new]; int result=manger.add(123).add(123).sub(1 ...
- Qt简单项目--加法计算器(详细代码注释)
Qt的简单案例--加法计算器(详细代码注释) 一.项目结构 二.项目代码 widget.h #ifndef WIDGET_H #define WIDGET_H //预编译指令, 为了避免头文件被重复包 ...
- Java项目案例之---加法计算器(转发和重定向)
加法计算器(转发和重定向) 运行显示: 转发 重定向 代码: index.jsp <%-- Created by IntelliJ IDEA. User: Administrator Date: ...
- AJ学IOS(01) UI之Hello World与加法计算器
不多说,AJ分享,必须精品 这两个一个是HelloWorld(左边) 另一个是 加法计算器(右边)的截图. 先运行第一个 程序看看效果 1.打开Xcode(没有哦mac系统的没有xcode的帮你们默哀 ...
- 单片机课程设计-四位加法计算器设计参考程序(c语言)
#include<reg52.h> typedef unsigned char uint8; typedef unsigned int uint16; sbit rw=P2^; sbit ...
- 单片机课程设计——课程设计之四位加法计算器(2)(C代码)
#include<reg52.h> typedef unsigned char uint8; typedef unsigned int uint16; sbit rw=P2^5; sbit ...
- iOS UI基础-1.0加法计算器
1.打开Xcode,新建一个项目 2.Single View Application是最适合初学者的模板 3.填写该应用相关信息 4.搭建UI界面 项目创建完毕后,自动帮我们做了很多配置,也自动生成了 ...
- Java-简单的计算器(只能进行加法运算)
有两个关键的地方: 其一: JTextField field=new JTextField(10); 这是一个文本输入框,里面的参数10的意思是,这个输入框的长度为10列 其二:点击求和按钮,出结果 ...
随机推荐
- Linux平台Qt creator报错:Circular all <- first dependency dropped
在Linux下安装好Qt 5.0之后,使用Qt Creator创建了一个基于QMainWindow的框架程序.原本应该可以顺利的完成编译工作,因为自带的模板工程没有经过任何修改.可是在编译整个工程的时 ...
- 移动前端页面与Chrome的远程真机调试
一年不见,博客园都长草啦...... 前几日刚入手新手机小米5,系统真心流畅呀.为啥要买小米5呢,因为要提高生产力呀,好好玩移动前端开发呀哈哈哈 那么问题来了,要怎么调试手机上的前端页面呢? 很久很久 ...
- ADO.NET常用对象的基础概念强化
1.Command对象 1.1 ExcuteNonquery---执行非查询语句,返回受影响的行数,在新增,删除,修改的时候,如果我们要返回结果集那么就不能使用它了: 1.2 ExcuteScalar ...
- 004_URL 路由 - 定制路由系统 & 使用区域
定制路由系统 路由系统是灵活可配置的,当然还可以通过下面这两种方式定制路由系统,来满足其他需求. 1. 通过创建自定义的RouteBase实现: 2. 通过创建自定义路由处理程序实现. 创建自定义 ...
- sql server 2008还原数据库,出现缺少介质问题
我在sql server2008中备份数据库时,新增了一个自己建立的数据库,备份成功后,在去别的电脑总是还原数据 还原不了,最后在网上找到了解决方案
- 做java工作整整1年了,看到了大牛的奋斗历程,我感觉自己又有目标了
2014年6月,刚刚踏上社会那会儿,我记得我第一次面试啥都不知道,穿的也不修边幅去应聘一家4s销售,面试官看到我,我明细感觉到了对方厌恶的神色,这是我上社会的第一课,找工作不管是什么工作,衣着得体,是 ...
- cas与NGINX整合(转)
CAS (5) -- Nginx代理模式下浏览器访问CAS服务器配置详解 标签: 服务器 2015-12-18 15:04 1633人阅读 评论(0) 收藏 举报 分类: 网络(61) 目录( ...
- hadoop2.2.0伪分布式搭建2--安装JDK
2.1上传FileZilla 上传 https://filezilla-project.org/ 2.2解压jdk #创建文件夹 mkdir /usr/java #解压 tar -zxvf jdk-7 ...
- 利用Jquery使用HTML5的FormData属性实现对文件的上传
1.利用Jquery使用HTML5的FormData属性实现对文件的上传 在HTML5以前我们如果需要实现文件上传服务器等功能的时候,有时候我们不得不依赖于FLASH去实现,而在HTML5到来之后,我 ...
- YUIDoc example代码高亮错误、生成API文档目录不按源文件注释顺序
1.如果发现yuidoc命令用不了,那就重装nodejs吧 昨天不知道是清扫电脑的原因,yuidoc命令用不了(命令不存在),也没有找到好的解决方法,怒重装YUIDoc也不行.最后想了想,怒重装了no ...