Понедельник, 18 Ноября 2024, 15:40

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (Game Maker)
t111Дата: Вторник, 16 Мая 2023, 20:36 | Сообщение # 6081
почетный гость
Сейчас нет на сайте
TLT, нет, не анахронизм. Обращал внимание на разбор этой проблемы. Спрайты с инета в png высокого качества.
В общем, вот скрин с IDE, здесь же скрин процедурной генерации облаков (чтоб было видно что дело не в спрайтах):



А вот как в браузере, причем в любом:


Края рваные

Не знаю что за баг, но проблема пока вылечилась переключением в полноэкранный режим f11, а потом возвращением из него, спрайты были норм сразу после этого. Еще буду тестить.

Добавлено (16 Мая 2023, 20:41)
---------------------------------------------
Цитата Game_maker_8 ()
Опции игры ->Графика ->Gx.Games->размер страницы текстуры выбираешь максимальный-> предварительный просмотр->применить-> ок
Должно помочь


Спасибо, применял, но не помогает. В чем дело, не понятно, переводом в полноэкранный режим и обратно решается пока. Баг видимо


как известно, встречают по
одежке, а провожают
uninstall'ом"



Сообщение отредактировал t111 - Вторник, 16 Мая 2023, 20:42
TLTДата: Среда, 17 Мая 2023, 15:19 | Сообщение # 6082
Сейчас нет на сайте
t111, Это называется "ресэмплирование с помощью фильтра". Если не масштабировать их на целые числа, получается искажение пикселей - это основы. Если размер окна варьируется, то растягивание может приводить к таким проблемам. Масштабирование растрового изображения не создаст образом больше деталей и всегда будет приводить к более размытой версии. При этом окончательный результат можно улучшить с помощью методов повышения резкости, а также он сильно зависит от используемого алгоритма.

Вот пример правильного использования: https://manual.yoyogames.com/GameMaker_Language/GML_Reference/Asset_Management/Sprites/Sprite_Instance_Variables/image_xscale.htm

Если проблема не меняется изменением настроек и выбора алгоритма Lanczos (лучший, но медленный) или другого используемого варианта, то стоит привести спрайты к стандарту разрешения, уменьшить масштаб в какой-нибудь проге апскейлинга спрайтов - вот тут человек приводит варианты. В том же редакторе конструктора:



Лично мне кажется, что просто криво подключены спрайты, криво обрабатываются через код, либо как-то противоречат настройкам использования элементам интерфейса и т.п. что размеры не согласованы, поэтому конвейер неправильно обрабатывает размеры слоёв конваса. Но это уже нужно выяснять имея проект - автору.



Дао, выраженное словами, не есть истинное Дао.
Miple252Дата: Воскресенье, 13 Августа 2023, 14:57 | Сообщение # 6083
был не раз
Сейчас нет на сайте
Извините за наверное нубский вопрос, но. Я создаю кликер, и при нажатии на объект должен меняться его кадр спрайта, т.е. нажал на объект один раз, он изменился, и в итоге если очень быстро кликать то можно получить анимацию, как это сделать?

Сообщение отредактировал Miple252 - Воскресенье, 13 Августа 2023, 15:01
AlexanderBekkerДата: Воскресенье, 13 Августа 2023, 17:54 | Сообщение # 6084
BekkerDev Studio
Сейчас нет на сайте
Цитата Miple252 ()
Извините за наверное нубский вопрос, но. Я создаю кликер, и при нажатии на объект должен меняться его кадр спрайта, т.е. нажал на объект один раз, он изменился, и в итоге если очень быстро кликать то можно получить анимацию, как это сделать?

В Create объекта:
Код
image_speed = 0;

В событии нажатия на объект:
Код
image_index = ++image_index % image_number;

Или:
Код
image_index++;
if (image_index >= image_number) image_index = 0;


Разработчик, композитор и издатель инди-игр в Steam.
Редактор карт: BekkerDev Level Editor 4
Страница разработчика в Steam
Паблик ВК: BekkerDev Studio
Miple252Дата: Воскресенье, 13 Августа 2023, 19:30 | Сообщение # 6085
был не раз
Сейчас нет на сайте
Спасибо!
С меня плюсик

Добавлено (13 Августа 2023, 19:38)
---------------------------------------------
AlexanderBekker, Слушай, не можешь ли подсказать как делать авто сохранение?
Просто по гайдам не выходит

