欢迎转载:请保留原文出处

http://blog.csdn.net/linyongliang?viewmode=list

摇杆代码请看摇杆那部分 不过要把

CCPoint getDirection();       
float getVelocity();

弄在public处

角度是笛卡尔坐标系。左下角为原点。角度0到2 PI。

void LayerPlay::updatePlayer(float dt)
{
float velocity=rocker->getVelocity();
if (velocity<2)return;
CCPoint point=rocker->getDirection();
float angle=atan2f(-point.y,-point.x);
turnToAngle(anglePlayer,angle,0.15f);
spritePlayer->setRotation(-anglePlayer*180/M_PI);
point=ccp(velocity*cos(anglePlayer),velocity*sin(anglePlayer));
velocity*=0.2f;
float x=velocity*cos(anglePlayer);
float y=velocity*sin(anglePlayer);
if ((pointPlayer.x+x<1280-120)&&(pointPlayer.x+x>120))
{
pointPlayer.x+=x;
}
if ((pointPlayer.y+y<720-120)&&(pointPlayer.y+y>120))
{
pointPlayer.y+=y;
}
//pointPlayer=ccpAdd(pointPlayer,point);
spritePlayer->setPosition(ccp(pointPlayer.x*ratioWidth,pointPlayer.y*ratioHeight));
}
static void getSmallAngle(float& angle)
{
while(angle>=2*M_PI)
{
angle=angle-2*M_PI;
}
while(angle<0)
{
angle=angle+2*M_PI;
}
}
static void turnToAngle(float& fromAngle,float& toAngle,float range)
{
getSmallAngle(fromAngle);
getSmallAngle(toAngle);
float temp=fromAngle-toAngle;
if ((temp>-2*M_PI+range&&temp<=-M_PI)||(temp>range&&temp<=M_PI))
{
fromAngle-=range;
}
else if ((temp>-M_PI&&temp<-range)||(temp>M_PI&&temp<2*M_PI-range))
{
fromAngle+=range;
}
}

其中ratioElement  ratioWidth ratioHeight  是缩放变量可以不管。这个是通过摇杆来获取信息来调整玩家的位子和角度

其中屏幕分辨率是1280*720 的 最多不能走出距离边缘120像素地方

小羊驼和你一起学习cocos2d-x之五(结合摇杆控制玩家走动)相关推荐

  1. 【直播】李祖贤:集成学习答疑直播之五 -- 常用集成思路

    集成学习答疑直播之五 – 常用集成思路   集成学习 是首个横跨3个周期的长期组队学习,在 第24期组队学习 中进行到"第二期-模型集成思路"阶段.组队学习期间,课程设计者每周针对 ...

  2. 作业——Windows核心编程学习手札系列之五

    作业 --Windows核心编程学习手札系列之五 Windows提供作业内核对象,可以将进程组合在千毫 ,并创建一个"沙框"以便限制进程能够进行的操作.作业可视为进程的容器,win ...

  3. 从零开始学习OpenGL ES之五 – 材质

    从零开始学习OpenGL ES之五 – 材质 作者: iPhoneGeek 爱疯极客 09-Jan-10 iPhone Development 浏览次数: 411 |  评论 ↓ Tweet Shar ...

  4. 基于深度强化学习的智能船舶航迹跟踪控制

    基于深度强化学习的智能船舶航迹跟踪控制 人工智能技术与咨询 昨天 本文来自<中国舰船研究> ,作者祝亢等 关注微信公众号:人工智能技术与咨询.了解更多咨询! 0.   引 言 目前,国内外 ...

  5. 【TB-02模组专题②】学习如何对接天猫精灵语音控制的过程;

    本<安信可ble mesh蓝牙模组TB-02模组专题>系列博客学习由官方博客 CSDN安信可博客 潜心所力所写.如有不对之处,请留言,我们及时更改. 1.BLE MESH开发环境linux ...

  6. Kali学习 | 漏洞利用:4.4 控制Meterpreter

    Kali学习 | 漏洞利用:4.4 控制Meterpreter 介绍 操作步骤 介绍 Meterpreter是Metasploit框架中的一个杀手铜,通常作为利用漏洞后的攻击载荷所使用,攻击载荷在触发 ...

  7. “物联网开发实战”学习笔记-(二)手机控制智能电灯

    "物联网开发实战"学习笔记-(二)手机控制智能电灯 如果搭建好硬件平台后,这一次我们的任务主要是调试好智能电灯,并且连接到腾讯云的物联网平台. 腾讯云物联网平台 腾讯物联网平台的优 ...

  8. [学习引导]WiFi在智能家居控制领域应用

    [学习引导]WiFi在智能家居控制领域应用 想参加培训嵌入式ARM,linux,单片机,电子,PCB,FPGA,安卓等技术的朋友可以联系我哦,电话18948782706,QQ:2269819323(徐 ...

  9. 小羊驼和你一起学习cocos2d-x与lua之五(lua编写cocos2d-x游戏)

    欢迎转载:请保留原文出处. http://blog.csdn.net/linyongliang?viewmode=list 这里我用编辑工具是Sublime Text 2 支持lua语言的高亮与智能提 ...

最新文章

  1. 讲解 Zookeeper 的五个核心知识点
  2. DayDayUp:追梦赤子心——1024,你好!程序猿们的节日!
  3. ML之Clustering之LPA:LPA算法主要思路、输出结果、代码实现等相关配图之详细攻略
  4. vue tag=“li“ 和event原有样式渲染不出来
  5. Java黑皮书课后题第7章:7.2(倒置输入的数)编写程序,读取10个整数,然后按照和读入顺序相反的顺序将它们显示出来
  6. 【数据结构与算法】之深入解析“寻找旋转排序数组中的最小值II”的求解思路与算法示例
  7. cocos2d-x初探学习笔记(11)--拖动间隐效果
  8. 【题解】洛谷P1066 [NOIP2006TG] 2^k进制数(复杂高精+组合推导)
  9. 项目中的富文本编辑器该如何选择?
  10. “约见”面试官系列之常见面试题之第九十六篇之active-class是谁的属性(建议收藏)
  11. Spark应用日志级别设置
  12. 多系统PE win UBUNTU OSX
  13. oracle+solaris+密码,Oracle Solaris 10回滚补丁文件密码哈希泄露漏洞
  14. php复制重叠字符串,PHP如何在复制字符串中的每个字符后“重复”字符串(恢复字符串)...
  15. 冲突域和广播域的区别
  16. MFC__ZPL语言Zbor打印机打印数据换行问题
  17. C# 命名空间中不存在类型或命名空间名System.XXX
  18. Android仿淘宝详情页面viewPager滑动到最后一张图片跳转的功能
  19. 【DKN】(二)config.py
  20. 【每天更新】2022年最新WordPress主题下载,外贸独立站商城/企业网站/个人博客模板 2022-5-18

热门文章

  1. 华为Mate30EPro和mate30pro的区别,
  2. 杂记 选一款心仪的听歌软件
  3. mysql季度第一天_mysql 获取季度的第一天 本月的第一天,本周的第一天sql语句(转)...
  4. 数字时钟程序c语言,数字时钟C语言源程序
  5. oracle 11g ora31626,expdp时候出错:ORA-31626,ORA-31637,ORA-39062,ORA-31613
  6. 计算机中usb指啥,usb接口指的是_通俗关于USB接口的知识
  7. 【问题解决】java.lang.ClassNotFoundException: org.apache.jsp.XXX.jsp服务器500错误
  8. 报错stack smashing detected ***:terminated
  9. 为数学而歌之伯努利家族
  10. Linux RNDIS驱动