Я не совсем уверен, что именно то, что вы имеете в виду, когда большие белые диагностические линии полностью выходят за верхний правый угол страницы, тогда вы хотите, чтобы они начинались с нижнего левого угла? право
Что вам нужно сделать, это проверить, находится ли линия за пределами ширины и высоты холста, а в вашем случае - самого окна, поскольку холст заполняет окно браузера. Так что вам нужно сделать ряд условий. Вы проверяете, равна ли строка x + ширина линии> ширине холста, а line.y + высота строки> высоте холста. Если оба являются истинными, тогда установите x и y строки в - то, что это в то время. Так что-то вроде:
if( line.x + line.width > canvas.width && line.y + line.height < 0) {
line.x = -0;
line.y = canvasHeight + line.height;
}
Так я перерабатываю круги, которые появляются с правой стороны экрана, и как только они выходят с левой стороны, они начинаются с правой.
if( d.x + d.radius < 0 ) {
d.radius = 5+(Math.random()*10);
d.x = cwidth + d.radius;
d.y = Math.floor(Math.random()*cheight);
d.vX = -5-(Math.random()*5);
}
Первым делом просто псевдо, вы должны взглянуть на то, что я сделал, чтобы использовать в качестве отправной точки для таких вещей. Структура вашего кода может использовать больше организации, холст очень быстро становится действительно сложным.
Используя клавиши со стрелками, сдвиньте квадрат с любой из четырех сторон и увидите, что он входит с противоположной стороны.
http://anti -code.com / игры / зависть / envy.html
Вилка, если хотите: https://github.com/jaredwilli/envy