Автор | Сообщение |
|
| |
Пост N: 274
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток
Награды:
|
|
Отправлено: 03.01.09 00:07. Заголовок: [Game Maker] Драв лайн
В общем меня интерисует как с помощью этой штуки сделать лазер с отражением от стен или еще каких нибудь предметов Думать лень мож кто знает
|
|
|
Ответов - 18
[только новые]
|
|
|
| |
Пост N: 500
Зарегистрирован: 07.05.07
Откуда: Россия, Орехово-Зуево
|
|
Отправлено: 03.01.09 00:41. Заголовок: Эм...Если я так поня..
Эм...Если я так понял, то тебе нужен закон отражения, типа под каким углом линия идет, под таким углом и оражается..да?:)
|
|
|
|
| |
Пост N: 275
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток
Награды:
|
|
Отправлено: 03.01.09 00:45. Заголовок: Типа того)..
Типа того)
|
|
|
|
| |
Пост N: 501
Зарегистрирован: 07.05.07
Откуда: Россия, Орехово-Зуево
|
|
Отправлено: 03.01.09 00:47. Заголовок: А. Ну..сейчас может ..
А. Ну..сейчас может быть что-нибудь попробую сделать..если так все понял:) только на ночь глядя может выйти и туфта какая-нибудь
|
|
|
|
| |
Пост N: 276
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток
Награды:
|
|
Отправлено: 03.01.09 01:00. Заголовок: хм у меня наночь обы..
хм у меня наночь обычно наоборот прет) тока там с пояснениями чтоб я понял)
|
|
|
|
| |
Пост N: 502
Зарегистрирован: 07.05.07
Откуда: Россия, Орехово-Зуево
|
|
Отправлено: 03.01.09 01:04. Заголовок: Не знаю то это аль н..
Не знаю то это аль нет..но вот это я нашел в одном из своих проектов (это я скопировал из какого-то исходника): Создаешь скрипт ХХХ. Пишешь там: var i,j; i=abs(argument0-argument1); j=360-max(argument0,argument1)+min(argument0,argument1); if i=j return(180) else if i<j return(sign(-lengthdir_y(1,argument1-argument0))*i); else return(sign(-lengthdir_y(1,argument1-argument0))*j); Потом создаешь объект, который отражается. В событии столкновения с объектом, ОТ КОТОРОГО отражатеся пишешь: var dir,k; dir=XXX(other.direction,direction); //show_message(string(dir)); k=sign(lengthdir_x(1,dir)*(-lengthdir_y(1,dir)));if k=0 then k=1; direction=direction+k*180-k*min(abs(dir),180-abs(dir))*2; /*if colid!=id then { if other.direction<(direction+90) and other.direction>(direction-90) then { instance_destroy() } else { direction=other.direction; colid=other.id; alarm[0]=10; } } __________________________________________________ Точно не помню с какого примера взял, но пример вроде с миззустика был:) Это поможет создать правдободобный более менее закон отражения. А если ты заменишь объект, который отражается, линией, то и отражатся линия будет..Примерно так:)
|
|
|
|
| |
Пост N: 277
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток
Награды:
|
|
Отправлено: 03.01.09 01:19. Заголовок: сейчас попробую...а ..
Нет это немного нето.... что же придется самому думать....позже, посплю ато у меня уже пол 9 утра
|
|
|
|
| |
Пост N: 1708
Зарегистрирован: 03.06.06
Откуда: Россия, Санкт-Петербург
Замечания:
|
|
Отправлено: 03.01.09 02:43. Заголовок: Учебник по физике и ..
Учебник по физике и ффперёд, магийо синусофф и косинусофф)))
|
|
|
|
| |
Пост N: 380
Зарегистрирован: 06.08.06
Откуда: Беларусь, Гродно
|
|
Отправлено: 03.01.09 02:48. Заголовок: А почему бы не сдела..
А почему бы не сделать объект из центра которого появляются другие объекты-точки (цвета лазера). Эти точки исчезают через полсекунды. Объект куда легче заставить отражаться. Всётаки в стандартных действиях есть. ПРИМЕР (gm6) http://realgames.org.ru/lazer.gm6
|
|
|
|
| |
Пост N: 279
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток
Награды:
|
|
Отправлено: 03.01.09 13:18. Заголовок: http://zuko.sk6.ru/f..
вот такую штуку мне нужно замутить
|
|
|
|
| New Art Games дизайнер, сценарист
|
Пост N: 2071
Зарегистрирован: 19.09.05
Откуда: Россия
Награды:
|
|
Отправлено: 03.01.09 13:52. Заголовок: так как поверхность ..
так как поверхность может быть наклонной, то просчитать точное отражение не получится, так как перпендикуляр от поверхности сложно будет вычеслить. на помощь думаю может подойти следующая фича: 1---из обьекта пускающего лазерный луч запускаетццо шарик (создали отметку 1 в лазере) в нужную сторону с большой скоростью.. 2---при сталкновении шарика с границей (создали отметку 2) рисуем линию от отметки 1 к 2. 3---отметке 1 присваиваем 2 (1.х=2.х, 1.у=2.у) 4---пока не дошли до конца или не прошли нужное растояние выполняем 2 и 3 так как в ГМ отскок обьектов выполняется довольнотаки провдоподобно (в гм плоскость спрайта и перпендикуляр сам считается как надо) то отражение будет точным если объяснил непонятно могу пример сваять =)
|
|
|
|
| New Art Games дизайнер, сценарист
|
Пост N: 2072
Зарегистрирован: 19.09.05
Откуда: Россия
Награды:
|
|
Отправлено: 03.01.09 13:55. Заголовок: а.. ещё =) если же э..
а.. ещё =) если же это бильярд например и там поверхность стенок реально ровная (не как на рисунке) а именно в игре прям ровно вертикальные или горизонтальные стены без изгибов то можно будет подогнать скриптег отскока работать будет побыстрее да и может поточнее чем первый вариант
|
|
|
|
|
| |
Пост N: 280
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток
Награды:
|
|
Отправлено: 03.01.09 15:19. Заголовок: Первый вариант прихо..
Первый вариант приходил мне в голову но вот придется каждый шаг выстреливать шарик... -поверхность ровная.. Нужно проверять пока хх не равно х желтой точки и уу не равно у желтой точки { номер+=1 пока не стена { хх+=косинус(угол) уу+=синус(угол) } вэйпоинтХ[номер]=хх вэйпоинтУ[номер]=уу вот первый вэйпоинт есть потом надо само отражение просчитать както }
|
|
|
|
| New Art Games дизайнер, сценарист
|
Пост N: 2073
Зарегистрирован: 19.09.05
Откуда: Россия
Награды:
|
|
Отправлено: 03.01.09 17:23. Заголовок: вобщем посмотрел я с..
вобщем посмотрел я с отстрелом шариков, некатит. так как скорость маленькая очень а если скорость движения шариков увеличить то начинаются проблемы со столкновением. а именно последние не регистрируется вечерком гляну с прямыми стенками что можно придумать
|
|
|
|
| |
Пост N: 325
Зарегистрирован: 21.04.07
Откуда: Россия, город Волосат
|
|
Отправлено: 03.01.09 17:46. Заголовок: Ev-genius пишет: а ..
Ev-genius пишет: цитата: | а если скорость движения шариков увеличить то начинаются проблемы со столкновением. |
| может тогда коллижон_лайн юзать?..
|
|
|
|
| New Art Games дизайнер, сценарист
|
Пост N: 2074
Зарегистрирован: 19.09.05
Откуда: Россия
Награды:
|
|
Отправлено: 03.01.09 20:08. Заголовок: на счёт колижн лайн,..
на счёт колижн лайн, всё было бы немного проще если бы функция возвращала х,у координат пересечения =) или хотябы длину получившейся линии. но так как этого нет пришлось проверять каждый пиксель... несмотря на это работает очень шустро и при 20-30 просчётов отражений =) правда мой пример работает только для горизонтальных и вертикальных стен, для наклонных нужно будет чтото другое придумать или доработать пример под конкретную задачу как обычно немного увлекся и помимо решения напихал туда ещё кучу ненужности, зато нагляднее в примере будет Ссылку забыл: Клик
|
|
|
|
| New Art Games дизайнер, сценарист
|
Пост N: 2075
Зарегистрирован: 19.09.05
Откуда: Россия
Награды:
|
|
Отправлено: 03.01.09 20:43. Заголовок: Spider пишет: Всёта..
Spider пишет: кстати про это и говорил, если в примере спайдера увеличить скорость на 9,10....15...итд (у меня например) то отражения получаются совсем непредсказуемыми =) увеличив на 20, отражений совсем нету.. в моем примере точность до 1 пикселя, а именно на углах в последнем пикселе обьекта, проблемки с просчётом иногда бывают, может кто апдейтит, гляньте
|
|
|
|
| |
Пост N: 282
Зарегистрирован: 26.06.07
Откуда: Россия, Владивосток
Награды:
|
|
Отправлено: 03.01.09 21:11. Заголовок: Ev-geniusмолодец пря..
Ev-genius молодец прям то что нужно сделал уважуха.... спасибо большое ....................... Разобрался в скрипте полностью у тебя офигенный мозг сам бы я такое дня три думал) Спасибо еще раз) поправил правда первые две строчки) dir=point_direction(x,y,mouse_x,mouse_y);//угол поворота wx=cos(degtorad(dir));//x на который выполнять проверку wy=sin(degtorad(dir));//y на который выполнять проверку вместо dir=point_direction(mouse_x,mouse_y,x,y)-180; wx=cos(dir*pi/180); wy=sin(dir*pi/180); выложи пример на мизистик
|
|
|
|
| New Art Games дизайнер, сценарист
|
Пост N: 2076
Зарегистрирован: 19.09.05
Откуда: Россия
Награды:
|
|
Отправлено: 04.01.09 00:04. Заголовок: Да незачто, просто и..
Да незачто, просто интересно чтото необычное реализовать на счёт исправлений, в хелпе ГМ вроде описано всё, просто не всегда замечаешь нужные функции да и сам бывает тормозишь, вон вижу у себя -180, а достаточно было операнды местами поменять))))) Коменты правда забыл, да и лишнего туда налепил, половина вообще не нужна =) ток выкладывать куда либо лень, пока это дело лежит у меня на нм, еще старые примерчики найду снова выложу, пригодятся может кому
|
|
|
|