Cocos2d-x
发布时间:2022-05-02 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cocos2dx常用功能-Cocos2dx开发常用控件详解(共11部分),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Cocos2dx游戏开发 第三阶段:常用功能1
1---Cocos2dx常用功能-Cocos2dx开发常用控件详解
//是否显示左下角的帧频数据
director->setDisplayStats(
true
);
// set FPs. the default value is 1.0/60 if you don't call this
//显示每一帧的时间间隔
director->setAnimationInterval(1.0 / 10);
2.Cocos2d-x 之Sprite 视频很重点
Sprite
*s =
Sprite
::
create
(
"img.jpg"
);
s->
setAnchorPoint
(
Point
(
0
,
0
));
s->
setPosition
(
100
,216)">200
));
3.Cocos2d-x之Director、Scene、Layer
Scene
*scene =
Scene
::
create
();
Layer
*layer =
Layer
::
create
();
scene->
addChild
(layer);
"HelloWorld.png"
);
s->
0
));
4.Cocos2d-x之Log
跨平台日志输出API
log(
"Hello Cocos2dx %d"
,216)">200
);
attach
@H_531_
197@/ə'tætʃ/
@H_
197_199@附加;附属 detach
@H_531_
197@/dɪ'tætʃ/
vt. 分离;派遣
6.Cocos2d-x之LabelTTF:
Size
size =
Director
::
geTinstance
()->
getVisibleSize
();
LabelTTF
*label =
LabelTTF
::
create
();
label->
set@R_197_10495@ng
(
"Hello jikexueyuan"
);
label->
setFontSize
(
36
);
label->
setPosition
(size.
width
/
2
,size.
height
/
2
);
7.Cocos2d-x之TextFieldTTF
Size
visibleSize =
getVisibleSize
();
TextFieldTTF
*tf =
TextFieldTTF
::
textFieldWithPlaceHolder
(
在这里输入
宋体
20
);
tf->
setPosition
(visibleSize.
:14px; font-family:Menlo; color:rgb(79,visibleSize.
2
);
addChild
(tf);
auto
listener =
EventListenerTouchOneByOne
::
create
();
listener->
onTouchBegan
= [tf](
Touch
*t,
Event
*event){
if
(tf->
getBoundingBox
().
containsPoint
(t->
getLOCATIOn
())) {
tf->
attachWithIME
();
}
else
{
tf->
detachWithIME
();
}
return
false
;
};
Director::geTinstance()->getEventDispatcher()->addEventListenerWithSceneGraphpriority(listener,tf);
8.Cocos2d-x之创建自定义类
#include
<iostream>
@H_905_
450@
#include
"cocos2d.h"
@H_905_
450@
using
namespace
cocos2d;
class
Ball:
public
Sprite {
public
:
virtual
bool
init();
CREATE_FUNC(Ball);
// static Ball* create(){
//
// Ball * b = new Ball();
// b->init();
// b->autorelease();
// return b;
// }
};
initWithFile(
"ball.png"
);
true
;
}
auto
b = Ball::create()
;
9.Cocos2d-x之内存管理机制
log("count:%d",obj->getReferenceCount());
10.Cocos2d-x之Menu
闭包是C++11的特性
auto
@H_157_12
@menu = Menu::create(MenuItemImage::create(
"normal.png"
,27)">"SELEcted.png"
,[](Object* obj){
log("menu item touched@H_874_671@”);//松开手后执行
11.Cocos2d-x之TableView
有一个列表项它曾经呈现出来了,在往上面拖动的时候 处于不呈现的状态(拖出去界面)这个列表项会被回收
放到TableView的一个队列里面,如果有新的列表项需要呈现出来,会先从回收的队列里面去查找有没有已经回收过的,有回收过得会直接使用,没有回收过得需要重新创建
"cocos2d.h"
<cocos-ext.h>
@H_905_
450@
USING_NS_CC_EXT;
USING_NS_Cc;
class
HelloWorld :
public
cocos2d::Layer,TableViewDatasource,TableViewDelegate
{
public
:
// there's no 'id' in cpp,so we recommend returning the class instance pointer
static
cocos2d::Scene* createScene();
// Here's a difference. Method 'init' in cocos2d-x returns bool,instead of returning 'id' in cocos2d-iphone
bool
init();
// a SELEctor callBACk
void
@H_157_12
@menuCloseCall
BACk(Ob
ject* pSender
);
// implement the "static create()" method manually
CREATE_FUNC(HelloWorld);
/**
* cell height for a given table.
*
*
@param
table table to hold the instances of Class
*
@return
cell size
*/
virtual
Size cellSizeForTable(TableView *tablE);
/**
* a cell instance at a given index
*
*
idx index to search for a cell
*
cell found at idx
*/
virtual
TableViewCell* tableCellATindex(TableView *table,ssize_t idX);
/**
* Returns number of cells in a given table view.
*
*
number of cells
*/
virtual
ssize_t numberOfCellsInTableView(TableView *tablE);
public
:
/**
* Delegate to respond touch event
*
*
table table contains the given cell
*
cell cell that is touched
* @js NA
* @lua NA
*/
void
tableCellTouched(TableView* table,TableViewCell* cell);
/**
* @js NA
* @lua NA
*/
void
scrollViewDidScroll(ScrollView* view){};
void
scrollViewDidZoom(ScrollView* view){};
};
@H_905_
450@#endif
// __HelLOWORLD_SCENE_H__
"HelloWorldScene.h"
@H_905_
450@
USING_NS_Cc;
Scene* HelloWorld::createScene()
{
// 'scene' is an autorelease object
auto
scene = Scene::create();
// 'layer' is an autorelease object
auto
layer = HelloWorld::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return
scene;
}
// on "init" you need to initialize your instance
bool
HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if
( !Layer::init() )
{
false
;
}
TableView * tv = TableView::create(
this
,Size(
300
,216)">300
));
tv->setAnchorPoint(Point(
0
));
tv->setPosition(
0
);
tv->setDelegate(
this
);
addChild(tv);
true
;
}
Size HelloWorld::cellSizeForTable(cocos2d::extension::TableView *tablE){
return
Size(
50
);
}
TableViewCell* HelloWorld::tableCellATindex(cocos2d::extension::TableView *table,ssize_t idX){
TableViewCell *cell = table->dequeueCell();
LabelTTF *label;
if
(cell==
NULL
) {
cell = TableViewCell::create();
label = LabelTTF::create();
label->setTag(
2
);
label->setFontSize(
30
);
label->setAnchorPoint(Point(
0
));
cell->addChild(label);
}
else
{
label = (LabelTTF*)cell->getChildByTag(
2
);
}
label->set@R_197_10495@ng(@R_197_10495@ngUtils::format(
"Label %ld"
,idX));
return
cell;
}
ssize_t HelloWorld::numberOfCellsInTableView(cocos2d::extension::TableView *tablE){
return
100
;
}
void
HelloWorld::tableCellTouched(cocos2d::extension::TableView *table,cocos2d::extension::TableViewCell *cell){
LabelTTF *label = (LabelTTF*)cell->getChildByTag(
2
);
log(
"%s"
,label->get@R_197_10495@ng().c_str());
}
void
HelloWorld::menuCloseCallBACk(Object* pSender)
{
Director::geTinstance()->end();
@H_905_
450@#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(
0
);
@H_905_
450@#endif
}
大佬总结
以上是大佬教程为你收集整理的cocos2dx常用功能-Cocos2dx开发常用控件详解(共11部分)全部内容,希望文章能够帮你解决cocos2dx常用功能-Cocos2dx开发常用控件详解(共11部分)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。