随机"产卵" divs

时间:2014-01-26 05:46:27

标签: javascript html random

我正在尝试为div创建一个“生成点”。我已经使它工作,我有一个工作的碰撞探测器。关于我的代码,我想问两件事。

  1. 如何让我的代码与多个播放器一起使用(window.i)。 - 此刻,经过一个小时的摆弄,我只破坏了我的代码。整个区域搞砸了碰撞探测器,我有时会看到不止一个玩家,但是我无法移动。

  2. 如何制作它以便在碰撞发生之前检测到接触 - 我尝试使用“坦克”边距并减去它的宽度,以便在它接触之前调用一个事件,但它已失败并完全停止了碰撞功能的工作。

  3. 我很抱歉这是问了很多,我真的明白这一点,但问题是相互影响并且反弹,所以我认为最好把它全部放在一个问题中,而不是每隔一小时分成2个单独的问题。

    function animate() {
        var tank = document.createElement("div");
        tank.id= "tank";
        tank.style.marginLeft="0px";
        tank.style.marginTop="0px";
        tank.style.height="10px";
        tank.style.width="10px";
        document.body.appendChild(tank);
    
        x = parseInt(tank.style.marginLeft);
        y = parseInt(tank.style.marginTop);
    
        document.onkeydown = function () {
    
            e = window.event;
            if (e.keyCode == '37') {
                if (x > 0) {
                    if (collisionDetector() == false) {
                        x = x - 10;
                        tank.style.marginLeft = x + "px";
                    } else {
                        alert();
                    }
                }
            } else if (e.keyCode == '39') {
                if (x < 790) {
                    if (collisionDetector() == false) {
                        x = x + 10;
                        tank.style.marginLeft = x + "px";
                    } else {
                        alert();
                    }
                }
            } else if (e.keyCode == '38') {
                if (y > 0) {
                    if (collisionDetector() == false) {
                        y = y - 10;
                        tank.style.marginTop = y + "px";
                    } else {
                        alert();
                    }
                }
            } else if (e.keyCode == '40') {
                if (y < 490) {
                    if (collisionDetector() == false) {
                        y = y + 10;
                        tank.style.marginTop = y + "px";
                    } else {
                        alert();
                    }
                }
            }
        }
    }
    window.lives = 3;
    
    function playerSpawn() {
    window.i = 1;
    while (i > 0) {
            var player = document.createElement("div");
            randMarL = Math.ceil(Math.random()*80)*10;
            randMarT = Math.ceil(Math.random()*50)*10;
            player.id = "player";
            player.style.marginLeft= randMarL + "px";
            player.style.marginTop= randMarT + "px";
            player.style.height="10px";
            player.style.width="10px";
            document.body.appendChild(player);
            i--;
        }
    }
    function collisionDetector() {
        x1 = tank.style.marginLeft;
        x2 = player.style.marginLeft;
        y1 = tank.style.marginTop;
        y2 = player.style.marginTop;
        if ((x1 == x2 && y1 == y2)) {
            return true;
        } else {
            return false;
        }
    }
    

0 个答案:

没有答案