网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

【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://bjjierui.cn/article/dishig.html

其他资讯