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列 其二:点击求和按钮,出结果 ...
随机推荐
- AC自动机 - 多模式串的匹配 --- HDU 3695 Computer Virus on Planet Pandora
Problem's Link Mean: 有n个模式串和一篇文章,统计有多少模式串在文章中出现(正反统计两次). analyse: 好久没写AC自动机了,回顾一下AC自动机的知识. 本题在构造文章的时 ...
- Oracle工程建设行业解决方案
为何选择Oracle工程建设行业解决方案? Oracle为工程建设企业提供一套全面.开放且集成的业务管理软件.服务器和存储解决方案.这些解决方案经过集成设计,能够实现卓越性能,从而优化业务的方方面面. ...
- 设计模式--简单工厂(Factory)模式
温故而知新,看了以前写的博文<Asp.net读取Excel文件 2>http://www.cnblogs.com/insus/archive/2011/05/05/2037808.html ...
- 解决PL/SQL查询结果乱码的问题
首选查询oracle服务端的编码,然后将客户端NLS_LANG设置成和Oralce服务端一样的编码即可. 1.检查服务器编码: 执行SQL语法: select * from v$nls_paramet ...
- Winform开发框架之通用数据导入导出操作的事务性操作完善
1.通用数据导入导出操作模块回顾 在我的Winfrom开发框架里面,有一个通用的导入模块,它在默默处理这把规范的Excel数据导入到不同的对象表里面,一直用它来快速完成数据导入的工作.很早在随笔< ...
- web api返回格式小结
web api返回格式小结: 1.默认是返回xml格式数据,如果需要返回json格式,需要在Global.asax中加入: GlobalConfiguration.Configuration.Form ...
- C语言中有bool类型吗?
之前一直都没有注意到,最近在用C语言写DSP算法时,偶然间发现我函数中定义的bool类型的变量在VC6.0(我主要用它来检查一下语法错误)中编译居然报错了,说是bool类型没有定义.用了这么久的C和C ...
- [CLR via C#]26. 计算限制的异步操作
一.CLR线程池基础 前面说过,创建和销毁线程是一个比较昂贵的操作,太多的线程也会浪费内存资源.由于操作系统必须调度可运行的线程并执行上下文切换,所以太多的线程还有损于性能.为了改善这个情况,CLR使 ...
- WebApi传参总动员(五)
上回说到涉及多个实体的传参,用常规的方法已经不能解决了.这回我们用终极大招搞定她. WebApi:注意要引用JSON.Net [HttpPost] public string GetData(stri ...
- sql多行转一行,以逗号隔开
--SELECT ff= stuff((select ','+cast(WorkOrderNo as varchar)-- FROM dbo.TB_WorkOrder c -- where tpl.P ...