Вопрос - Ответ (Game Maker)
|
|
elis1112 | Дата: Понедельник, 07 Мая 2012, 10:51 | Сообщение # 3141 |
Igni et ferro
Сейчас нет на сайте
| kolyanez, вчера не успел залить, сейчас доделаю скину kashey, как я понял, надо что бы с случайными точками можно было работать? например x1=100 y1=100 x2=200 y2=200 и например если в этот квадрат попадал предмет это можно было определить?Добавлено (07.05.2012, 10:51) --------------------------------------------- kolyanez, http://zalil.ru/33194958 вот пример исправлен
|
|
| |
kolyanez | Дата: Понедельник, 07 Мая 2012, 16:18 | Сообщение # 3142 |
почетный гость
Сейчас нет на сайте
| Quote (elis1112) вот пример исправлен Респект! Как я сам не додумался
|
|
| |
kashey | Дата: Понедельник, 07 Мая 2012, 18:39 | Сообщение # 3143 |
постоянный участник
Сейчас нет на сайте
| Quote (elis1112) kashey, как я понял, надо что бы с случайными точками можно было работать? например x1=100 y1=100 x2=200 y2=200 и например если в этот квадрат попадал предмет это можно было определить? Именно. Я создаю произвольную область, с произвольным количеством точек. Эта область должна реагировать на действия игрока. Например запрещать движение по ней, или если это скажем вода, разрешить действие "плавать", но запрещать действие идти, требовать условие, при котором можно разрешить действие "плавать" и т.д.
|
|
| |
elis1112 | Дата: Понедельник, 07 Мая 2012, 18:51 | Сообщение # 3144 |
Igni et ferro
Сейчас нет на сайте
| kashey, http://rghost.ru/37960288
Сообщение отредактировал elis1112 - Понедельник, 07 Мая 2012, 19:17 |
|
| |
kashey | Дата: Понедельник, 07 Мая 2012, 19:49 | Сообщение # 3145 |
постоянный участник
Сейчас нет на сайте
| Спасибо конечно за желание, но до этого я и сам смог бы дойти
Проблема в том, что произвольная область на то и произвольная. В ней может быть пять, десять или двадцать точек, и образовывать такая фигура может помимо прямоугольника еще множество неправильных фигур, названия которых я не знаю Твой метод работает только с прямоугольными областями. Если бы все было так легко, я бы не задал вопрос тут.
|
|
| |
elis1112 | Дата: Понедельник, 07 Мая 2012, 19:51 | Сообщение # 3146 |
Igni et ferro
Сейчас нет на сайте
| kashey, да так и знал что это слишком просто, с этим будет потяжелее
|
|
| |
kashey | Дата: Понедельник, 07 Мая 2012, 20:05 | Сообщение # 3147 |
постоянный участник
Сейчас нет на сайте
| Проблема усложняется тем, что проверки на пересечение пространства между двумя точками недостаточно, это тоже можно реализовать. А как определить, что обьект находится внутри зоны, если он не пересекает ее границы? Есть у меня задумка, можно рисовать пространство из примитива в сурфейс, потом из сурфейса делать спрайт и присваивать его обьекту, с которым потом можно проверять столкновения напрямую. Но вопервых это слишком затратно, а во вторых спрайт может получиться внушительных размеров, что как бы нежелательно, ведь у гм и так проблемы с рендером.
|
|
| |
elis1112 | Дата: Понедельник, 07 Мая 2012, 20:15 | Сообщение # 3148 |
Igni et ferro
Сейчас нет на сайте
| пришел к мнению что стандартными методами гм этого добиться проблемно, гораздо проще нарисовать в любом рисовщики спрайт с нужными формами и задать нулевую прозрачность и прикрепить к объекту. Хотя посижу еще полчасика подумаю хотя такое чувство что в пустую
|
|
| |
kashey | Дата: Понедельник, 07 Мая 2012, 20:17 | Сообщение # 3149 |
постоянный участник
Сейчас нет на сайте
| Quote (elis1112) Хотя посижу еще полчасика подумаю хотя такое чувство что в пустую Я уже двое суток думаю Без знания вышки мне точно не обойтись...
|
|
| |
Chevron_7 | Дата: Понедельник, 07 Мая 2012, 20:42 | Сообщение # 3150 |
частый гость
Сейчас нет на сайте
| А попробуй сделать каждой точке радиус. И когда 2 радиуса будут пересекатся они создадут что-то похожее на "более мощную" зону. И когда объект будет касаться 2 радиусов будет происходить необходимое тебе действие. Надеюсь доступно обьяснил, посколько с этим у меня не очень.
Скоростной интернет - это когда файл проще загрузить заново чем найти на жестком диске...
Сообщение отредактировал Chevron_7 - Понедельник, 07 Мая 2012, 20:46 |
|
| |
kashey | Дата: Понедельник, 07 Мая 2012, 20:58 | Сообщение # 3151 |
постоянный участник
Сейчас нет на сайте
| Не подходит по одной простой причине. Я задаю произвольную область не от фонаря, а участки, которые не покрывает радиус окружности и участки которые он не захватывает для меня имеют ключевое значение.
|
|
| |
Йакуд | Дата: Понедельник, 07 Мая 2012, 21:23 | Сообщение # 3152 |
участник
Сейчас нет на сайте
| kashey, тебе нужно разбивать каждую область на треугольники. Для проверки вхождения точки в треугольник довольно просто написать. Куча формул есть джля этого.. Если рассматривать данный пример, то треугольника будут располагатясь вот так: И проверяем столкновение с каждым треугольником фигуры, если хотя бы у одного есть, то значит точка лежит на данном многоугольнике
"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso .blanco 2.0
|
|
| |
kashey | Дата: Понедельник, 07 Мая 2012, 22:18 | Сообщение # 3153 |
постоянный участник
Сейчас нет на сайте
| Гениально, блин! Как я сам не допер?!? Спасибо за подсказку!
|
|
| |
Chevron_7 | Дата: Вторник, 08 Мая 2012, 00:38 | Сообщение # 3154 |
частый гость
Сейчас нет на сайте
| Эммх... И все же я не допер. Можно примерчик?
Скоростной интернет - это когда файл проще загрузить заново чем найти на жестком диске...
|
|
| |
Йакуд | Дата: Вторник, 08 Мая 2012, 01:50 | Сообщение # 3155 |
участник
Сейчас нет на сайте
| Chevron_7, это ты про пересечение фигуры и точки имеешь ввиду?)
"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso .blanco 2.0
|
|
| |
Chevron_7 | Дата: Вторник, 08 Мая 2012, 08:36 | Сообщение # 3156 |
частый гость
Сейчас нет на сайте
| Да.
Скоростной интернет - это когда файл проще загрузить заново чем найти на жестком диске...
|
|
| |
kashey | Дата: Вторник, 08 Мая 2012, 11:22 | Сообщение # 3157 |
постоянный участник
Сейчас нет на сайте
| Вот достаточно интересная статья по вопросу, с не менее интересными комментариями. Особенно хорошо, что нет нужды строить фигуру из треугольников, алгоритм работает с фигурами любой формы.
|
|
| |
Chevron_7 | Дата: Вторник, 08 Мая 2012, 16:32 | Сообщение # 3158 |
частый гость
Сейчас нет на сайте
| А как сделать чтоб игрок мог сам устанавливать скорость мяча. Например, в комнате есть шар который движется вперед со скоростью 5, игрок нажимает <Enter>, всплывает окно (string), вводим туда, например 7 и скорость шара уже 7, а не 5 как было.
И еще вопрос - как кодом написать что мыш наводится на объект?
Скоростной интернет - это когда файл проще загрузить заново чем найти на жестком диске...
|
|
| |
Йакуд | Дата: Вторник, 08 Мая 2012, 17:16 | Сообщение # 3159 |
участник
Сейчас нет на сайте
| 1) speed = get_integer("Enter speed", ""); Или так еще можно.. speed = real(get_string("enter speed", "")); 2) сделай проверку вхождения курсора в определенную область Code if(mouse_x>x && mouse_x < x+width && mouse_y > y && mouse_y < y+height) // mouse on object else // mouse out object
"Хороший художник – копирует, гениальный – ворует!" — Pablo Picasso .blanco 2.0
Сообщение отредактировал Йакуд - Вторник, 08 Мая 2012, 17:21 |
|
| |
mster-doc | Дата: Вторник, 08 Мая 2012, 19:49 | Сообщение # 3160 |
частый гость
Сейчас нет на сайте
| Как фон вставить в игру?
"Программист это не професия, это стиль жизни" Мой папа))
|
|
| |