cocos2d-x-3.3rc2 其他事件
来源:互联网 发布:换手率软件官网 编辑:程序博客网 时间:2024/06/15 09:08
_eventDispatcher 是 Node中定义的。
_touchListener和 _keyboardListener是使用类中定义 应该是为了移除事件
重力感应事件
Device::setAccelerometerEnabled(true); auto accListener = EventListenerAcceleration::create(CC_CALLBACK_2(PhysicsDemoClickAdd::onAcceleration, this)); _eventDispatcher->addEventListenerWithSceneGraphPriority(accListener, this);
void PhysicsDemoClickAdd::onAcceleration(Acceleration* acc, Event* event){ static float prevX=0, prevY=0; #define kFilterFactor 0.05f float accelX = (float) acc->x * kFilterFactor + (1- kFilterFactor)*prevX; float accelY = (float) acc->y * kFilterFactor + (1- kFilterFactor)*prevY; prevX = accelX; prevY = accelY; auto v = Vec2( accelX, accelY); v = v * 200; if(_scene != nullptr) { _scene->getPhysicsWorld()->setGravity(v); }}
单点触控事件
// Adds Touch Event Listener auto listener = EventListenerTouchOneByOne::create(); listener->setSwallowTouches(true); listener->onTouchBegan = CC_CALLBACK_2(Box2DView::onTouchBegan, this); listener->onTouchMoved = CC_CALLBACK_2(Box2DView::onTouchMoved, this); listener->onTouchEnded = CC_CALLBACK_2(Box2DView::onTouchEnded, this); _eventDispatcher->addEventListenerWithFixedPriority(listener, -10); _touchListener = listener;
bool Box2DView::onTouchBegan(Touch* touch, Event* event){ auto touchLocation = touch->getLocation(); auto nodePosition = convertToNodeSpace( touchLocation ); log("Box2DView::onTouchBegan, pos: %f,%f -> %f,%f", touchLocation.x, touchLocation.y, nodePosition.x, nodePosition.y); return m_test->MouseDown(b2Vec2(nodePosition.x,nodePosition.y));}void Box2DView::onTouchMoved(Touch* touch, Event* event){ auto touchLocation = touch->getLocation(); auto nodePosition = convertToNodeSpace( touchLocation ); log("Box2DView::onTouchMoved, pos: %f,%f -> %f,%f", touchLocation.x, touchLocation.y, nodePosition.x, nodePosition.y); m_test->MouseMove(b2Vec2(nodePosition.x,nodePosition.y)); }void Box2DView::onTouchEnded(Touch* touch, Event* event){ auto touchLocation = touch->getLocation(); auto nodePosition = convertToNodeSpace( touchLocation ); log("Box2DView::onTouchEnded, pos: %f,%f -> %f,%f", touchLocation.x, touchLocation.y, nodePosition.x, nodePosition.y); m_test->MouseUp(b2Vec2(nodePosition.x,nodePosition.y));}
按键事件
auto keyboardListener = EventListenerKeyboard::create(); keyboardListener->onKeyPressed = CC_CALLBACK_2(Box2DView::onKeyPressed, this); keyboardListener->onKeyReleased = CC_CALLBACK_2(Box2DView::onKeyReleased, this); _eventDispatcher->addEventListenerWithFixedPriority(keyboardListener, -11); _keyboardListener = keyboardListener;
void Box2DView::onKeyPressed(EventKeyboard::KeyCode code, Event* event){ log("Box2dView:onKeyPressed, keycode: %d", code); m_test->Keyboard(static_cast<unsigned char>(code));}void Box2DView::onKeyReleased(EventKeyboard::KeyCode code, Event* event){ log("onKeyReleased, keycode: %d", code); m_test->KeyboardUp(static_cast<unsigned char>(code));}
删除事件
_eventDispatcher->removeEventListener(_touchListener);_eventDispatcher->removeEventListener(_keyboardListener);
0 0
- cocos2d-x-3.3rc2 其他事件
- cocos2d-x-3.3rc2 testcpp 触摸事件
- cocos2d-x-3.3rc2 字体
- cocos2d-x-3.3rc2 定时器
- cocos2d-x-3.3rc2-001-hello-world
- cocos2d-x-3.3rc2 通知中心
- cocos2d-x-3.3rc2 输入框
- cocos2d-x-3.3rc2 动作管理 ActionManager
- cocos2d-x-3.3rc2-005 cocos中的智能指针
- cocos2d-x-3.3rc2 坐标转换和锚点
- cocos2d-x 3.0rc2版发布了
- cocos2d-x-3.3rc2-000-run-testCpp 并附apk下载
- cocos2d-x-3.3rc2-002 cocos里的两段构造
- cocos2d-x-3.3rc2-003 cocos中的引用计数和自动释放池
- cocos2d-x-3.3rc2-004 cocos中的引用计数和自动释放池-ReleasePoolTest
- quick-cocos2d-x游戏开发【13】——节点生命周期事件,帧事件等其他事件
- quick-cocos2d-x游戏开发【13】——节点生命周期事件,帧事件等其他事件
- cocos2d-2.0-rc2-x-2.0.1 windows环境配置
- 我的.vimrc
- javascript帮助文档要点记录
- spring mvc hibernate 入门代码
- Excel 技巧收集
- #pragma pack笔记
- cocos2d-x-3.3rc2 其他事件
- iframe框架运用
- BASIC-8 回文数
- [精华] 【转贴】chmod命令详细用法
- Wireshark使用教程:第3章 用户界面
- 用java实现发送手机短信的DEMO
- Android判断当前网络类型
- 虚拟内存-概述
- java导入外部jar包