Game Maker - создание игр | HellRoom Games
Декабрь 13, 2024, 20:19:43 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Размытие пикселей  (Прочитано 1060 раз)
0 Пользователей и 1 Гость смотрят эту тему.
NНN
Посетитель
**

Репутация: 0
Offline Offline

API: GameMaker Studio 2
Сообщений: 15


« : Июнь 16, 2023, 13:13:08 »

У меня есть сетка, и когда я отдаляю камеру (camera_set_view_size) она начинает плыть. Есть какая-нибудь функция для размывания пикселей и вообще для исправления этого эффекта?

[вложение удалено Администратором]
Записан
ярик
Активный участник
*****

Репутация: 21
Offline Offline

Награды:
За постоянность! [10 дней на форуме]
API: GameMaker Studio 2
Сообщений: 396



« Ответ #1 : Июнь 17, 2023, 11:28:17 »

Что вы подразумеваете под "сеткой"? В каком плане она начинает "плыть"? На скриншотах как-то всё непонятно и, грубо говоря, какая-та каша пикселей.
Не разбираюсь в проблеме(не знаю, я один такой?), поэтому могу посоветовать интерполяцию пикселей в настройках игры.
Записан

А че как 2 числа сравнить то это быстрее?
Вот так >? Вот так < ? Или лучше вот так sign(0)
NНN
Посетитель
**

Репутация: 0
Offline Offline

API: GameMaker Studio 2
Сообщений: 15


« Ответ #2 : Июнь 18, 2023, 11:47:23 »

Сетка состоит из спрайтов в виде буквы Г, которые рисуются на каждой клетке карты. При отдалении камеры метод рисования спрайтов не изменяется, но карта начинает отображаться, как на картинках (я подозреваю, что этот эффект похож на тот, что проявляется при попытки сфотографировать картинку на мониторе на телефон). Интерполяция немного уменьшает эффект, но очень сильно размазывает все остальные спрайты. Возможно пиксели монитора слишком большие, чтобы отобразить столь тонкие линии, но тогда непонятно, почему некоторые линии рисуются, а некоторые нет.
Записан
ярик
Активный участник
*****

Репутация: 21
Offline Offline

Награды:
За постоянность! [10 дней на форуме]
API: GameMaker Studio 2
Сообщений: 396



« Ответ #3 : Июнь 18, 2023, 12:10:57 »

Цитировать
Сетка состоит из спрайтов в виде буквы Г, которые рисуются на каждой клетке карты
errm

Получается вам просто нужно отрисовать обычную сетку в вашей игре? Давайте пренебрежем вашим способом и воспользуемся другим:
Код:
for (var i = 0; i < room_width; i += cell_size;) draw_line(i, 0, i, room_height);
for (var i = 0; i < room_height; i += cell_size;) draw_line(0, i, room_width, i);
// В событии Draw.
// cell_size - размер ячейки

Надеюсь он поможет вам.
Записан

А че как 2 числа сравнить то это быстрее?
Вот так >? Вот так < ? Или лучше вот так sign(0)
NНN
Посетитель
**

Репутация: 0
Offline Offline

API: GameMaker Studio 2
Сообщений: 15


« Ответ #4 : Июнь 18, 2023, 13:25:34 »

короче рисование сетки сделал только при приближении камеры и ещё ограничение на отдаление и приближение камеры добавил.
Записан
ярик
Активный участник
*****

Репутация: 21
Offline Offline

Награды:
За постоянность! [10 дней на форуме]
API: GameMaker Studio 2
Сообщений: 396



« Ответ #5 : Июнь 18, 2023, 15:49:06 »

Вы циклом проходитесь по каждой ячейке в игре и на ней рисуете спрайт ячейки?.....................
Подобное решение не то, что не оптимизированно, это насилие над гамаком, блин!

Создайте какой-нибудь один объект, установите его depth на самые отрицательные значения(-99999), киньте его в комнату и напишите в событии draw код:
Код:
for (var i = 0; i < room_width; i += cell_size;) draw_line(i, 0, i, room_height);
for (var i = 0; i < room_height; i += cell_size;) draw_line(0, i, room_width, i);
// В событии Draw.
// cell_size - размер ячейки

И всё!
Но ладно, я не буду вас упрекать в этом, главное чтобы всё работало. Удачи 
Записан

А че как 2 числа сравнить то это быстрее?
Вот так >? Вот так < ? Или лучше вот так sign(0)
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.075 секунд. Запросов: 27.