Четверг, 26 Декабря 2024, 15:57

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Сурфейсы в GMS
FYgamesДата: Воскресенье, 31 Мая 2020, 00:24 | Сообщение # 1
был не раз
Сейчас нет на сайте
Здравствуйте, я только начал изучать сурфейсы, и у меня возникла проблема с их перемещением.
Допустим, я хочу сделать большую тёмную комнату. Из-за её больших размеров, я привязываю к персонажу вид и освещение.

draw_sprite(s_light, image_index, player.x, player.y)

или

with (player) draw_sprite(s_light, image_index, x, y)

Чтобы оптимизировать, я делаю сурфейс только на видимой игроку части (он передвигается вместе с персонажем)

x = view_xview
y = view_yview

или

draw_surface(surf, view_xview, view_yview)

Но в таком случае, освещение может летать вне игрока, хотя в статичном состоянии всё работает нормально? Можно ли безболезненно перемещать сурфейс вместе с игроком?


Сообщение отредактировал FYgames - Воскресенье, 31 Мая 2020, 00:43
JAMPERДата: Воскресенье, 31 Мая 2020, 13:01 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Если я смог правильно понять твою проблему, то тебе надо отнимать от позиции player позицию вида. Должно выглядеть как-то так: draw_sprite(s_light, image_index, player.x - view_xview, player.y - view_yview). А вообще, почитай справку, там нормально так объясняют все особенности сурфейсов.

Zombie Day --- "Без шансов"
Space Conflict --- игра на Gamiron #8
Kill your brain --- игра на Gamiron #10
Eat them all!--- игра на Gamiron #12
FYgamesДата: Воскресенье, 31 Мая 2020, 14:14 | Сообщение # 3
был не раз
Сейчас нет на сайте
Цитата JAMPER ()
Если я смог правильно понять твою проблему, то тебе надо отнимать от позиции player позицию вида. Должно выглядеть как-то так: draw_sprite(s_light, image_index, player.x - view_xview, player.y - view_yview). А вообще, почитай справку, там нормально так объясняют все особенности сурфейсов.


Спасибо большое, помогло. В справке я тоже смотрел, ничего такого не нашёл.

Если кому будет интересно, почему так, то в сурфейсах координаты идут не от начала комнаты, а от начала сурфейса. То есть, если вы рисуете его в (512, 256), то координаты относительно комнаты будут (x - 512, y - 256), где х и у -- координаты рисования спрайта.


Сообщение отредактировал FYgames - Среда, 01 Июля 2020, 18:29
  • Страница 1 из 1
  • 1
Поиск:

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