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之加法计算器的更多相关文章

  1. iOS学习——制作一个小型加法计算器

    一.项目要求:制作一个加法计算器.在第1个和第2个文本框中输入两个整数,然后点击“计算”按钮,可将计算结果显示在第3个文本框中. 二.开发步骤: 1.搭建UI界面 2.监听按钮的点击事件 3.获取文本 ...

  2. objective-c 一个链式加法计算器实现

    一个链式加法计算器实现思路 1.使用时的效果 Calculate * manger=[Calculate new]; int result=manger.add(123).add(123).sub(1 ...

  3. Qt简单项目--加法计算器(详细代码注释)

    Qt的简单案例--加法计算器(详细代码注释) 一.项目结构 二.项目代码 widget.h #ifndef WIDGET_H #define WIDGET_H //预编译指令, 为了避免头文件被重复包 ...

  4. Java项目案例之---加法计算器(转发和重定向)

    加法计算器(转发和重定向) 运行显示: 转发 重定向 代码: index.jsp <%-- Created by IntelliJ IDEA. User: Administrator Date: ...

  5. AJ学IOS(01) UI之Hello World与加法计算器

    不多说,AJ分享,必须精品 这两个一个是HelloWorld(左边) 另一个是 加法计算器(右边)的截图. 先运行第一个 程序看看效果 1.打开Xcode(没有哦mac系统的没有xcode的帮你们默哀 ...

  6. 单片机课程设计-四位加法计算器设计参考程序(c语言)

    #include<reg52.h> typedef unsigned char uint8; typedef unsigned int uint16; sbit rw=P2^; sbit ...

  7. 单片机课程设计——课程设计之四位加法计算器(2)(C代码)

    #include<reg52.h> typedef unsigned char uint8; typedef unsigned int uint16; sbit rw=P2^5; sbit ...

  8. iOS UI基础-1.0加法计算器

    1.打开Xcode,新建一个项目 2.Single View Application是最适合初学者的模板 3.填写该应用相关信息 4.搭建UI界面 项目创建完毕后,自动帮我们做了很多配置,也自动生成了 ...

  9. Java-简单的计算器(只能进行加法运算)

    有两个关键的地方: 其一: JTextField field=new JTextField(10); 这是一个文本输入框,里面的参数10的意思是,这个输入框的长度为10列 其二:点击求和按钮,出结果 ...

随机推荐

  1. H5案例学习笔记

    ★基础篇     增加主体结构元素    

  2. js获取浏览器当前窗口的高度长度

    js获取浏览器可见区域(不包括标题栏.地址栏.收藏夹栏状态栏等额外区域,仅为页面呈现区域)的高度和宽度宽度:document.documentElement.clientWidth高度:documen ...

  3. Azure开发者任务之四:在Azure SDK 1.3中挂载调试器的错误

    我安装了Windows Azure SDK的1.3版本.我试着创建了一个Azure的“Hello World”应用程序. 我按了“F5”,然后我得到了下面这个错误: 我尝试了“Ctrl+F5”:不使用 ...

  4. WPF画图简便技巧

    下面这个就是:起点在(0,0)开始的正方形.(用绿色填充).此方法比一条一条的写方便多了! <Path Fill="LawnGreen" Data="M 0 0 L ...

  5. 在一个XAML中点击按钮,界面跳转到另一个XAML界面方法

    private void ButtonGo_camerapage(object sender, RoutedEventArgs e) { this.Content = new cameraPage() ...

  6. Android小项目合集(经典教程)包含十五个Android开发应用实例

    http://www.cnblogs.com/aimeng/archive/2012/03/28/2422435.html

  7. centos 7安装mysql报错-bash: ./scripts/mysql_install_db: /usr/bin/perl: bad interpreter: No such file or directory

    [root@localhost mysql]# ./scripts/mysql_install_db  --user=mysql -bash: ./scripts/mysql_install_db: ...

  8. SharpGL学习笔记(十三) 光源例子:环绕二次曲面球体的光源

    这是根据徐明亮<OpenGL游戏编程>书上光灯一节的一个例子改编的. 从这个例子可以学习到二次曲面的参数设置,程序中提供了两个画球的函数,一个是用三角形画出来的,一个是二次曲面构成的. 你 ...

  9. React入门--------JSX

    React学习网站 React官方英文网站:http://reactjs.cn/react/docs/top-level-api.html React官方中文网站:http://www.css88.c ...

  10. C语言预处理命令之条件编译

    在C语言中,预处理指令是以#号开头的代码行.#号必须是该行除了任何空白字符外的第一个字符.#后是指令关键字,在关键字和#号之间允许存在任意个数的空白字符.整行语句构成了一条预处理指令,该指令将在编译器 ...