Пятница, 29 Марта 2024, 15:37

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » FYgames [16]
Результаты поиска
FYgamesДата: Суббота, 20 Августа 2022, 21:05 | Сообщение # 1 | Тема: Камеры GMS2
был не раз
Сейчас нет на сайте
Пытаюсь разобраться с настройкой камер в GMS2 через программирование, но почему-то не устанавливается объект, за которым надо следить. Вот примерный код:
Create
cam = camera_create_view(0, 0, size[0], size[1], 0, oCamera, -1, -1, size[0] / 2, size[1] / 2)

Draw
camera_apply(cam)
draw_text(30, 30, camera_get_view_target(view_current))

Камера рисуется в углу комнаты и надпись гласит "-1", то есть, объект не присвоен. Если же дописать

Create
camera_set_view_target(cam, oCamera)

То ничего не меняется, и -1 всё так же висит на экране. В чём может быть проблема?

UPD:
Понял, что проблема в том, что он не хочет запоминать объект через переменную. Если делать всё напрямую с camera_view, то всё работает.
Но всё же, в чём ошибка с переменными?

UPD 2:
Если удалить изначальную камеру и присвоить ей сделанную, то всё начинает работать. И единственное предположение, которое у меня есть на счёт того, что камера не следит через camera_apply, так это потому что объект слежения не передаётся.

Добавлено (20 Августа 2022, 22:09)
---------------------------------------------
Поигравшись с камерами, я понял, что "Передача настроек", о которой говорится в справке, касается только отрисовки камеры в данном месте, и выполняется только когда camera_apply выполняется кодом. Таким образом, если мы напишем код:

Draw
a = 0;
if (a mod 2 == 0)
{
camera_apply
(cam);
++a;
}

то данная камера будет отображаться лишь каждый второй кадр. Ну а чтобы полностью установить камеру, как я этого хотел раньше, то надо использовать
view_set_camera(view_port, camera)

Сообщение отредактировал FYgames - Суббота, 20 Августа 2022, 21:56
FYgamesДата: Суббота, 10 Июля 2021, 01:00 | Сообщение # 2 | Тема: Взаимодействие с экземплярами через сторонний объект
был не раз
Сейчас нет на сайте
Здравствуйте. Возник такой вопрос: при обращении к объекту через его имя, проверяется только один экземпляр.
Например, в комнате находится несколько экземпляров одного объекта object. Надо при помощи другого объекта data вывести id object'a. Пишем в data следующую строку:
draw_text(x, y,object.id);
Но таким образом выводится id только того экземпляра, чей id меньше остальных. Есть ли какой-нибудь встроенный способ взаимодействовать сразу со всеми объектами или всё же придётся сохранять id каждого нужного экземпляра отдельно?

Добавлено (10 Июля 2021, 01:44)
---------------------------------------------
Пока думал над проблемой, вспомнил об

with(object)

Но буду рад увидеть другие версии, ведь использовать with не очень удобно, особенно в условиях.

FYgamesДата: Понедельник, 18 Января 2021, 18:37 | Сообщение # 3 | Тема: Проблемы с столкновением в GMS
был не раз
Сейчас нет на сайте
Цитата JAMPER ()
Объект пола в обязательном порядке должен быть solid. Проверьте это значение в свойствах объекта или задайте его самостоятельно с помощью кода.

Да, это понятно.

Цитата JAMPER ()

В данном случае используется координата y вместо bbox_bottom. Почему так - написано в справке.

Это тоже понятно. Вопрос в том, почему ГМЛ говорит, что столкновение с полом есть, если игрок находится выше пола в полтора его размера?

P.S. 87 пикселей -- расстояние между верхней границей пола и нижней границей игрока.


Сообщение отредактировал FYgames - Понедельник, 18 Января 2021, 18:38
FYgamesДата: Понедельник, 18 Января 2021, 15:36 | Сообщение # 4 | Тема: Проблемы с столкновением в GMS
был не раз
Сейчас нет на сайте
Здравствуйте, у меня возникла проблема с использованием place_free();
Я хочу сделать платформер и пока только сделал модельку игрока и пол. Сразу же столкнулся с проблемой: проверка столкновения идёт не так, как надо. При написании place_free(x, bbox_bottom) он видит столкновение на 87 пикселей выше верхней границы пола.

Вот весь код:
gravity= 1;
if !place_free(x, bbox_bottom)
{
gravity= 0;
vspeed= 0;
move_outside_solid(90, 0)
}
FYgamesДата: Среда, 01 Июля 2020, 18:15 | Сообщение # 5 | Тема: Смешивание сурфейсов в GML
был не раз
Сейчас нет на сайте
Методом проб и ошибок, я нашёл нужную комбинацию.

1. Отрисовываем все сурфейсы в событии Draw.
2. В фоновом сурфейсе S1 (будь он светлее или темнее) пишем

draw_set_blend_mode_ext(bm_normal, bm_normal)

и после этого рисуем второй, видимый глазу, сурфейс S2. Таким образом мы приравниваем прозрачность общей части к прозрачности S2.

Таким же образом, мы можем вырезать прямоугольник из S1, достаточно просто не рисовать S2 в Draw.

Вот код:

surface_set_target(S1) // Рисуем фоновый сурфейс
draw_clear_alpha(c_black, alpha1)// Чистим, рисуем чёрный цвет прозрачности alpha
draw_set_blend_mode_ext(bm_normal, bm_normal) // настраиваем смешивание

draw_surface(S2, x, y) // Рисуем S2 внутри S1.

draw_set_blend_mode(bm_normal) // Возвращаемся к обычному смешиванию
draw_reset_target();// Заканчиваем работу с S1

surface_set_target(S2) // Рисуем нужный сурфейс
draw_clear_alpha(c_black, alpha2)// Чистим, рисуем чёрный цвет прозрачности alpha, такую же прозрачность будет иметь общая часть
draw_reset_target();// Заканчиваем работу с S2
FYgamesДата: Среда, 01 Июля 2020, 13:38 | Сообщение # 6 | Тема: Смешивание сурфейсов в GML
был не раз
Сейчас нет на сайте
Здравствуйте, недавно начал изучать сурфейсы, и возникла одна проблема.

У меня есть два сурфейса, отвечающие за темноту: один (S1) движется за игроком и постоянно меняется, другой (S2) статичный. Оба чёрного цвета, я просто меняю прозрачность. Сама проблема заключается в том, что когда S1 наезжает на S2, они смешиваются, в итоге становясь темнее. Как мне сделать так, чтобы в их общей зоне общее значение альфа было равно значению самого тёмного сурфейса? По возможности прошу лучше объяснить смешивание сурфейсов друг с другом.

P.S. я пытался смешивать через draw_set_blend_mode с разными константами и вставляя его туда же, где отрисовываются все сурфейсы, и туда, где происходит действие в самих сурфейсах (то есть внутри системы surface_set_target → surface_reset_target).


Сообщение отредактировал FYgames - Среда, 01 Июля 2020, 13:39
FYgamesДата: Воскресенье, 31 Мая 2020, 14:14 | Сообщение # 7 | Тема: Сурфейсы в GMS
был не раз
Сейчас нет на сайте
Цитата 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
FYgamesДата: Воскресенье, 31 Мая 2020, 00:24 | Сообщение # 8 | Тема: Сурфейсы в GMS
был не раз
Сейчас нет на сайте
Здравствуйте, я только начал изучать сурфейсы, и у меня возникла проблема с их перемещением.
Допустим, я хочу сделать большую тёмную комнату. Из-за её больших размеров, я привязываю к персонажу вид и освещение.

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
FYgamesДата: Воскресенье, 17 Июня 2018, 20:36 | Сообщение # 9 | Тема: Помогите с введением данных
был не раз
Сейчас нет на сайте
Я делаю аркаду и у меня вот какая проблема: когда игрок бьёт один из своих рекордов, я прошу его ввести имя для таблицы лидеров. Если игра в оконном режиме, то всё нормально, но когда она стоит на фулскрине, то сворачивается до окна, а внутри всё становится белым.

