Вторник, 28 Сентября 2021, 14:32

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » FYgames [15]
Результаты поиска
FYgamesДата: Суббота, 10 Июля 2021, 01:00 | Сообщение # 1 | Тема: Взаимодействие с экземплярами через сторонний объект
был не раз
Сейчас нет на сайте
Здравствуйте. Возник такой вопрос: при обращении к объекту через его имя, проверяется только один экземпляр.
Например, в комнате находится несколько экземпляров одного объекта 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 | Сообщение # 2 | Тема: Проблемы с столкновением в GMS
был не раз
Сейчас нет на сайте
Цитата JAMPER ()
Объект пола в обязательном порядке должен быть solid. Проверьте это значение в свойствах объекта или задайте его самостоятельно с помощью кода.

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

Цитата JAMPER ()

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

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

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


Сообщение отредактировал FYgames - Понедельник, 18 Января 2021, 18:38
FYgamesДата: Понедельник, 18 Января 2021, 15:36 | Сообщение # 3 | Тема: Проблемы с столкновением в 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 | Сообщение # 4 | Тема: Смешивание сурфейсов в 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 | Сообщение # 5 | Тема: Смешивание сурфейсов в 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 | Сообщение # 6 | Тема: Сурфейсы в 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 | Сообщение # 7 | Тема: Сурфейсы в 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 | Сообщение # 8 | Тема: Помогите с введением данных
был не раз
Сейчас нет на сайте
Я делаю аркаду и у меня вот какая проблема: когда игрок бьёт один из своих рекордов, я прошу его ввести имя для таблицы лидеров. Если игра в оконном режиме, то всё нормально, но когда она стоит на фулскрине, то сворачивается до окна, а внутри всё становится белым.

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


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

Я знаю, что это делается с помощью lengthdir_x(_y) и для этого нужно знать расстояние до точки и изменение угла. Я пишу код и у меня получается сделать так, что бы выстрел происходил из определённой точки, но при повороте спрайта пуля создаётся на предыдущем. Главный мой вопрос: "Как сделать так, что бы пуля создавалась в определённой точке спрайта?" или "Как изменить положение создания пули поворота относительно поворота спрайта?".
FYgamesДата: Пятница, 26 Мая 2017, 19:48 | Сообщение # 10 | Тема: Можно ли в GML выделить сразу все кнопки клавиатуры?
был не раз
Сейчас нет на сайте
Можно ли в GML выделить сразу все кнопки клавиатуры,кроме одной?
FYgamesДата: Вторник, 25 Апреля 2017, 18:03 | Сообщение # 11 | Тема: Помогите с переменными в 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 | Сообщение # 12 | Тема: Куда выложить игру?
был не раз
Сейчас нет на сайте
Ребят, посоветуйте куда выложить игру на ПК, не считая стима?
FYgamesДата: Воскресенье, 12 Марта 2017, 10:11 | Сообщение # 13 | Тема: Иконка игры в game maker.
был не раз
Сейчас нет на сайте
Как сделать так, чтобы при установке игры загружалась и её иконка?

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

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

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