HTML 游戏控制器
-
定义和使用
按下按钮移动红色方块: -
控制
现在我们要控制红场。添加四个按钮,上、下、左和右。为每个按钮编写一个函数,以在选定的方向上移动组件。在组件构造函数中创建两个新属性,并将它们称为 speedX 和 speedY。这些属性被用作速度指示器。在组件构造函数中添加一个名为 newPos() 的函数,该函数使用 speedX 和 speedY 属性来更改组件的位置。在绘制组件之前,从 updateGameArea 函数调用 newpos 函数:组件具有控制其外观和移动的属性和方法。
-
-
键盘作为控制器
我们也可以用键盘上的箭头键来控制红色方块。创建一个方法来检查是否按下了某个键,并将 myGameArea 对象的 key 属性设置为键代码。释放密钥时,将密钥属性设置为 false:如果按下其中一个箭头键,我们可以移动红色方块: -
按下多个键
如果同时按下多个键怎么办?在上面的示例中,组件只能水平或垂直移动。现在我们希望组件也沿对角线方向移动。为 myGameArea 对象创建一个 keys 数组,并为每个按下的键插入一个元素,并为其赋值为 true,该值将保持为 true,直到不再按下该键,该值在 keyup 事件侦听器函数中变为 false: -
-
触摸屏幕控制游戏
我们也可以在触摸屏上控制红色方块。在 myGameArea 对象中添加一个方法,该方法使用触摸屏幕的 x 和 y 坐标:然后,如果用户触摸屏幕,我们可以移动红色方块,方法是使用与鼠标光标相同的代码: -
画布上的控制器
我们也可以在画布上绘制自己的按钮,并将其用作控制器:添加一个新函数,该函数可以判断组件(在本例中是一个按钮)是否被单击。首先添加事件侦听器来检查是否单击了鼠标按钮(mousedown 和 mouseup)。要处理触摸屏,还需要添加事件侦听器来检查屏幕是否被单击(touchstart 和 touchend):现在 myGameArea 对象的属性告诉我们单击的 x 和 y 坐标。我们使用 see 属性来检查是否在我们的一个蓝色按钮上执行了单击。新方法称为 clicked,它是组件构造函数的一个方法,它检查组件是否被单击。在 updateGameArea 函数中,如果单击其中一个蓝色按钮,我们将采取必要的操作: