JavaSript:столкновение объектов
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



JavaSript:столкновение объектов Expand / Collapse
Автор
Сообщение
09.08.2006 3:00
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 19.08.2006 2:56
Сообщ.: 21, Visits: 181
Прошу спецов по Java подсказать или помочь доработать скрипт Зинковского (написан на Java и VBScript).
Описание: игра-стрелялка, переделанная на тему морского сайта. Сверху опускаются мины, острова. Среди них - один корабль гонится за другим и стреляет по нему торпедой. (Рисунки - пока наметки игры, заменю).
Задача: при попадании торпедой в убегающий корабль он должен взорваться, звук взрыва (explode.wav); при столкновении нападающего корабля с миной или островом - взрыв корабля и его звук.
Пока не могу решить проблему обнаружения столкновения объектов.
Страничка сайта с игрой здесь: http://www.randewy.ru/razn/spcshp.html
Скачать в заарх-ном виде можно здесь: http://www.randewy.ru/razn/sp.zip
Помогите, пожалуйста! Явы еще практически не знаю, книги упакованы в связи с переездом, знания не могу пополнить, за компом - урывками. А дело надо делать...
Сообщ. #902335
09.08.2006 9:31
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 30.12.2008 19:59
Сообщ.: 270, Visits: 2 383
Arsjusha (09.08.2006)

Пока не могу решить проблему обнаружения столкновения объектов.

Я в своё время писал так:

Вычисление позиции, координат корабля(Я брал среднюю точку по ширине и высоте). Далее вычисление позиции торпеды(тоже координаты, средней точки), если она выпущена.

Потом координаты коробля отнимаешь от координат торпеды и если расстояние минимум(до х<100 && y<100), то попал, если нет то или не доплыла или мимо.

----------------------------------
Я безработный...
Возьмите меня на работу. =)

Сообщ. #902336
10.08.2006 2:52
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 19.08.2006 2:56
Сообщ.: 21, Visits: 181
Спасибо, мысль понял! Днем попробую сделать. О результатах сообщу.
Сообщ. #902430
11.08.2006 1:32
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 19.08.2006 2:56
Сообщ.: 21, Visits: 181
Не, не получается! На страничке 2 скрипта: один на VBScript и именно он "управляет" стреляющим и убегающим кораблями и стрельбой торпедой; JavaScript обеспечивает движение мин и островков сверху вниз. Получается, что сначала надо решить проблему с VBScript. Я делал так:Dim z Dim v

z=(imgFr.style.Top+imgFr.style.Height/2)-(imgPrm.style.Top+imgPrm.style.Height/2)

(v с left не привожу для краткости)

if z<100 then document.all.base.src=explode.wav"

Где ошибка?

Сообщ. #902529
11.08.2006 1:34
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 19.08.2006 2:56
Сообщ.: 21, Visits: 181
Естественно, "explode.wav".
Сообщ. #902530
11.08.2006 9:05


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 27.03.2008 15:26
Сообщ.: 701, Visits: 7 028

z=(imgFr.style.Top+imgFr.style.Height/2)-(imgPrm.style.Top+imgPrm.style.Height/2)

(v с left не привожу для краткости)

if z<100 then document.all.base.src=explode.wav"

Где ошибка?

Нужно брать абсолютные значения, ведь торпеда может быть с "другой стороны" и тогда z будет отрицательным и всегда меньше 100!

не помню точно как правильно в коде получить абсолютное значение, но что-то типа:

z=Math.abs((imgFr.style.Top+imgFr.style.Height/2)-(imgPrm.style.Top+imgPrm.style.Height/2))
v=Math.abs((imgFr.style.Left+imgFr.style.Width/2)-(imgPrm.style.Left+imgPrm.style.Width/2))
if z<100 and v<100 then document.all.base.src="explode.wav"

Сообщ. #902532
12.08.2006 2:08
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 19.08.2006 2:56
Сообщ.: 21, Visits: 181
Насчет абсолютных значений все понял, конечно же, нужно именно так, спасибо.

Сейчас вот перепробовал массу вариантов с Вашими z и v, увы, не получается. Вижу, скрипт "живой", реагирует в зависимости от того, куда я приведенное Вами воткнул. Но в том-то, видно, и вся штуковина, что нужно знать, куда v и z разместить. Если бы "кликать" по рисунку, тогда бы да. А вот здесь как быть? Нужно, чтобы эта часть скрипта начинала работать при движении торпеды, увязать его с движениями торпеды и убегающего корабля.

Ладно, на бегу, видно, не получится. Попробую днем в спокойной обстановке разобраться. Если можете, подскажите еще, не силен, конечно, я по этой части.

Сообщ. #902614
13.08.2006 1:40
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 19.08.2006 2:56
Сообщ.: 21, Visits: 181
Проблему столкновения в VBScript решил:

z=abs(iFrY-iPrmY)
v=abs(iFrX-iPrmX)
if z<20 and v<20 then
document.all.base.src="explode.wav"
imgFR.Style.Visibility="hidden"
iPrmY=120
iPrmX=120
iPrmHY=5
iPrmHX=10
end if
Теперь подскажите, пожалуйста, как "соединить" работу VBScript и JavaScript. Надо, чтобы догоняющий корабль (VBScript) пристолкновении с миной или островом (JavaScript) взрывался.

Сообщ. #902631
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl