Результаты поиска
| |
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 или базового) и как сделать так, что бы игра грузила последний начатый уровень.
|
|
| |
|