Программирование > JavaScript & JScript
заставте его двигатца и отскакивать!
(1/1)
Arteas:
слово "я двигаюсь" должно проплыть по экрану под углом 30 градусов и отбившись полететь в другой угол со значением rhi - hpi
а оно не двигаетца даже!
=======================
Я двигаюсь!
var phi = Math.PI
var rho = 0;
var rhoOffset = 0.5;
var L = document.getElementById(\'move-me\').style.left;
var T = document.getElementById(\'move-me\').style.top;
var Lnext, Tnext;
var W = document.getElementById(\'move-me\').offsetWidth;
var H = document.getElementById(\'move-me\').offsetHeight;
var Wb, Hb;
function moveByLine() {
document.getElementById(\'move-me\').style.left = rho * Math.cos(phi) + \'px\';
document.getElementById(\'move-me\').style.top = rho * Math.sin(phi) + \'px\';
rho += rhoOffset;
if ((document.getElementById(\'move-me\').offsetLeft +
document.getElementById(\'move-me\').offsetWidth >=
document.getElementById(\'body\').clientWidth) ||
(document.getElementById(\'move-me\').offsetTop +
document.getElementById(\'move-me\').offsetHeight >=
document.getElementById(\'body\').clientHeight))
Lnext = L + rho * Math.cos(phi);
Tnext = T + rho * Math.sin(phi);
Wcl = document.getElementById(\'body\').clientWidth -20;
Hcl = document.getElementById(\'body\').clientHeight;
if ((Lnext < 0) || (L + W > Wcl))
phi = Math.PI - phi;
if ((Tnext < 0) || (T + H > Hcl))
phi = - phi;
L = L + rho * Math.cos(phi);
T = T + rho * Math.sin(phi);
document.getElementById(\'move-me\').style.left = L;
document.getElementById(\'move-me\').style.top = T;
clearInterval(moveInterval);
}
var moveInterval = setInterval(moveByLine, 20); // Зберігаємо інтервал в змінній.
==================
если же убрать значение и переменные угла отбивания то
то "я двигаюсь" довольно шустро проплывет из верхнего левого угла в нижний правый...
===========
Я двигаюсь!
var phi = Math.PI / 6;
var rho = 0;
var rhoOffset = 0.5;
function moveByLine() {
document.getElementById(\'move-me\').style.left = rho * Math.cos(phi) + \'px\';
document.getElementById(\'move-me\').style.top = rho * Math.sin(phi) + \'px\';
rho += rhoOffset;
if ((document.getElementById(\'move-me\').offsetLeft +
document.getElementById(\'move-me\').offsetWidth >=
document.getElementById(\'body\').clientWidth) ||
(document.getElementById(\'move-me\').offsetTop +
document.getElementById(\'move-me\').offsetHeight >=
document.getElementById(\'body\').clientHeight))
clearInterval(moveInterval);
var moveInterval = setInterval(moveByLine, 20);
}
var moveInterval = setInterval(moveByLine, 20);
===========
помогите плз..:confused:
Навигация
Перейти к полной версии