Cocos2d-x常用功能-Cocos2d-x用户交互事件处理:触摸、传感器、物理按键

前端之家收集整理的这篇文章主要介绍了Cocos2d-x常用功能-Cocos2d-x用户交互事件处理:触摸、传感器、物理按键前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_0@ 第三阶段:常用功能3-
@H_404_0@ --Cocos2d-x常用功能-Cocos2d-x用户交互事件处理:触摸、传感器、物理按键(共6部分)
@H_404_0@ 1.Cocos2d-x单点触摸
@H_404_0@ @H_403_7@ Size size = Director::getInstance()->getVisibleSize();


auto @H_403_7@ label = LabelTTF::create( "Click me" @H_403_7@, "Courier" @H_403_7@, 30 @H_403_7@);
label->setPosition(size.width/ 2 @H_403_7@,size.height/ 2 @H_403_7@);
addChild(label);

auto @H_403_7@ listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = [](Touch *t,Event *e){

if @H_403_7@ (e->getCurrentTarget()->getBoundingBox().containsPoint(t->getLocation())) {

log( "onTouchBegan" @H_403_7@);
}

return @H_403_7@ true @H_403_7@;
};

listener->onTouchMoved = [](Touch* t,Event *e){
log( "onTouchMoved" @H_403_7@);
};

listener->onTouchEnded = [](Touch *t,27)">"onTouchEnd" );
};
@H_404_0@ Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraPHPriority(listener,label);
@H_404_0@ 2.Cocos2d-x触摸目标判断
@H_404_0@ //获取当前事件目标也就是label
@H_404_0@ @H_403_7@ "onTouchBegan" );
}
@H_404_0@ @H_404_0@ 3.Cocos2d-x事件传递 @H_404_0@ @H_403_7@onTouchBegan事件 true @H_403_7@;之后才能执行 @H_403_7@onTouchMoved、 @H_403_7@onTouchEnded
@H_404_0@ @H_403_7@ listener->onTouchMoved = [](Touch* t,27)">"onTouchEnd" );
};
@H_404_0@ @H_404_0@ 4.Cocos2d-x多点触摸 @H_404_0@ 安卓的DNK首先配置在环境变量里面 @H_404_0@ proj.android--- build_native.py @H_404_0@ @H_403_7@ Size visibleSize = Director::getInstance()->getVisibleSize();

auto @H_403_7@ listener = EventListenerTouchAllAtOnce::create();

listener->onTouchesBegan = [](std::vector<Touch*> ts,27)">"onTouchesBegan" @H_403_7@);
};

listener->onTouchesMoved = [](std::vector<Touch*> ts,27)">"touches moved,and touch count is %ld" ,ts.size());
};

@H_404_0@ Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraPHPriority(listener,this); @H_404_0@
@H_404_0@ 5.Cocos2d-x加速度 @H_404_0@ acceleration 加速度 加速 stamp 标志/ 邮票;印记 double类型 %g @H_404_0@ JAVA ADT 里面 右键import 打开proj.android,然后删除依赖项
@H_404_0@ cocos2d ▸ cocos ▸ platform ▸ android ▸ java ▸ src 放在JAVA ADT 的 src 里面 按下F11 选中Android Aplication @H_404_0@
@H_404_0@ //加速度传感器默认处于关闭状态,需要打开 @H_404_0@ @H_403_7@ Device::setAccelerometerEnabled( true @H_403_7@);

Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraPHPriority(EventListenerAcceleration::create([](Acceleration *a,Event *e){

log( "x:%g,y:%g,z:%g" ,a->x,a->y,a->z);
@H_404_0@ }),162)"> this); @H_404_0@
@H_404_0@ 6.Cocos2d-x物理按键交互 @H_404_0@ @H_403_7@ auto @H_403_7@ listener = EventListenerKeyboard::create();
listener->onKeyReleased = [](EventKeyboard::KeyCode code,27)">"key code : %d" @H_403_7@,code);

switch @H_403_7@ (code) {
case @H_403_7@ EventKeyboard::KeyCode::KEY_BACKSPACE:
Director::getInstance()->end();
break @H_403_7@;

default @H_403_7@:
break ;
}
};
@H_404_0@ Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraPHPriority(listener,162)">this);

猜你在找的Cocos2d-x相关文章