视频: 【TibaMe遊戲工廠】就是要學Unity - 2018最新版!超級入門 2024
许多基于触摸的HTML5游戏使用虚拟游戏杆机制。用户触摸屏幕开始输入,然后滑动以提供输入。向左滑动就像向左移动操纵杆一样。用户滑动越远,输入值越大。 simpleGame库有一个虚拟游戏杆对象,可以很容易地在您的基于触摸的设备上实现虚拟游戏杆。
<! --1 - >虚拟操纵杆通过返回数字数据来工作。在将其映射到可视元素之前查看数字输出,通常最容易理解它是如何工作的。
游戏杆测试var游戏; var输出; var joystick;函数init(){game = new Scene();输出=文档。的getElementById( “输出”); if(game。touchable){ joystick = new Joy(); }其他{ 提示(“此测试需要一个基于触摸的界面”); } 的游戏。 start();} //结束init函数update(){ if(game。touchable){ jx = joystick。 getMouseX(); jy =操纵杆。 getMouseY(); jdx =操纵杆。 getDiffX(); jdy =操纵杆。 getDiffY(); result =“joystick x:”+ jx +“ ”; result + =“joystick y:”+ jy +“ ”;result + =“joystick dx:”+ jdx +“ ”;
result + =“joystick dy:”+ jdy +“ ”;
输出。这个虚拟游戏杆很容易使用: <!>这个虚拟游戏杆很容易使用:
<! - 2 - >
为游戏杆创建一个变量。 你可以把它叫做摇杆。那种吸引人的。
如果可能,创建操纵杆。
使用游戏。触摸属性来确定是否存在触摸界面。如果不是,则发送消息给用户。获取鼠标位置。-
当虚拟手柄对象在屏幕上检测到触摸时,触发mouseX和mouseY值。使用操纵杆的getMouseX()和getMouseY()方法来确定触摸的X和Y位置。这样,触摸界面就像传统的鼠标一样。
-
从操纵杆获取diffX和diffY读数。
当用户触摸屏幕时,库会跟踪初始触摸的坐标。然后测量用户已经滑过多远。 X中的差异称为diffX,Y中的差异称为diffY。使用虚拟手柄对象的getDiffX()和getDiffY()方法来确定用户在触摸屏幕后X和Y中有多少像素。显示当前值。
-
对于第一遍来说,理解操纵杆显示的内容很重要,所以只需将这些值输出到屏幕输出。
当然,虚拟游戏杆的重点是在屏幕上移动东西。
这里是代码: -
游戏杆测试var游戏; var球; var操纵杆;函数init(){game = new Scene(); ball = new Sprite(game,“redBall.png”,50,50);如果(game。touchable){joystick = new Joy();} else {alert(“这个游戏需要一个触摸屏”);} //结束如果球。 (0)setSpeed;球。 setPosition(400,300);游戏。 start();} //结束init函数update(){游戏。明确();如果(比赛。触摸){球。 setDX(joystick。getDiffX());球。 setDY(joystick。getDiffY());} //结束可触摸的球。 update();} //结束更新
这个例子比前一个更简单。
-
创建一个简单的球精灵。
在这个例子中,使用了一个简单的球。创建它像任何其他基本精灵。
构建一个游戏杆对象。
制作一个虚拟手柄对象。
将游戏杆的diffX和diffY映射到球的dx和dy值。
这样会产生极其敏感的运动,因此您可能需要通过将diffX和diffY除以某个比例因子来调整灵敏度。