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列 其二:点击求和按钮,出结果 ...
随机推荐
- 备份和还原SQL Server及压缩Access数据库
功能说明:备份和恢复SQL Server数据库 * 作者: 刘功勋; * 版本:V0.1(C#2.0);时间:2007-1-1 * 当使用SQL Server时,请引用 COM组件中的,SQLDMO. ...
- 记一次纠结Macbook 重装OS X的系统
本文所有图片都是网上截图,不是实操环境.本文不具有教学意义. 起因:Macbook 白苹果了,无限菊花. 我的Macbook 只能装 OS X Mountain Lion 10.8,但是呢 MacBo ...
- Studio for Winforms FlexGrid: 创建分类汇总
C1FlexGrid.Subtotal方法可以增加包含普通(非小计)行的汇总数据的分类汇总行. 分类汇总支持分层聚合.例如,如果你的表格包含销售数据,你可能会通过产品.地区和推销员来小计一下以得出总的 ...
- FreeBSD暂时用9.X系列为宜
今天尝试在FreeBSD10 上编译c代码,发现gcc被换成llvm后,环境配置需要重新学习.
- jsp页面 列表 展示 ajax异步实现
1. 服务端先返回页面基本结构(如message.jsp), <%@ page language="java" contentType="text/html; ch ...
- php学习笔记:自定义函数的调用
PHP内置了超过1000个函数,因此函数使得PHP成为一门非常强大的语言.大多数时候我们使用系统的内置函数就可以满足需求,但是自定义函数通过将一组代码封装起来,使代码进行复用,程序结构与逻辑更加清晰. ...
- redis3.0 集群实战3 - java编程实战
本文主要描述使用jedis进行redis-cluster操作 jedis jedis是redis官方推荐使用的java redis客户端,github地址为,https://github.com/ ...
- NullPointerException at android.widget.AbsListView.obtainView at android.widget.ListView.makeAndAddView
使用ExpandableListView的时候,报如下错.网上搜索发现原来是在CommonNumberQueryAdapter的getGroupView()方法里返回的是null,注意细节哦!!! 1 ...
- [Architecture Pattern] Singleton Locator
[Architecture Pattern] Singleton Locator 目的 组件自己提供Service Locator模式,用来降低组件的耦合度. 情景 在开发系统时,底层的Infrast ...
- EntityFramework4.1开发
常见问题大概为这几个 一.ef4.1 codeFirst 修改表结构 增加字段等 EF code first需要重新生成库导致数据丢失的问题. 二.ef4.1 没有了edmx等复杂的东西 变得简单 干 ...