Войти

Показать полную графическую версию : JavaScript (help)


slaine
20-03-2006, 22:05
Хи!
Этот скрипт работает только в ИЕ(вроде изза 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
есть рабочий вариант на QBasic'е
а я и не знала, что такой раритет еще кто-то использует :)
ie сейчас под рукой нет, так что надеюсь кто-нибудь другой ответит. Но лучше расписать, что должно быть в принципе

Vlad Drakula
21-03-2006, 10:35
slaine
1) используй document.getElementById();
2) не ".style.pixelTop" а ".pixelTop", "pixelTop" это атрибут элемента, а не стиля елемента...




© OSzone.net 2001-2012