แก้ไขไฟล์ GML
มันอ่านสคริปต์และเขียนการเปลี่ยนแปลงด้วย edit_file จากนั้นแสดง diff ของบรรทัดที่เปลี่ยนแปลงก่อนที่คุณจะยอมรับ
หากคุณกำลังเรียนรู้จากบทเรียนภาษา GML หน้าเว็บนี้คือสิ่งที่ PixelTread เพิ่มให้ เครื่องมืออ่านสคริปต์ของคุณ แก้ไขด้วย diff ที่คุณตรวจสอบได้ รันคำสั่งบิลด์ และอ่านคู่มือ GameMaker อย่างเป็นทางการ ทั้งหมดภายในโปรเจกต์ที่คุณเป็นเจ้าของ บทเรียนอธิบายแนวคิด PixelTread จะนำแนวคิดนั้นไปใช้กับไฟล์จริงของคุณทีละขั้นตอน แสดงการเปลี่ยนแปลงเป็นการ์ด และรอการตัดสินใจของคุณเมื่อใช้ Ask first เพื่อให้คุณเรียนรู้ไปพร้อมกัน แทนการก๊อปปี้โค้ดมาวางแบบสุ่ม
มันอ่านสคริปต์และเขียนการเปลี่ยนแปลงด้วย edit_file จากนั้นแสดง diff ของบรรทัดที่เปลี่ยนแปลงก่อนที่คุณจะยอมรับ
Shell รันคำสั่งบิลด์หรือทดสอบของคุณเองหากคุณมี และการ์ดจะรายงาน exit code จริง
web_search และ http_get ดึงข้อมูลจากคู่มืออย่างเป็นทางการ เพื่อให้ชื่อฟังก์ชันที่ใช้มาจากแหล่งข้อมูลต้นฉบับ
การเรียกใช้เครื่องมือแต่ละครั้งจะปรากฏในแชทเป็นการ์ดที่มีผลลัพธ์จริง เปิดการ์ดเพื่อดูผลลัพธ์คำสั่งเต็มรูปแบบหรือ diff ของไฟล์ นั่นคือจุดที่คุณตัดสินใจ: อ่านบรรทัดที่เปลี่ยนแปลง ยอมรับหรือปฏิเสธ แล้วจึงบิลด์และทดสอบในโปรแกรมแก้ไข GameMaker
project folderแสดงรายการargument_countพบ 2 รายการscr_message.gmlอ่านscr_message.gml+9 บรรทัดbuildexit 0คุณต้องการทำให้วัตถุติดกับวัตถุอื่น เช่น หมวกที่ติดตามตัวละคร บอกเครื่องมือว่าวัตถุสองชิ้นที่คุณหมายถึงคืออะไรและหมวกควรอยู่ตรงไหน มันใช้ grep เพื่อค้นหาว่าทั้งสองถูกสร้างที่ไหนและ read_file เพื่อเปิดสคริปต์ของพวกเขา จากนั้น edit_file เก็บอินสแตนซ์เป้าหมายในตัวแปรและตั้งค่า x และ y จากเป้าหมายบวกออฟเซ็ตในโค้ดขั้นตอน การ์ดแสดงการเปลี่ยนแปลงแต่ละครั้ง แก้ไขเล็กน้อย ในโหมด Ask first คุณอ่าน diff ยอมรับมัน และเล่นห้องเพื่อดูว่าหมวกยังอยู่บนศีรษะขณะที่ตัวละครเคลื่อนที่หรือไม่ หากมันล้าช้าหนึ่งเฟรม ให้ขอการแก้ไขครั้งที่สอง เก็บเวอร์ชันเก่าไว้ในโฟลเดอร์ของคุณจนกว่าคุณจะมั่นใจ
สคริปต์ที่มีอาร์กิวเมนต์ไม่จำกัดต้องการ argument_count และอาร์เรย์ argument ซึ่ง GML จัดให้ บทเรียน gml ปกติแสดงแนวคิดนี้เพียงครั้งเดียว แต่สคริปต์ข้อความของคุณมีผู้เรียกใช้ของตัวเอง ถามเครื่องมือให้อ่านสคริปต์และการเรียกใช้ทุกอันด้วย grep จากนั้นเขียนใหม่ให้ฟังก์ชันวนลูปผ่านอาร์กิวเมนต์ที่ได้รับ การ์ด edit_file แสดง diff และ Shell รันคำสั่งบิลด์ของคุณเพื่อดู exit code จริง ผู้เรียกใช้แต่ละรายยังคงมองเห็นได้ ตรวจสอบ diff ตรวจสอบว่าแต่ละการเรียกใช้เก่ายังส่งค่าในลำดับเดิมหรือไม่ และรันเกมหนึ่งครั้งก่อนยอมรับการเปลี่ยนแปลง
มือใหม่มักถามว่าจะสร้างฉากอย่างไร และคำตอบหนึ่งคือเครื่องสถานะขนาดเล็กในวัตถุตัวควบคุม: ตัวแปรสถานะ ตัวจับเวลา และสคริปต์สำหรับแต่ละขั้นตอน เริ่มต้นในโหมด Plan only ซึ่งเครื่องมือเขียนรายการขั้นตอนและรัน nothing อ่านมัน เปลี่ยนลำดับหากคุณต้องการ จากนั้นสลับเป็น Ask first เพื่อให้เครื่องมือสร้างสคริปต์ด้วย write_file และแก้ไขตัวควบคุมด้วย edit_file คุณตัดสินใจที่การ์ดแต่ละใบ สุดท้าย บิลด์ เล่นฉากจากเฟรมแรก และเปรียบเทียบสิ่งที่เห็นกับแผนที่คุณอนุมัติ
สาเหตุทั่วไปของการเคลื่อนไหวที่สั่นคือค่าที่ไม่ใช่จำนวนเต็มซึ่งวาดที่ตำแหน่งทศนิยม ถามเครื่องมือเพื่อหาโค้ดการวาดด้วย grep สำหรับ draw_sprite และอ่านสคริปต์การเคลื่อนไหวด้วย read_file จากนั้น edit_file ปัดตำแหน่งก่อนวาดและแสดง diff Shell รันคำสั่งบิลด์ของคุณและรายงาน exit code จริง อ่านง่าย ในโหมด Ask first คุณยอมรับการเปลี่ยนแปลงบรรทัดต่อบรรทัด รันเกม เดินไปมาไม่กี่วินาที และดูว่าสไปรíteยังกะพริบอยู่หรือไม่ หากเป็นเช่นนั้น การ์ดถัดไปสามารถดูโค้ดกล้องได้ ไม่ว่ากรณีใด การ์ดจะเก็บบันทึกสิ่งที่เปลี่ยนแปลง
PixelTread ไม่ใช่ปลั๊กอินของโปรแกรมแก้ไข GameMaker และมันไม่เคยรันภายในเกมหรือเครื่องยนต์ มันทำงานบนไฟล์ของโปรเจกต์ของคุณ มันมีไว้สำหรับเกมของคุณเอง ศิลปะ เสียง และโค้ดของคุณ หรือสินทรัพย์ที่คุณมีใบอนุญาต การทำงานภายในขอบเขตเหล่านั้นเป็นหน้าที่ของคุณ เพราะเครื่องมือไม่ตรวจสอบขอบเขต ไม่มีใครรับประกันว่าโค้ดถูกต้อง ดังนั้นคุณจึงตรวจสอบ diff ทุกอย่าง บิลด์โปรเจกต์และทดสอบมันด้วยตัวเอง