У меня есть фиксированный набор из 9 объектов, которые равноудалены.Когда они выходят за правый край экрана, они переходят на левый экран.
, когда object0.x попадает в правый край экрана (720 или 1280), он должен обернуться слева от объекта9, который, вероятно, находится за экраном слева, и сохранить расстояние от объекта9, аналогично для другихспрайты, когда они уходят с экрана, их нужно перенести на противоположное поддерживающее расстояние между предыдущим объектом.То же самое, конечно, должно быть верно при движении в противоположном направлении.
В настоящее время все оборачивается и выходит из позиции.
Вот мой текущий код: (getstartpos () благодаря petar-ivanov )
function getstartpos(objectWidth as integer, startPosition as integer, objectNumber as integer, space as integer)
return startPosition + objectNumber * (objectWidth + space)
end function
sub screenupdate()
m.p0x=m.p0x+ int(m.inc)
if m.p0x > 720
m.p0x = -getstartpos(120,m.p9x,9,20)
?m.p0x
endif
m.p0.MoveTo(m.p0x, m.p0y)
m.p1x = m.p1x + int(m.inc)
if m.p1x > 720
m.p1x = -getstartpos(120,m.p0x,0,20)
?m.p1x
endif
m.p1.MoveTo(m.p1x, m.p1y)
m.p2x = m.p2x + int(m.inc)
if m.p2x > 720
m.p2x = -getstartpos(120,m.p1x,1,20)
?m.p2x
endif
m.p2.MoveTo(m.p2x, m.p2y)
...
m.p9x = m.p9x + int(m.inc)
if m.p9x > 720
m.p9x = -getstartpos(120,m.p8x,8,20)
?m.p9x
endif
m.p9.MoveTo(m.p9x, m.p9y)
end sub