AlexanderBekkerДата: Воскресенье, 13 Августа 2023, 20:12 | Сообщение # 6086
BekkerDev Studio
Сейчас нет на сайте
Цитата Miple252 ()
Слушай, не можешь ли подсказать как делать авто сохранение?
Просто по гайдам не выходит

Я давно уже с Game Maker не работаю. Раньше была возможность сохранять целое состояние игры функцией game_save(). Потом эту возможность вроде как убрали. Как сейчас реализовывают сохранения, я, к сожалению, не знаю. Но в гайдах по-любому это должно освещаться.


Разработчик, композитор и издатель инди-игр в Steam.
Редактор карт: BekkerDev Level Editor 4
Страница разработчика в Steam
Паблик ВК: BekkerDev Studio
Miple252Дата: Воскресенье, 13 Августа 2023, 20:23 | Сообщение # 6087
был не раз
Сейчас нет на сайте
AlexanderBekker, Ну ладно, спасибо

Добавлено (13 Августа 2023, 20:25)
---------------------------------------------
Как сделать сохранение? Идеально если при нажатии на объект будет происходить сохранение/загрузка. Смотрел гайды ничего не получилось, надеюсь на вас.
Уже решил самостоятельно.


Сообщение отредактировал Miple252 - Воскресенье, 13 Августа 2023, 23:10
AlexanderBekkerДата: Понедельник, 14 Августа 2023, 01:09 | Сообщение # 6088
BekkerDev Studio
Сейчас нет на сайте
Цитата Miple252 ()
Уже решил самостоятельно.

Поделился бы решением. Уверен, другим тоже было бы полезно.


Разработчик, композитор и издатель инди-игр в Steam.
Редактор карт: BekkerDev Level Editor 4
Страница разработчика в Steam
Паблик ВК: BekkerDev Studio
Miple252Дата: Понедельник, 14 Августа 2023, 15:50 | Сообщение # 6089
был не раз
Сейчас нет на сайте
Как сделать сохранение?
Я создаю кликер, и при запуске игры должна происходить загрузка данных, и соответственно сохранение при выключении. Создаём какой либо объект например, ob_load, после чего в событии create прописываем.
Код

ini_open("Название файла.ini") // открытие файла
переменная = ini_read_real("Секция", "Ключевое слово", значение по умолчанию) //загрузить число
переменная = ini_read_string("Секция", "Ключевое слово", значение по умолчанию) //загрузить текст
ini_close() // закрытие файла.

Обьясню как работает, ini_open(Название файла.ini), отвечает за открытие файла .ini, ini_read_real отвечает за то под какой раздел и под каким ключевым словом, (например место нахождение мышки), но загружает только числа. В свою же очередь ini_read_string работает так же но с текстом. И в конце, ini_close()(В скобка ничего писать не нужно!)
Теперь устанавливаем наш объект на главный рум, и получаем сохранение, ini_open самостоятельно создаст файл если его нету.
Что мы получаем, мы получаем рабочую загрузку, НО, что нам загружать если у нас нету сохранения?
Так что создадим ещё один объект со спрайтом, например, кнопку выхода, и в событии left pressed  пропишим следующий код:
Код
ini_open("Названия файла.ini")//Открывает файл. Важно! что бы у файлов были абсолютно одинаковые названия.
ini_write_real("Секция", "Ключевое слово", "то что мы записываем, например-xcord", например- x) //сохранить число
ini_write_string("Секция", "Ключевое слово", "то что мы записываем, например-ycord", например-y) //сохранить текст
ini_close()

Воуаля наш код готов, так же, можно сделать отдельные кнопки сохранения и загрузки, и там будет так же, просто как по мне легче сделать авто сохранение, в моём случае(создании кликера, я повесил его на объект на который мы кликаем, но здесь индивидуально).
Опишу тот случай если вы делаете на отдельных кнопках, вы поступаете так же, но и загрузку погружаете в left_pressed, или можно сделать это же с помощью нажатия клавиши, здесь так же.

Добавлено (14 Августа 2023, 15:56)
---------------------------------------------
Надеюсь кому то помог!
Если что то не понятно пишите сюда, отвечу как смогу


