gpt4 book ai didi

JavaScript 处理设备触摸屏被按住

转载 作者:行者123 更新时间:2023-11-29 00:23:04 25 4
gpt4 key购买 nike

我正在制作一个 JavaScript Canvas 游戏,我需要检测设备上的触摸屏是否被按住而不是被点击。我让它可以拾取触摸,但我无法弄清楚如何在按住它时继续调用方法。

所以我添加了事件处理器

function addTouchEventHandlers() 
{
screen.canvas.addEventListener( 'touchstart', touchStart);
screen.canvas.addEventListener( 'touchend', touchEnd );
}

我有触摸开始和触摸结束

function touchStart(e) {      
if (gameStarted) {
// Prevent players from inadvertently
// dragging the game canvas
e.preventDefault();
}};

function touchEnd(e) {
var x = e.changedTouches[0].pageX;
var y = e.changedTouches[0].pageY;

if (gameStarted) {
if (x > screen.width/2)
{
processRightTap();
}
else if (x < screen.width/2 && y < screen.height/2)
{
processTopLeftTap(); <- I want to keep calling this method when held down
}
else if (x < screen.width/2 && y > screen.height/2)
{
processBottomLeftTap(); <- I want to keep calling this method when held down
}
// Prevent players from double
// tapping to zoom into the canvas
e.preventDefault();
}
};

方法只是改变我的 Sprite y 位置

function processBottomLeftTap() {      
ship.y += 4;
}

function processTopLeftTap() {
ship.y -= 4;
}

它们是否类似于键盘方法 isPressed 和 isDown?或者我将如何围绕该方法创建一个 while 循环?像这样。

while(The screen is being touched at X position)
{
processTopLeftTap();
}

最佳答案

您可以在 touchStart 中使用 setInterval(),在回调中使用 processTopLeftTap(),然后调用 clearInterval()touchEnd 上。

关于JavaScript 处理设备触摸屏被按住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43826286/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com