快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

【cocos2d-x】横向滚屏射击游戏②----虚拟控制手柄-创新互联

因为iOS,Android设备使用触摸屏来输入,没有传统移动游戏设备配备的按钮,十字按钮或者模拟手柄,我们需要一个虚拟手柄来控制游戏。你可以使用虚拟手柄对游戏物体进行操控,就像使用实际的手柄一样。

我们提供的服务有:成都网站设计、成都做网站、外贸网站建设、微信公众号开发、网站优化、网站认证、黄南州ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的黄南州网站制作公司

SneakyInput控制手柄源码: 点我下载

把×××下来,加入到你的项目中,别忘了在android.mk添加相关内容哦!

我们首要目标是添加一个可以让玩家进行飞船射击的按钮,他们点击按钮的时候 会发射×××,

----------------------

接下来  我会在项目中添加一个新的类InputLayer ,这个类继承自CCLayer,他会被添加到MainScene

  1. CCScene *MainScene::scene() { 
  2. do
  3. while
  4. return

将SneakyInput添加到InputLayer的头文件中

  1. #include "SneakyInput/SneakyButton.h"
  2. #include "SneakyInput/SneakyJoystick.h"
  3. #include "SneakyInput/SneakyButtonSkinnedBase.h"
  4. #include "SneakyInput/SneakyJoystickSkinnedBase.h"

另外,我在头文件中加了一个SneakyButton成员变量,因为我们马上就会用到。

  1. classpublic
  2. public
  3. virtual
  4. void
  5. bool

在init方法中 我们生成了一个SneakyButton

  1. bool
  2. boolfalse
  3. do
  4. float
  5. new
  6. this
  7. this
  8. true
  9. while
  10. return

 因为SneakyButton没有用到initWithRect方法中的CGRect参数,所以我传了一个CGRectZero给这个方法。实际的处理触摸事件的代码是使用radius(半径)这个属性来决定按钮是否要响应触摸。

InputLayer类通过以下代码预约更新

  1. this

更新方法是用来测试按钮是否已被点击

  1. void
  2. if
  3. "按下按钮"

运行程序,你会发现屏幕上没有任何按钮  不过你可以点击屏幕右下角 然后可以在log日志中正在打印“按下按钮”


接下来  我们将让按钮可见,也就是添加皮肤

 这里 我们使用到了SneakyButtonSkinnedBase

  1. bool
  2. boolfalse
  3. do
  4. float
  5. new
  6. //      这个属性可以让玩家按住按钮不放的时候,×××会持续地射击出去
  7. true
  8. //默认状态
  9. "nor.png"
  10. //点击状态
  11. "tou.png"
  12. //激活状态
  13. "tou.png"
  14. this
  15. this
  16. true
  17. while
  18. return
  我们不需要设置按钮的半径属性了,因为SneakyButtonSkinnedBase类会使用提供的按钮图片来确定按钮半径的大小

控制动作

接下来我们在游戏中添加摇杆

  1. bool
  2. boolfalse
  3. do
  4. float
  5. new
  6. //      决定虚拟手柄的半径大小
  7. //自动回到中心
  8. true
  9. //是否支持死亡区域,该区域不会触发
  10. true
  11. //死亡区域的半径
  12. //摇杆的背景图
  13. "handle1.png"
  14. //摇杆的图片
  15. "handle2.png"
  16. this
  17. this
  18. true
  19. while
  20. return

 完成摇杆的添加  接下来要实现摇杆事件的监听

  1. void
  2. //  getVelocity()到的数值很小 需要放大  800是估算的
  3. if
  4. "x=%f,y=%f"


接下来一章将开发一个小游戏,如有问题,请提出

本教程根据Cocos2d教程翻译过来

使用的cocos2d-x版本为2.02

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


新闻名称:【cocos2d-x】横向滚屏射击游戏②----虚拟控制手柄-创新互联
转载来源:http://6mz.cn/article/dishig.html

其他资讯