Javascript - 距离(以像素为单位) - 决策

时间:2012-11-08 13:20:50

标签: javascript animation distance design-decisions

我有一个简单的javascript动画,其中两个牛仔(iamges)根据随机间隔号“互相竞争”。

我无法找到的方法是让脚本决定谁是赢家,这意味着如果牛仔先达到预先定义的距离,脚本就会知道并会向谁显示警告赢了。

这是一个显示示例的屏幕截图:

enter image description here

这是我到目前为止的代码:http://pastebin.com/Cmt4N8c9

可以给我一些指示吗?

谢谢, 布赖恩

2 个答案:

答案 0 :(得分:0)

move()函数中,您应该执行类似

的操作
if (x >= dest_x) {
    alert('player 1 won');
} else if (x2 >= dest_x2) {
    alert('player 2 won');
} else {
    ... continue the loop ... 
}

你最有可能把它放在

之后
document.getElementById("cowboy").style.top  = y+'px';
document.getElementById("cowboy").style.left = x+'px';

document.getElementById("cowboytwo").style.top  = y2+'px';
document.getElementById("cowboytwo").style.left = x2+'px';

顺便说一句,您可能也希望检查重复变量的代码。

例如,

AFAIK dest_x和dest_x2都是相同的。

答案 1 :(得分:0)

简单移动

/* Y is not relevant since you only move it on X axis */

var position1 = 100;
var position2 = 100;

var dest      =  800; //Or any given value

function move() {
    var step1 = Math.floor(1 + (10 * Math.random() ) );
    var step2 = Math.floor(1 + (10 * Math.random() ) );

    position1 += step1;
    position2 += step2;

    document.getElementById("cowboy").style.left     = position1+'px';
    document.getElementById("cowboytwo").style.left = position2+'px';



    if(position1 < dest && position2 < dest) {
        window.setTimeout('move()',100);
    } else {
        //We have the winner
        if(position1 > dest) alert("Winner is Cowboy1");
        if(position2 > dest) alert("Winner is Cowboy2");

        //Its also possible that both of them pass target value at the same step
    }
}