ฉันกำลังสร้างเกมใน Game Maker Studio ที่ใช้ภาพพิกเซล เมื่อฉันเปิดเกมพื้นผิวที่ขยายขนาดทั้งหมดนั้นพร่ามัวจริงๆ (ไม่เกิดกับเด็กเล็ก)
ตัวอย่างเช่นภาพนี้
แสดงผลในเกมเช่นนี้:
อย่างไรก็ตามมีการปรับขนาดพิกเซลขนาดเล็กเข้าไปในพิกเซลขนาดใหญ่แทนพิกเซลเบลอ ?
ฉันกำลังสร้างเกมใน Game Maker Studio ที่ใช้ภาพพิกเซล เมื่อฉันเปิดเกมพื้นผิวที่ขยายขนาดทั้งหมดนั้นพร่ามัวจริงๆ (ไม่เกิดกับเด็กเล็ก)
ตัวอย่างเช่นภาพนี้
แสดงผลในเกมเช่นนี้:
อย่างไรก็ตามมีการปรับขนาดพิกเซลขนาดเล็กเข้าไปในพิกเซลขนาดใหญ่แทนพิกเซลเบลอ ?
คำตอบ:
พบวิธีแก้ปัญหาจากทรัพยากรบางอย่าง ไปที่การตั้งค่าเกมทั่วโลกจากนั้นไปที่สปอยเลอร์แพลตฟอร์มใด ๆ (เช่น "Windows" หรือ "Android") เลือกสปอยเลอร์ที่มีชื่อว่า "กราฟิก" และสลับ "ปิด" ปรับสีระหว่างพิกเซล " มีความสุข :)
ไม่มีใครอยากจัดการกับการขยายสไปรท์ด้วยตนเองทุกครั้ง ไม่เพียง แต่เป็นพื้นที่ทำงานที่เลอะเทอะ แต่มันก็ไม่เป็นมืออาชีพมาก ฉันพบวิธีแก้ปัญหาเมื่อปิดการแก้ไขในการตั้งค่าเกมระดับโลกไม่ทำงาน
texture_set_interpolation(false);
:) ฉันหวังว่านี่จะช่วยคุณในความพยายามในอนาคตของคุณ
สิ่งที่ฉันทำโดยทั่วไปคือการใช้ photoshop หรือ GIMP (สเกล / เพื่อนบ้านที่ใกล้ที่สุด)
แต่การที่จะทำในโปรแกรมแก้ไขสไปรท์ GM: S ฉันใช้คำสั่ง Stretch แทนการปรับสเกลและตั้งค่าให้เป็นคุณภาพที่ไม่ดี ที่จะทำให้รู้สึก 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
ใช้texture_set_interpolation(false)
เพื่อทำให้วาดตามที่เป็นอยู่