频道栏目
首页 > 程序开发 > 移动开发 > 其他 > 正文
cocos2d-x-3.0 alpha1与C++11练习九:飞镖忍者,添加发射飞镖数目文本及得分文本
2014-01-25 08:36:31           
收藏   我要投稿
1,创建UI

使用cocostudio,创建UI,分别添加一个LabelAtlas和一个LabelBMFont。导出项目,存为

 

cocos2d3sampleui_playScene.ExportJson

 

并与相关资源文件一同添加进xcode的Resource目录下。这里有一点可能需要注意,但是在添加资源时,如果代码中未使用目录,则在添加时,则选择“Create folder reference for any added folders”,这样将在项目中创建蓝色的组,并非真正的子目录。

 

 

 

2,编码实现

在HelloWorldScene.h中添加相关变量声明,

 

 

//发射的数目

int numShootProjectile;

 

UILabelAtlas *shootNumLabelAtlas;

UILabelBMFont *scoreLabelbMFont;

  

 

变量名称与在UIEditor中设置的控件名称保持一致,以便于编码。

 

在HelloWorldScene.cpp中init中,return之前,添加如下代码:

 

UILayer *layer = UILayer::create();

auto widget = dynamic_cast<UIWidget *>(cocostudio::GUIReader::shareReader()->widgetFromJsonFile("cocos2d3sampleui_playScene.ExportJson"));

widget->setSize(Size(480, 320));

layer->addWidget(widget);

this->addChild(layer);

 

this->shootNumLabelAtlas = dynamic_cast<UILabelAtlas *>(widget->getChildByName("shootNumLabelAtlas"));

this->shootNumLabelAtlas->setStringValue("0");

this->shootNumLabelAtlas->setPosition(Point(50, winSize.height-50));

this->scoreLabelbMFont = dynamic_cast<UILabelBMFont *>(widget->getChildByName("scoreLabelbMFont"));

this->scoreLabelbMFont->setPosition(Point(winSize.width-100, winSize.height-50));

this->scoreLabelbMFont->setText("Score:0");

numShootProjectile=0;

  

 

两个控件被加载以后,在垂直方向上自动放在了居中的位置,不知为何?分别取名称取其控件,保存引用至变量中。需要需要指出,在c++中声明的变量,一定要初始化,例如:

 

 

numShootProjectile=0

  

 

如果不作初始化,变量可能是任意一个数值。

 

在onTouchesEnded中,当发射飞镖之后,数目加1,并且设置文本框数字。代码如下:

 

 

numShootProjectile++;

char numShootStr[20];

sprintf(numShootStr,"%d",numShootProjectile);

this->shootNumLabelAtlas->setStringValue(numShootStr);

  

 

在c++中,将string转换为int,可以使用std::atoi,但是反过来,itoa却并不是所有编译器均支持并提供的。

 

This function(itoa) is not defined in ANSI-C and is not part of C++, but is supported by some compilers.

 

在update中,添加更新得分的代码:

 

     char scoreStr[20];

        sprintf(scoreStr,"Score:%d",targetDestroyed);

        this->scoreLabelbMFont->setText(scoreStr);

点击复制链接 与好友分享!回本站首页
上一篇:cocos2d-android——时间调度
下一篇:八 手游开发神器 cocos2d-x editor 之动画和帧动画
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站