Как увеличить размер пикселя без размытия в GM Studio?

Я создаю игру в Game Maker Studio, которая использует пиксельное искусство. Когда я запускаю игру, все масштабированные текстуры действительно размыты. (Это не происходит с маленькими.)

Например, это изображение

nice :)

отображает в игре вот так:

blurred :(

Можно ли изменить размер малых пикселей на большие пиксели вместо размытых пикселей ?

9 голосов | спросил mpower 22 52013vEurope/Moscow11bEurope/MoscowFri, 22 Nov 2013 13:29:42 +0400 2013, 13:29:42

5 ответов


13

Найден решение из некоторого ресурса. Перейдите в раздел «Глобальные настройки игры», затем перейдите на любой спойлер платформы (например, «Windows» или «Android»), выберите спойлер под названием «Графика» и переключите «Интерполировать цвета между пикселями». Удачи:)

ответил meriler98 25 MaramTue, 25 Mar 2014 06:32:04 +04002014-03-25T06:32:04+04:0006 2014, 06:32:04
5

Никто не хочет иметь дело с необходимостью вручную масштабировать каждый спрайт; это не просто неряшливое рабочее пространство, но оно становится очень непрофессиональным. Я нашел решение, когда выключение интерполяции в глобальных настройках игры не получилось.

texture_set_interpolation(false);

:) Я надеюсь, что это поможет вам в ваших будущих начинаниях.

ответил Toby Jeffry Staryth 2 +03002015-10-02T21:31:36+03:00312015bEurope/MoscowFri, 02 Oct 2015 21:31:36 +0300 2015, 21:31:36
1

В общем, для этого я использую Photoshop или GIMP (шкала /ближайший сосед)

Но чтобы сделать это в редакторе справки GM: S, я использую команду Stretch вместо масштаба и устанавливаю ее в качество POOR. Это сохранит ощущение Blocky Screenie из игры im, работающей на atm, спрайт увеличен в GM: S сам «> </p>

<p> Выше - игра, работающая в банкомате, я сделал именно это! </p></body></html>

ответил David Chircop 7 MaramFri, 07 Mar 2014 02:46:51 +04002014-03-07T02:46:51+04:0002 2014, 02:46:51
1

Отключите функцию масштабирования на вкладке backgrounds на карте. Если это кажется неправильным, убедитесь, что ваша текстура для заднего грунта имеет тот же размер, что и номер /карта, в которой вы находитесь.

В качестве альтернативы используйте здесь, здесь , чтобы создать фоновый скрипт который будет масштабировать заднюю поверхность с (надеюсь) хрустящими результатами.

Это использует поверхности, поэтому, если вам нужна дополнительная помощь, - это сообщение предоставляет много информации.


EDIT:

Возвращаясь к моим ответам, я понял, что это не до нуля и нуждается в содержании учебника. Вот он:

ШАГ 1 : выберите нужный масштаб. Используйте представление для каждой комнаты и соответствующим образом установите порт W и порт H. Так, например, если вы используете шкалу из 2 ... это будет выглядеть так, в редакторе комнаты GM.

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

ШАГ 2 . Создайте 3 сценария, screen_init, screen_begin и screen_end. Вот что происходит в каждом из скриптов ...

Цитата из: screen_init

// screen base(view_wview and view_hview)
screen_x = 0;
screen_y = 0;
screen_w = 320;
screen_h = 240;
screen_scale = 2;

// create a surface for the whole screen to be drawn on
screen = surface_create(screen_w,screen_h);

// this will destroy the screen object if surfaces are not supported on the graphics card, reverting to the viewport method
if screen = -1{instance_destroy();}

Цитата из: screen_begin

// this draws the surface on the screen
surface_reset_target();
draw_clear(0);
draw_set_blend_mode_ext(bm_one, bm_zero);
draw_surface_stretched(screen,screen_x,screen_y,screen_w*screen_scale,screen_h*screen_scale);
draw_set_blend_mode(bm_normal);
screen_refresh();

Цитата из: screen_end

// this sets surface 'screen' as the drawing target for everything in the game, so all drawing will be done on this surface and not on the game screen
surface_set_target(screen);

ШАГ 3 . Теперь у нас есть скрипты, но куда они идут? Создайте объект. Например, obj_screen, objScreen, o_screen или что-то еще, и выполните следующие действия:

  • A) поместите файл screen_initscript в событие Create.
  • B) поместите скрипт screen_begin в событие Begin Step.
  • C) поместите скрипт screen_end в событие End Step.

И поместите этот объект в первую и первую комнату вашей игры, отметьте его постоянным и убедитесь, что его дубликатов нет.

Вы закончили, и теперь у вас есть приятное, четкое масштабирование = D

ответил Tom 'Blue' Piddock 22 52013vEurope/Moscow11bEurope/MoscowFri, 22 Nov 2013 14:43:14 +0400 2013, 14:43:14
-2

Используйте texture_set_interpolation(false), чтобы он рисовал их как есть.

ответил Gree 30 Mayam17 2017, 03:58:36

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132