[寒江孤叶丶的Cocos2d-x之旅_11]Cocos2d-x的重力感应Demo。如何使用重力感应。
来源:互联网 发布:2017网络电影 编辑:程序博客网 时间:2024/05/22 02:18
在开发一些赛车类,或者躲避类的游戏中,经常会用到重力感应的功能。比如以前玩儿的控制一个金属球走迷宫的游戏。
在最近这个版本的TestCPP中我没有找到关于重力感应的例程,不知道是官方没有添加还是我自己没找到。不管如何吧,我通过网上搜索资料。解决了自己所遇到的问题。在此分享出来希望对大家有用。
一下内容是自己的理解,不对之处欢迎指出!
首先先看一张图,这事一个XYZ轴的三维坐标图,通过XYZ轴指向的方向来获得一个-1到1的系数,来分辨出当前手机的姿势。 X是横轴 Y是纵轴,而Z则是一个穿过屏幕的法线。
如果箭头指向水平方向,是0,指向上方则是-1 而下方则是1,如图,YX 都为0 而Z 则是-1,如果这时,将Y轴往上翘起,Y会由0 慢慢的转化为-1 如果将X轴向下倾斜,则X会由0 变为1。
使用方法:
在init方法中,添加初始化的代码:
//开启重力感应 Device::setAccelerometerEnabled(true); //设置监听的回调方法 auto listener = EventListenerAcceleration::create(CC_CALLBACK_2(HelloWorld::onAcceleration, this)); //获取时间分发期,并向时间分发器添加监听时间 Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this); //创建一个用于测试的Sprite auto spTest = Sprite::create("CloseNormal.png"); spTest->setPosition(Vec2(Director::getInstance()->getVisibleSize().width/2, Director::getInstance()->getVisibleSize().height/2)); this->addChild(spTest); spTest->setTag(1000);在头文件中添加一行成员函数的声明:(这里直接添加到HelloWorld类中了)
void onAcceleration(cocos2d::Acceleration* acc, Event* unused_event);最后将方法实现:
void HelloWorld::onAcceleration(Acceleration* acc, Event* unused_event){ //获取导演类对象 auto dirInstance = Director::getInstance(); //获取之前创建的Sprite auto spTest=this->getChildByTag(1000); //通过导演类中的方法,将Sprite的屏幕坐标转换为UIkit的坐标 auto uiSpPoint = dirInstance->convertToUI(spTest->getPosition()); //并将中里感应的数值乘上中里系数 uiSpPoint.x += acc->x * 9.81f; uiSpPoint.y -= acc->y * 9.81f; //将计算后的UIkit坐标转换回屏幕中的坐标 auto spNewPoint = dirInstance->convertToGL(uiSpPoint); spTest->setPosition(spNewPoint);}
0 0
- [寒江孤叶丶的Cocos2d-x之旅_11]Cocos2d-x的重力感应Demo。如何使用重力感应。
- cocos2d-x 重力感应 加速器的使用
- cocos2d-x重力感应
- cocos2d-x重力感应
- cocos2d-x 重力感应
- cocos2d-x 3.0 重力感应
- 【cocos2d-x】重力感应----移动小球
- cocos2d-x 3.2 |重力感应实现方法
- Cocos2d-x之testCpp---Accelerometer(重力感应)分析
- box2d弹球 cocos2d-x重力感应(cocos2d-x2.1)
- box2d弹球 cocos2d-x重力感应(cocos2d-x2.1)
- Android 的重力感应DEMo
- cocos2d-x 菜鸟进阶篇(二) 重力感应
- Cocos2d-x添加Android重力感应切换屏幕方向
- android 重力感应的使用
- cocos2d - JS 重力感应监听
- 关于cocos2d-html5 中使用重力感应于重力加速
- cocos2dx3.x开启重力感应
- linux下创建和删除软、硬链接
- win8 vs2003 全文搜索卡死 解决
- 在Python常用模块I如何打开相关文件的方法
- 彻底搞懂四元数
- Android开源项目SlidingMenu深入剖析
- [寒江孤叶丶的Cocos2d-x之旅_11]Cocos2d-x的重力感应Demo。如何使用重力感应。
- 邻接表实现图的储存,遍历
- 在vs2010中,根据已有代码和第三方静态库创建项目
- RPC python
- c++基础学习9-c++中的操作符重载
- linux上ln命令详细说明
- HDOJ 题目4508湫湫系列故事——减肥记I(完全背包)
- 虎嗅9.2
- Android:Layout_weight的深刻理解