Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   JavaScript (help) (http://forum.oszone.net/showthread.php?t=63106)

slaine 20-03-2006 22:05 419853

JavaScript (help)
 
Хи!
Этот скрипт работает только в ИЕ(вроде изза pixelTop), но потом переделаю, как всё улажу.
Я хотел бы попросить помочь мне отследить столкновение(коллизион) мяча
с блоками!
Дело в том, что есть рабочий вариант на QBasic'е, но неполучается
сделать это на JavaScript, помогите.

Вот прописываю этот код в цикл после "document.write", но ничё неработает и
пропадают все блоки, почему - не могу понять.
Код:

if (d.all("xc").style.pixelLeft+6 >= w && d.all("xc").style.pixelLeft <= w+35 && d.all("xc").style.pixelTop+6 >= h && d.all("xc").style.pixelTop <= h+15){
        alert('col');
        }

Сам скрипт:

Код:

<html>
<title></title>
<head>
<script language = javascript>

        var d = document;
        var xdir = 2;
        var ydir = 2;

        function aaa(){

        d.all("xc").style.pixelLeft += (xdir);
        d.all("xc").style.pixelTop += (ydir);

        if ((d.all("xc").style.pixelLeft<=6)){
        xdir=-xdir;
        }
        if (d.all("xc").style.pixelLeft>=d.body.clientWidth-60){
        xdir=-xdir;
        }
        if ((d.all("xc").style.pixelTop<=6)){
        ydir=-ydir;
        }
        if ((d.all("xc").style.pixelTop>=400)){
        ydir=-ydir;
        }

        setTimeout ("aaa()");
        }

        s = "#ff0000";
        y = "#ffff00";
        f = "#ee33de";
        l = "#33ff00";
        b = "#0066ff";
        n = "#000000";

        a = [       
                [l, b, s, y, n],
                                [f, l, b, s, y],
                                [f, l, b, b, s],
                [f, l, b, b, s],
                [f, l, l, b, s],
                [f, f, l, b, s],
                                [f, f, l, b, s],
                [f, l, l, b, s],
                [f, l, b, b, s],
                [f, l, b, b, s],
                [f, l, b, s, y],
                [l, b, s, y, n]
                                ];


        for(i = 0; i < 12; i ++){
        for(j = 0; j < 5; j ++){
        w = 100+37*i
        h = 45+17*j       
        document.write("<div style='position: absolute; background-color: "+a[i][j]+"; width: 35px; height: 15px; top: "+h+"px; left: "+w+"px; font-size: 8px'></div>");
       
        }
        }
       
</script>
</head>
<body bgColor=#000000 onload=aaa()>

<div id="xc" style="background-color: orangered; height: 6px; left: 200px; position: absolute; top: 150px; width: 6px; font-size: 6px"></div>
</body>
</html>


mar 20-03-2006 22:46 419868

Цитата:

есть рабочий вариант на QBasic'е
а я и не знала, что такой раритет еще кто-то использует :)
ie сейчас под рукой нет, так что надеюсь кто-нибудь другой ответит. Но лучше расписать, что должно быть в принципе

Vlad Drakula 21-03-2006 10:35 420011

slaine
1) используй document.getElementById();
2) не ".style.pixelTop" а ".pixelTop", "pixelTop" это атрибут элемента, а не стиля елемента...


Время: 02:54.

Время: 02:54.
© OSzone.net 2001-