Помогите пожалуйста решить эту проблему(я использую get_string()).


Сообщение отредактировал FYgames - Воскресенье, 17 Июня 2018, 20:36
FYgamesДата: Четверг, 28 Сентября 2017, 15:51 | Сообщение # 10 | Тема: Выстрелы в TDS
был не раз
Сейчас нет на сайте
Помогите, пожалуйста, сделать так, что бы пуля выходила из дула.

Я знаю, что это делается с помощью lengthdir_x(_y) и для этого нужно знать расстояние до точки и изменение угла. Я пишу код и у меня получается сделать так, что бы выстрел происходил из определённой точки, но при повороте спрайта пуля создаётся на предыдущем. Главный мой вопрос: "Как сделать так, что бы пуля создавалась в определённой точке спрайта?" или "Как изменить положение создания пули поворота относительно поворота спрайта?".
FYgamesДата: Пятница, 26 Мая 2017, 19:48 | Сообщение # 11 | Тема: Можно ли в GML выделить сразу все кнопки клавиатуры?
был не раз
Сейчас нет на сайте
Можно ли в GML выделить сразу все кнопки клавиатуры,кроме одной?
FYgamesДата: Вторник, 25 Апреля 2017, 18:03 | Сообщение # 12 | Тема: Помогите с переменными в GMS.
был не раз
Сейчас нет на сайте
Я хочу сделать код с глобальной переменной l. Я писал коды с global.l и globalvar l. Ошибка появлялась в последней строке. Вот код:

globalvar l
instance_deactivate_all(true);
instance_create(x,y,speak);
if keyboard_check_pressed(vk_space)
{
instance_activate_all();
instance_destroy();
}
ini_open('a.l')
l = ini_read_string('lang','lang','')
ini_close()
if l = *значение, которое давалось раньше(Z)* {instance_destroy()}

Вот на всякий случай код , откуда берется переменная:

*При нажатии ЛКМ*
globalvar l
ini_open('a.l')
l = ini_write_string('lang','lang','Z')
ini_close()

Когда я запускаю игру и открываю уровень с чтением переменной, то GMS пишет что нет такой переменной(Not set before reading it).
Помогите пожалуйста .


Сообщение отредактировал FYgames - Вторник, 25 Апреля 2017, 18:04
FYgamesДата: Воскресенье, 02 Апреля 2017, 17:43 | Сообщение # 13 | Тема: Куда выложить игру?
был не раз
Сейчас нет на сайте
Ребят, посоветуйте куда выложить игру на ПК, не считая стима?
FYgamesДата: Воскресенье, 12 Марта 2017, 10:11 | Сообщение # 14 | Тема: Иконка игры в game maker.
был не раз
Сейчас нет на сайте
Как сделать так, чтобы при установке игры загружалась и её иконка?

Сообщение отредактировал FYgames - Воскресенье, 12 Марта 2017, 10:20
FYgamesДата: Пятница, 17 Февраля 2017, 13:35 | Сообщение # 15 | Тема: Сохранения в Game Maker Studio.
был не раз
Сейчас нет на сайте
Цитата Hobo_Gus ()
Ну так в тот же ini записать номер уровня на пример

Так я же сами сохранения тоже не могу сделать.
FYgamesДата: Четверг, 16 Февраля 2017, 12:13 | Сообщение # 16 | Тема: Сохранения в Game Maker Studio.
был не раз
Сейчас нет на сайте
Я знаю, таких тем много и я много читал, но я не могу сделать сохранение в игре. Я делаю игру, где никакого счетчика нет. Только одни уровни. Я уже наверное недели 2-3 пытаюсь их сделать, но не получается. Расскажите пожалуйста, какие виды сохранений бывают(кроме ini или базового) и как сделать так, что бы игра грузила последний начатый уровень.
Форум игроделов » Записи участника » FYgames [16]
  • Страница 1 из 1
  • 1
Поиск:

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