1

我正在尝试使用 html5、css 和一些 jquery 开发游戏。

有时我已经通过 Chrome 和 Firefox 而非 Safari 使游戏运行。我的问题是,在我的实验过程中,在 iPad2 上,除了物体没有移动之外,游戏可以正常工作,所以我一直在寻找一种解决方案,以某种方式开发外部键箭头而不使用许多脚本,物体假设只做跳跃,离开和正确的。我已经为此寻找了许多解决方案,但找不到一个好的渲染动作。我什至尝试创建一个可以流畅地处理动作的 JavaScript。

我正在寻找一种使用 node.js 或任何可以帮助我实现平滑跳转的可用资源通过移动设备处理移动的方法。

我已经寻找了许多资源,并且我想让控件对用户进行交互变得简单。

Chrome 和 Firefox 都运行良好,没有问题,除了 Safari 特别是 iPad 2 或 3 中的那个...

这是一些控件,我的错误在哪里

var left, right;
    left = mie ? 1:0;
    right = 2;

    document.body.addEventListener('mousedown' , function (e) {
    console.log(e.button);
    if(key === left){
        dir = "left";
        player.isMovingLeft = true;
    } else if (key === right){
        dir = "right";
        player.isMovingRight = true;
    }

    if(key == 32) {
        if(firstRun === true)
            init();
        else
            reset();
    }
    };

    var left, right;
    left = mie ? 1:0;
    right = 2;

    document.body.addEventListener('mouseup' , function (e) {
        console.log(e.button);
        if(key === left){
            dir = "left";
            player.isMovingLeft = false;
        } else if (key === right) {
            dir = "right";
            player.isMovingRight = false;
        }
    };

//Accelerations produces when the user hold the keys
if (player.isMovingLeft === true) {
    player.x += player.vx;
    player.vx -= 0.15;
} else {
    player.x += player.vx;
    if (player.vx < 0) player.vx += 0.1;
}

if (player.isMovingRight === true) {
    player.x += player.vx;
    player.vx += 0.15;
} else {
    player.x += player.vx;
    if (player.vx > 0) player.vx -= 0.1;
}

// Speed limits!
if(player.vx > 8)
    player.vx = 8;
else if(player.vx < -8)
    player.vx = -8;
4

2 回答 2

1

您可能会发现这是同时支持触摸和鼠标的解决方案:
hand.js

来自文章:

如果能够编写一个代码库来处理您的网站中的鼠标、笔和触摸,该代码库将适用于所有现代浏览器吗?这是一个 polyfill,它将帮助您使用指针事件,并为用户在您的网站上提供出色的体验,而与他们使用的现代浏览器无关。

DOWNLOAD HAND.JS FROM CODEPLEX

于 2013-07-16T23:08:14.123 回答
1

这可能是一个显而易见的答案,但是您是否添加了触摸事件(不仅仅是鼠标事件)?

如果没有,那就是问题所在。

查看Apple 文档以获取示例。它的要点是这样的:

element.addEventListener("touchstart", touchStart, false);
element.addEventListener("touchmove", touchMove, false);
element.addEventListener("touchend", touchEnd, false);
element.addEventListener("touchcancel", touchCancel, false);

我建议您使用HammerJS 之类的库。它使添加事件和手势变得超级容易。

于 2013-07-16T22:06:49.110 回答