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列 其二:点击求和按钮,出结果 ...
随机推荐
- WatiN框架学习二——对弹窗的处理
以IE为例,WatiN处理弹出窗口: IE ie = new IE("string"); //打开指定web页 ie.Button(Find.ById("string&q ...
- 使用openssl生成RSA公私密钥
在windows 环境下 1.进入cmd命令窗口 切换到openssl程序目录下 2.输入openssl.exe,进入openssl命令模式下 3.生成私钥输入“genrsa -out app_pri ...
- C#语言各种集合介绍
集合,表示可以通过遍历每个元素来访问的一组对象(特别是可使用foreach循环访问)一个集合包括多个元素,即有一个集合类对象和N个元素对象 因为任何集合类都实现了IEnumerable接口,所以任何集 ...
- BI之SSAS完整实战教程5 -- 详解多维数据集结构
之前简单介绍过多维数据集(Cube)的结构. 原来计划将Cube结构这部分内容打散,在实验中穿插讲解, 考虑到结构之间不同的部分都有联系,如果打散了将反而不好理解,还是直接一次性全部讲完. 本篇我们将 ...
- LeetCode131:Palindrome Partitioning
题目: Given a string s, partition s such that every substring of the partition is a palindrome. Return ...
- php页面输出时,js设置input框的选中值
/* 设置表单的值 */ function setValue(name, value) { var first = name.substr(0, 1), input, i = 0, val; if ( ...
- linux下导入、导出mysql数据库命令 下载文件到本地
一.下载到本地 yum install lrzsz sz filename 下载 rz filename 上传 linux下导入.导出mysql数据库命令 一.导出数据库用mysqldump命 ...
- PHP学习笔记:使用session来存储用户的登录信息
session可以用来存储多种类型的数据,因此具有很多的用途,常用来存储用户的登录信息,购物车数据,或者一些临时使用的暂存数据等. 用户在登录成功以后,通常可以将用户的信息存储在session中,一般 ...
- C# Sqlite 序列
sqlite 不能直接创建自定义函数,不能像 sql server中那样方便创建并使用.不过我们照样可以创建它,创建成功后,我们照样可以随心所欲(比如批量更新等) 序列是一个数据库中很常用的操作,在其 ...
- 我为什么要做富文本编辑器【wangEditor5个月总结】
请访问wangEditor官网:www.wangEditor.com ----------------------------------------------------------------- ...