因为网页浏览器报告鼠标位置的方式不一致,所以普通JavaScript中的鼠标输入在HTML游戏世界。 simpleGame库通过将getMouseX()和getMouseY()方法添加到Scene对象来处理这个问题。这些方法并不总是完全正确的,但是对于大多数游戏编程而言它们已经足够接近了只要使用Scene对象的getMouseX()和getMouseY()函数来确定鼠标的近似位置,就可以在任何时候读取正常的鼠标。
<! - 1 - >
大多数情况下当你想要鼠标位置时,这是因为你要移动一个鼠标所在的对象,或者将一个对象指向鼠标。通常,您需要隐藏鼠标光标,因此您可以使用Scene对象的hideCursor()方法来隐藏光标。 (当然,你可以使用showCursor()方法来检索游标。)
如果你想读一个触摸屏,还有一个简单的步骤。 simpleGame库有一个名为Joy的虚拟游戏杆对象。创建这个类的一个实例来打开触摸屏阅读功能。
<!请注意,移动设备的触摸界面与鼠标不完全相同,因此需要不同的界面。但是,一旦创建了一个Joy对象,getMouseX()和getMouseY()函数将使触摸输入像普通鼠标一样操作。
touchMouse。 html隐藏了正常的鼠标光标,并在鼠标当前指向的位置移动一个球。这个特殊的例子适用于传统的浏览器和触摸屏设备。
simpleGame库通过提供一些简单的方法调用,大大简化了鼠标指针的处理过程。这是代码:
touchMouse。 html var ball; var游戏; var joy;函数init(){game = new Scene(); ball = new Sprite(game,“redBall.png”,25,25);球。 (0)setSpeed;游戏。 hideCursor();
joy = new Joy(); 游戏。 start();} //结束init函数update(){游戏。明确(); followMouse(); 球。 update();} //结束更新 function followMouse(){ x = game。 getMouseX(); y =游戏。 getMouseY(); if(game。touchable){ //将对象移动一点点以便触摸屏 y - = 100; } //结束触摸屏测试 球。 setPosition(x,y); } 让一个精灵跟随鼠标只是知道调用什么方法。 隐藏鼠标光标。 Scene对象有一个hideCursor()方法。这是隐藏正常鼠标指针的最简单的方法。通常情况下,当你用对象跟随鼠标时,你的意思是这个对象的行为就像新的鼠标指针一样,所以你会隐藏正常的箭头。 为虚拟游戏杆创建一个变量。 如果您将使用触控板设备,则需要一个变量来包含虚拟手柄对象。 (如果这个游戏只能在普通鼠标的台式机上使用,则不需要操纵杆对象。)
初始化游戏杆。在init()函数中创建一个Joy对象的实例。只要创建游戏杆,就会告诉引擎期待触摸输入并将其映射到正常的鼠标指令。
-
添加一个followMouse()函数。
创建一个新的函数来处理输入通常是很好的。 followMouse()函数将告诉对象跟随鼠标。当然,如果你正在构建一个跟随鼠标的对象,你可以根据自己的喜好使用这个方法。
-
使用getMouseX()和getMouseY()方法。
Scene对象具有称为getMouseX()和getMouseY()的方法。使用这些方法获取场景中鼠标的X和Y坐标。请注意,坐标并不总是精确的。
-
检查是否有触摸屏。
如果浏览器具有触摸屏,那么Scene对象具有触摸属性。您通常不希望对象被手指隐藏,因此当您使用触摸屏进行输入时,往往需要偏移对象。
-
将对象移动到高于手指的位置。
在触摸屏环境中,您通常希望精灵仍然可见,所以您通常会将Y轴偏移一定量,以免被玩家的手指遮挡。从Y中减去一些值来得到这个效果。