Среда, 06 Ноября 2024, 02:13

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Застревания при повороте возле другого обьекта.
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)
У меня таже проблема!Но я уже привык))

Привык? К проблеме??? wacko

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 Подскажи пожалуйста как выглядит такой код?)

Не подскажу, ГМ не юзал smile Это были просто общие мысли.
Ну а вообще запрет поворачивать - самый простой и эффективный способ.


Всё гениальное просто. И хреново работает.
dikfairДата: Среда, 20 Июля 2011, 16:12 | Сообщение # 12
почетный гость
Сейчас нет на сайте
Quote (GECK)
запрет поворачивать - самый простой и эффективный способ.

Я бы хотел узнать код для него))
А то который я написал в итоге после первого столкновения не дает поворачиваться вообще.



Объект 25 - Исследовательская игра на выживание


Сообщение отредактировал dikfair - Среда, 20 Июля 2011, 16:12
Лер_да_РимДата: Среда, 20 Июля 2011, 16:29 | Сообщение # 13
заслуженный участник
Сейчас нет на сайте
dikfair,

Create:
Code
imdir = 0;


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, ой, сорри, забыл поставить знак отрицания перед уловием biggrin
Вот правильный код:
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, вариант без поворота маски не идёт тоже?

Дамы и господа, я представляю вам человека, которому н-а-с-р-а-т-ь! (с) Доктор Кокс.

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг