Застревания при повороте возле другого обьекта.
|
|
dikfair | Дата: Среда, 20 Июля 2011, 01:52 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| Прошу прощение если такая тема была уже. Я искал похожие темки так и не нашел ответ. А ну и за грамотность прошу прощение) Допустим у меня объект, форма которого прямоугольник. Когда он стоит около стены и поворачивается, то часть его остается в стене что не дает возможности двигаться до тех пор пока не станешь в такое положение, в каком ни какой кусочек прямоугольного объекта не находиться "в стене". Подскажите пожалуйста какое либо действие, которое помогло бы решить эту проблему. Прямоугольник из себя это почти 2 квадрата. То есть круглая маска может охватить лишь половину. А при прямоугольной маске все та же проблема. Может есть какой-то код который запрещает при прикосновении делать поворот но это глупо так как моя игра от части гонка. Помогите пожалуйста))!
Объект 25 - Исследовательская игра на выживание
|
|
| |
MyACT | Дата: Среда, 20 Июля 2011, 07:41 | Сообщение # 2 |
C# CODERS
Сейчас нет на сайте
| У меня таже проблема!Но я уже привык))
3дэшечки: https://sketchfab.com/myactyindie Курентли воркс он: https://myacty.itch.io/raskopnik
|
|
| |
Лер_да_Рим | Дата: Среда, 20 Июля 2011, 07:50 | Сообщение # 3 |
заслуженный участник
Сейчас нет на сайте
| Quote (MyACT) У меня таже проблема!Но я уже привык)) Привык? К проблеме???
dikfair, попробуй поворачивать спрайт не поворачивая маску. Ты image_angle затрагиваешь?
Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.
|
|
| |
GECK | Дата: Среда, 20 Июля 2011, 09:03 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| Quote (dikfair) Когда он стоит около стены и поворачивается, то часть его остается в стене М..а если при этом выталкивать его из стены?
Всё гениальное просто. И хреново работает.
|
|
| |
Лер_да_Рим | Дата: Среда, 20 Июля 2011, 09:42 | Сообщение # 5 |
заслуженный участник
Сейчас нет на сайте
| GECK, Я тоже так поначалу подумал, но потом решил, что лучше вообще в эту стену не залезать, чем потом выпихиваться)
Вообще, если говорить именно о гонке, выталкивание сойдёт как отскок от края трассы...
Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.
|
|
| |
Dva_Kota | Дата: Среда, 20 Июля 2011, 10:46 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| Quote (dikfair) Может есть какой-то код который запрещает при прикосновении делать поворот
Я именно так и решил проблему: запретил поворот когда рядом стена.
Вот здесь есть описание решения проблемы и пример:
Создание машины с механической кпп
Новый пример инвентаря! /20.06.2012/
Energy Wars
Сообщение отредактировал Dva_Kota - Среда, 20 Июля 2011, 10:47 |
|
| |
FadeBaker | Дата: Среда, 20 Июля 2011, 14:13 | Сообщение # 7 |
JavaSE Game Developer
Сейчас нет на сайте
| dikfair, можно сделать так: когда объект косоугольно движется к стене, то поворачивать его автоматически. Вот пример кода:
Code if place_free(x + lengthdir_x(speed, direction+90), y + lengthdir_y(speed, direction+90)) { direction += 30; }
Так же и с другой стороны.
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
Сообщение отредактировал vasyan555 - Среда, 20 Июля 2011, 14:14 |
|
| |
dikfair | Дата: Среда, 20 Июля 2011, 15:38 | Сообщение # 8 |
почетный гость
Сейчас нет на сайте
| Quote (GECK) а если при этом выталкивать его из стены? GECK Подскажи пожалуйста как выглядит такой код?)Добавлено (20.07.2011, 15:38) ---------------------------------------------
Quote (Лер_да_Рим) dikfair, попробуй поворачивать спрайт не поворачивая маску. Ты image_angle затрагиваешь? Чесно, я не знаю как сделать так чтобы поворачивался только спрайт без маски.
Объект 25 - Исследовательская игра на выживание
|
|
| |
Brute_Force | Дата: Среда, 20 Июля 2011, 15:47 | Сообщение # 9 |
был не раз
Сейчас нет на сайте
| Quote (dikfair) Чесно, я не знаю как сделать так чтобы поворачивался только спрайт без маски. Просто сделай маску круглой, и не морочь себе голову.
|
|
| |
dikfair | Дата: Среда, 20 Июля 2011, 16:08 | Сообщение # 10 |
почетный гость
Сейчас нет на сайте
| Quote (Brute_Force) Просто сделай маску круглой, и не морочь себе голову. У меня в прямоугольнике влазит почти 2 квадрата. То есть половина будет смотреться очень не красиво. И не возможно пулей попасть в машину так как часть машины получается - "безтелесной"
Добавлено (20.07.2011, 16:08) --------------------------------------------- Quote (vasyan555) dikfair, можно сделать так: когда объект косоугольно движется к стене, то поворачивать его автоматически. Вот пример кода: Поставил код, в итоге машинка танцует мамбу))) (Кружиться вокруг какойто невидимой оси, и не куда не едет)
Объект 25 - Исследовательская игра на выживание
Сообщение отредактировал dikfair - Среда, 20 Июля 2011, 16:09 |
|
| |
GECK | Дата: Среда, 20 Июля 2011, 16:08 | Сообщение # 11 |
заслуженный участник
Сейчас нет на сайте
| Quote (dikfair) GECK Подскажи пожалуйста как выглядит такой код?) Не подскажу, ГМ не юзал Это были просто общие мысли. Ну а вообще запрет поворачивать - самый простой и эффективный способ.
Всё гениальное просто. И хреново работает.
|
|
| |
dikfair | Дата: Среда, 20 Июля 2011, 16:12 | Сообщение # 12 |
почетный гость
Сейчас нет на сайте
| Quote (GECK) запрет поворачивать - самый простой и эффективный способ. Я бы хотел узнать код для него)) А то который я написал в итоге после первого столкновения не дает поворачиваться вообще.
Объект 25 - Исследовательская игра на выживание
Сообщение отредактировал dikfair - Среда, 20 Июля 2011, 16:12 |
|
| |
Лер_да_Рим | Дата: Среда, 20 Июля 2011, 16:29 | Сообщение # 13 |
заслуженный участник
Сейчас нет на сайте
| dikfair,
Create:
Step: Code imdir = point_direction(x, y, mouse_x, mouse_y);
Draw: Code draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, imdir, image_blend, image_alpha); Добавлено (20.07.2011, 16:29) --------------------------------------------- Это если не поворачивать маску.
Quote (GECK) М..а если при этом выталкивать его из стены При столкновении x=xprevious, y=yprevious. Но я не уверен в этом коде.
Quote (dikfair) А то который я написал в итоге после первого столкновения не дает поворачиваться вообще. Метод от Dva_Kota не помог?
Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.
|
|
| |
dikfair | Дата: Среда, 20 Июля 2011, 18:19 | Сообщение # 14 |
почетный гость
Сейчас нет на сайте
| Quote (Лер_да_Рим) Метод от Dva_Kota не помог? Не, я не смог найти там мне нужное)
Объект 25 - Исследовательская игра на выживание
|
|
| |
FadeBaker | Дата: Среда, 20 Июля 2011, 19:44 | Сообщение # 15 |
JavaSE Game Developer
Сейчас нет на сайте
| dikfair, ой, сорри, забыл поставить знак отрицания перед уловием Вот правильный код: Code if !place_free(x + lengthdir_x(speed, direction+90), y + lengthdir_y(speed, direction+90)) { direction += 30; //Здесь может быть и direction -= 30, точно не помню. Поэкспериментируй. }
Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
Сообщение отредактировал vasyan555 - Среда, 20 Июля 2011, 19:47 |
|
| |
Dva_Kota | Дата: Среда, 20 Июля 2011, 21:13 | Сообщение # 16 |
заслуженный участник
Сейчас нет на сайте
| Quote (dikfair) Не, я не смог найти там мне нужное) Я ведь ссылку дал именно на то сообщение в котором ответ на твой вопрос и пример (второй ответ в той теме).
Новый пример инвентаря! /20.06.2012/
Energy Wars
|
|
| |
dikfair | Дата: Четверг, 21 Июля 2011, 03:46 | Сообщение # 17 |
почетный гость
Сейчас нет на сайте
| Quote (Dva_Kota) Я ведь ссылку дал именно на то сообщение в котором ответ на твой вопрос и пример (второй ответ в той теме). Прости, я вернулся вверх и начал искать пока вообще все не запуталось. Я и вышел. А теперь почитал твое сообщение и увидел. Утром проверю способ. Спасибо.
Объект 25 - Исследовательская игра на выживание
|
|
| |
NeZnayu | Дата: Четверг, 21 Июля 2011, 04:44 | Сообщение # 18 |
__танцуй!__
Сейчас нет на сайте
| Можно проверять collision_line() по бокам от машины.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
dikfair | Дата: Четверг, 21 Июля 2011, 18:29 | Сообщение # 19 |
почетный гость
Сейчас нет на сайте
| Quote (vasyan555) if !place_free(x + lengthdir_x(speed, direction+90), y + lengthdir_y(speed, direction+90)) { direction += 30; //Здесь может быть и direction -= 30, точно не помню. Поэкспериментируй. } Спрайтик, в другую сторону поворачиваться)Добавлено (21.07.2011, 18:29) ---------------------------------------------
Quote (Лер_да_Рим) Quote (GECK) М..а если при этом выталкивать его из стены
При столкновении x=xprevious, y=yprevious. Но я не уверен в этом коде.
Quote (dikfair) А то который я написал в итоге после первого столкновения не дает поворачиваться вообще. Нечего не происходит
Quote (Dva_Kota) Вот здесь есть описание решения проблемы и пример:
Создание машины с механической кпп Код не сработал выбило ошибку. Я решил одну оно в вторую выбило. И так раза 4 пока дошел до ошибки. Которая сложила мой мозг в нокаут. Всем спасибо кто отвечал. Я оставляю проблему нерешенной. Если будут еще идеи не прочь послушать.
Объект 25 - Исследовательская игра на выживание
|
|
| |
Лер_да_Рим | Дата: Четверг, 21 Июля 2011, 19:25 | Сообщение # 20 |
заслуженный участник
Сейчас нет на сайте
| dikfair, вариант без поворота маски не идёт тоже?
Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.
|
|
| |