Сообщение отредактировал Miple252 - Понедельник, 14 Августа 2023, 15:57
MagicHeroДата: Понедельник, 14 Августа 2023, 19:07 | Сообщение # 6090
участник
Сейчас нет на сайте
Miple252, У меня в игре код с сохранением раздулся больше 2000 строк а загрузка вообще больше 7000.
И иногда можно сохранять просто в файл, только тут надо знать полный порядок охранения и загрузки. Делается через
Код

var file=file_text_open_read("имя_файла.txt");

item_1=file_text_read_real(file);  // что то загрузили
file_text_write_real(file,item_2);  // что то сохранили
file_text_writeln(file);  // для перехода в новую строку при сохранении
file_text_readln(file);   // для перехода в новую строку при загрузке

file_text_close(file);

Так можно сохранять хоть тысячи значений, что будет куда удобнее и без лишней инфы насчет названий. Но нужно знать точно порядок данных и при сохранении их все по новой переписывать.
И по поводу сохранения в твоем кликере то надеюсь по нажатию на обьект который кликаешь ты не все сохраняешь? Ведь сохранение в ini тем удобно что можно без проблем сохранить только одно нужное значение, например здоровье по кому кликаешь или что его уничтожил.
Miple252Дата: Понедельник, 14 Августа 2023, 19:54 | Сообщение # 6091
был не раз
Сейчас нет на сайте
Цитата MagicHero ()
var file=file_text_open_read("имя_файла.txt");

item_1=file_text_read_real(file);  // что то загрузили
file_text_write_real(file,item_2);  // что то сохранили
file_text_writeln(file);  // для перехода в новую строку при сохранении
file_text_readln(file);   // для перехода в новую строку при загрузке

file_text_close(file);

Верно, я сохраняю только одно, значение монет, сейчас игра на стадии разработки так что возможно измениться. Если честно, я не знал об этом способе, буду знать

Добавлено (14 Августа 2023, 19:58)
---------------------------------------------
Хочу добавить, я впервые работаю в game maker, так что для меня то что ты рассказал интересно, так же хотелось бы спросить, можно ли сделать фэйковую загрузку? Если да то как?( я не собираюсь издеваться над игроками, я хочу сделать я ко бы загрузку, перед самой игрой)


Сообщение отредактировал Miple252 - Понедельник, 14 Августа 2023, 20:08
AlexanderBekkerДата: Понедельник, 14 Августа 2023, 20:30 | Сообщение # 6092
BekkerDev Studio
Сейчас нет на сайте
Цитата Miple252 ()
Хочу добавить, я впервые работаю в game maker, так что для меня то что ты рассказал интересно, так же хотелось бы спросить, можно ли сделать фэйковую загрузку? Если да то как?( я не собираюсь издеваться над игроками, я хочу сделать я ко бы загрузку, перед самой игрой)

Есть несколько вариантов:
1) Круговой индикатор, где что-либо будет двигаться по окружности (например, шарик);
2) Простая мигающая надпись «Загрузка...» или что-то в этом духе;
3) Тематический фон во время загрузки, который будет отображаться пару секунд;
4) Обычная горизонтальная шкала, наполняющаяся до 100% (по сути, как та же полоска здоровья) с рандомным интервалом;

Чтобы скрасить фейковость загрузки и сделать её полезной, можно во время неё показывать полезные подсказки, игровые фичи и вкратце описывать работу механик. Например:
- Прицеливание увеличивает точность и урон вашего оружия
- Выполняйте больше заданий торговца, чтобы открыть новые товары
- Посадка культур на удобренной почве увеличивает их рост в 2 раза


Разработчик, композитор и издатель инди-игр в Steam.
Редактор карт: BekkerDev Level Editor 4
Страница разработчика в Steam
Паблик ВК: BekkerDev Studio


Сообщение отредактировал AlexanderBekker - Понедельник, 14 Августа 2023, 20:36
MagicHeroДата: Понедельник, 14 Августа 2023, 20:38 | Сообщение # 6093
участник
Сейчас нет на сайте
Miple252, Насчет сохранений то еще можно использовать json но после того как я узнал про ini то даже не стал разбираться с json. Максимум заинтересовался напрямую сохранением в файл т.к. было много значений порядок которых был известен.
Насчет фейковой загрузки то можешь просто рисовать через draw GUI на весь экран что захочешь. Главное сделать глубину depth самую низкую т.е. -9999 чтобы картинка была поверх всех и такую глубину больше в игре не использовать. В игре же блокировать все действия пока отображается эта фейковая загрузка.
Miple252Дата: Понедельник, 14 Августа 2023, 20:43 | Сообщение # 6094
был не раз
Сейчас нет на сайте
Меня интересует 3 вариант
И я уже нарисовал спрайт

