我正在Game Maker Studio中创建一个使用像素画的游戏。当我启动游戏时,所有放大的纹理都非常模糊。(小巧的人不会发生。)
例如,这张图片
在游戏中的渲染如下:
是否有将小像素调整为大像素而不是模糊像素的方法?
我正在Game Maker Studio中创建一个使用像素画的游戏。当我启动游戏时,所有放大的纹理都非常模糊。(小巧的人不会发生。)
例如,这张图片
在游戏中的渲染如下:
是否有将小像素调整为大像素而不是模糊像素的方法?
Answers:
没有人愿意手动放大每个精灵。它不仅是一个草率的工作空间,而且非常专业。在全局游戏设置中关闭插值无效时,我找到了一种解决方案。
texture_set_interpolation(false);
:)希望这对您将来的工作有所帮助。
我通常为此使用photoshop或GIMP(比例尺/最近邻)
但是要在GM:S精灵编辑器itslef中执行此操作,我使用Stretch命令而不是scale并将其设置为POOR质量。这将保持Blocky的感觉
上面是我在ATM上玩的游戏,我就是这么做的!
在地图的“背景”标签中关闭缩放功能。如果看起来不合比例,请确保背景的纹理与您所在的房间/地图的大小相同。
或者,在此处使用此帖子来创建背景脚本,该脚本将放大背景,并带来(希望)清晰的结果。
这利用了表面,因此,如果您需要其他帮助- 这篇文章提供了很多信息。
编辑:
回到我的答案,我意识到这还不算什么,需要教程的内容。这里是:
第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或其他任何东西,然后执行以下操作:
并将该对象放置在游戏的第一个也是最重要的房间中,将其标记为持久,并确保没有重复的对象。
您完成了,现在有了不错的清晰缩放比例= D