第三阶段:常用功能3-
1.Cocos2d-x单点触摸
Size size = Director::getInstance()->getVisibleSize();@H_502_8@ @H_502_8@ @H_502_8@
auto
label = LabelTTF::create(
"Click me"
,
"Courier"
,
30
);@H_502_8@ label->setPosition(size.width/
2
,size.height/
2
);@H_502_8@ addChild(label);@H_502_8@ @H_502_8@
auto
listener = EventListenerTouchOneByOne::create();@H_502_8@ listener->onTouchBegan = [](Touch *t,Event *e){@H_502_8@ @H_502_8@
if
(e->getCurrentTarget()->getBoundingBox().containsPoint(t->getLocation())) {@H_502_8@ @H_502_8@ log(
"onTouchBegan"
);@H_502_8@ }@H_502_8@ @H_502_8@
return
true
;@H_502_8@ };@H_502_8@ @H_502_8@ listener->onTouchMoved = [](Touch* t,Event *e){@H_502_8@ log(
"onTouchMoved"
);@H_502_8@ };@H_502_8@ @H_502_8@ listener->onTouchEnded = [](Touch *t,27)">"onTouchEnd"
);@H_502_8@ };@H_502_8@
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraPHPriority(listener,label);
2.Cocos2d-x触摸目标判断
//获取当前事件目标也就是label
3.Cocos2d-x事件传递
listener->onTouchMoved = [](Touch* t,27)">"onTouchEnd"
);@H_502_8@ };
4.Cocos2d-x多点触摸
安卓的DNK首先配置在环境变量里面
proj.android---
build_native.py
Size visibleSize = Director::getInstance()->getVisibleSize();@H_502_8@ @H_502_8@
auto
listener = EventListenerTouchAllAtOnce::create();@H_502_8@ @H_502_8@ listener->onTouchesBegan = [](std::vector<Touch*> ts,27)">"onTouchesBegan"
);@H_502_8@ };@H_502_8@ @H_502_8@ listener->onTouchesMoved = [](std::vector<Touch*> ts,27)">"touches moved,and touch count is %ld"
,ts.size());@H_502_8@ };@H_502_8@ @H_502_8@
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraPHPriority(listener,this);
@H_502_8@
5.Cocos2d-x加速度
acceleration
加速度
加速 stamp
标志/
邮票;印记 double类型 %g
cocos2d ▸ cocos ▸ platform ▸ android ▸ java ▸ src 放在JAVA ADT 的 src 里面 按下F11 选中Android Aplication
@H_502_8@
//加速度传感器默认处于关闭状态,需要打开
Device::setAccelerometerEnabled(
true
);@H_502_8@ @H_502_8@ Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraPHPriority(EventListenerAcceleration::create([](Acceleration *a,Event *e){@H_502_8@ @H_502_8@ log(
"x:%g,y:%g,z:%g"
,a->x,a->y,a->z);@H_502_8@
}),162)"> this);
@H_502_8@
6.Cocos2d-x物理按键交互
auto
listener = EventListenerKeyboard::create();@H_502_8@ listener->onKeyReleased = [](EventKeyboard::KeyCode code,27)">"key code : %d"
,code);@H_502_8@ @H_502_8@
switch
(code) {@H_502_8@
case
EventKeyboard::KeyCode::KEY_BACKSPACE:@H_502_8@ Director::getInstance()->end();@H_502_8@
break
;@H_502_8@ @H_502_8@
default
:@H_502_8@
break
;@H_502_8@ }@H_502_8@ };@H_502_8@
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraPHPriority(listener,162)">this);