Добавлено (14 Августа 2023, 20:44)
---------------------------------------------
Так что жду то как это можно сделать

Добавлено (14 Августа 2023, 20:45)
---------------------------------------------
А точнее, я нарисовал анимацию, примерно на 50 кадров, и не особо понимаю что нужно сделать для того что бы всё работало, а также я создаю кликер, так что не уверен что мне будет что сказать игроку,но что нибудь найду


Сообщение отредактировал Miple252 - Понедельник, 14 Августа 2023, 20:47
mihailshДата: Понедельник, 14 Августа 2023, 23:15 | Сообщение # 6095
был не раз
Сейчас нет на сайте
Цитата Miple252 ()
Меня интересует 3 вариант
И я уже нарисовал спрайт

Сделай пустую комнату, . Комната стартует первой. там будет твоя анимация, по окончанию которой переходишь на комнату меню или куда надо.


Сообщение отредактировал mihailsh - Понедельник, 14 Августа 2023, 23:20
Miple252Дата: Вторник, 15 Августа 2023, 00:49 | Сообщение # 6096
был не раз
Сейчас нет на сайте
mihailsh, А собственно как сделать переход?

Добавлено (15 Августа 2023, 00:50)
---------------------------------------------
Я по этому поводу знаю, но не знаю как сделать автоматический переход

mihailshДата: Вторник, 15 Августа 2023, 02:50 | Сообщение # 6097
был не раз
Сейчас нет на сайте
Цитата mihailsh ()
Я по этому поводу знаю, но не знаю как сделать автоматический переход


либо через событие end animation написать room_goto(нужная комната)
либо в step Ловить if (image_index >= image_number - 1) { room_goto() }
либо если вручную картинки меняются где-то. там же проверить что последняя и так же влепить переход.
MagicHeroДата: Вторник, 15 Августа 2023, 18:54 | Сообщение # 6098
участник
Сейчас нет на сайте
Miple252, Я же выше написал как сделать. Просто выводишь через draw GUI картинку на весь экран с загрузкой. Делаешь это в самом первом обьекте в комнате. В игре же блокировать все действия пока отображается эта фейковая загрузка. Там же можешь через alarm активировать убирание картинки и начало игры. Геморой с промежуточной комнатой по мне дикость, да и там все равно придется в игровой комнате делать какую то картинку также т.к. загрузка игры может длиться больше секунды и все это время игроку будет показана ИГРА но замороженная.
mihailshДата: Среда, 16 Августа 2023, 00:31 | Сообщение # 6099
был не раз
Сейчас нет на сайте
Цитата MagicHero ()
Геморой с промежуточной комнатой по мне дикость

Наоборот проще. Вообще ничего не надо делать. Нечего блокировать. Один объект, отработал, перешел дальше, да и еще атлас из папяти с этой анимацией слить, если большая, чтобы не занимал место. Позже можно туда же влепить какие-нить предварительные действия.

Добавлено (16 Августа 2023, 01:28)
---------------------------------------------

Цитата Miple252 ()
mihailsh, А собственно как сделать переход


https://youtu.be/hTh5UpFxx1E
Можно например так
MagicHeroДата: Среда, 16 Августа 2023, 11:00 | Сообщение # 6100
участник
Сейчас нет на сайте
mihailsh, Так проблема в том что игра может реально грузится больше одной секунды и тогда чтобы не видеть тупо замороженную картинку игры придется делать в первом обьекте ИГРОВОЙ комнаты картинку с загрузкой как выше я написал. И дополню не только в первом обькте игровой комнаты но и туже самую картинку показывать в той комнате где нажали кнопку перехода в игровую комнату, т.к. иначе игрок будет опять же видеть замороженную картинку. Поначалу когда в игре ничего нет, естественно все будет происходить моментально но чем больше будет игра, тем больше будет задержка или тупо заморозка игры.
Поиск:

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