【WiEngine 游戏引擎】基础(3)给游戏增加虚拟摇杆
2013-03-15 14:36
411 查看
WiEngine中自带了一个虚拟摇杆的实现--VirtualJoystick类
在Wiengine中给游戏添加虚拟摇杆非常方便,下面是具体实现代码:
通过setEventStyle()设置摇杆类型,摇杆的类型有3个:
上面用到的Label也是nodes的子类,可以直接添加到Layer中。
最后是效果图:
转载请注明出处:http://blog.csdn.net/Vestigge
在Wiengine中给游戏添加虚拟摇杆非常方便,下面是具体实现代码:
public class VirtualButtonLayer extends Layer implements IVirtualJoystickCallback { private static final int CENTER = -1; private static final int NORTH = 0; private static final int NORTH_EAST = 1; private static final int EAST = 2; private static final int SOUTH_EAST = 3; private static final int SOUTH = 4; private static final int SOUTH_WEST = 5; private static final int WEST = 6; private static final int NORTH_WEST = 7; // 当前的方向 private int mDir; private Label mLabel; public VirtualButtonLayer() { mDir = CENTER; // 创建一个虚拟摇杆 Sprite bg = Sprite.make(R.drawable.joystick_bg); bg.setDither(true); Sprite rocker = Sprite.make(R.drawable.joystick_rocker); VirtualJoystick vj = VirtualJoystick.make(bg, rocker); vj.setAnchor(0, 0); vj.setEventStyle(VirtualJoystick.VJS_NINE_DIRECTIONS);// 设置为9个方向 vj.setPosition(DP(20), DP(20)); vj.setCallback(this); addChild(vj); WYSize s = Director.getInstance().getWindowSize(); // 添加一个Label,参数依次为 String 文字 ,float 字体大小 mLabel = Label.make("当前方向:", 20); mLabel.setPosition(s.width / 2, s.height / 2); addChild(mLabel); } private float DP(float v) { return ResolutionIndependent.resolveDp(v); } @Override public void onVJDirectionChanged(int vjPointer, int newDirection) { switch (newDirection) { case VirtualJoystick.VJD_CENTER: mDir = CENTER; break; case VirtualJoystick.VJD_NORTH: mDir = NORTH; break; case VirtualJoystick.VJD_NORTH_EAST: mDir = NORTH_EAST; break; case VirtualJoystick.VJD_EAST: mDir = EAST; break; case VirtualJoystick.VJD_SOUTH_EAST: mDir = SOUTH_EAST; break; case VirtualJoystick.VJD_SOUTH: mDir = SOUTH; break; case VirtualJoystick.VJD_SOUTH_WEST: mDir = SOUTH_WEST; break; case VirtualJoystick.VJD_WEST: mDir = WEST; break; case VirtualJoystick.VJD_NORTH_WEST: mDir = NORTH_WEST; break; } mLabel.setText("当前方向:" + mDir); } @Override public void onVJNavigationEnded(int vjPointer) { } @Override public void onVJNavigationStarted(int vjPointer) { } }
通过setEventStyle()设置摇杆类型,摇杆的类型有3个:
上面用到的Label也是nodes的子类,可以直接添加到Layer中。
最后是效果图:
转载请注明出处:http://blog.csdn.net/Vestigge
相关文章推荐
- 【WiEngine 游戏引擎】基础(2)让精灵动起来
- 【WiEngine 游戏引擎】基础(1)添加一个精灵
- cocos2d-x游戏引擎基础知识介绍(一)
- 【DirectX 游戏开发基础】自制游戏微型引擎
- 使用C#作为Cocos2dx引擎脚本语言进行游戏开发——脚本运行时基础(二)
- Unity3D游戏引擎最详尽基础教程
- Unity3D游戏引擎最详尽基础教程
- 非典型2D游戏引擎 Orx 源码阅读笔记(2) 基础模块与模块管理模块
- unity游戏引擎基础之预制资源介绍与使用(四)
- VC++实战《星际传奇》网游课程第一部分网络游戏开发基础篇(游戏引擎设计)
- HTML5游戏开发进阶 3 :物理引擎基础
- Unity3D游戏引擎最详尽基础教程
- WiEngine游戏引擎学习笔记(一)
- unity游戏引擎基础之编辑器布局自定义(二)
- 游戏引擎基础
- 游戏引擎基础
- 基于WiEngine游戏引擎--角色基本效果
- 游戏引擎基础(一)(渲染和构造3D世界)
- Unity3D游戏引擎最详尽基础教程
- 基于WiEngine游戏引擎的Sample