ดังนั้นฉันจะไปเกี่ยวกับการสร้างลักษณะเช่นนี้ได้อย่างไร พวกเรากำลังพูดถึง pixel shaders, ผสมผสานโหมด / ตัวกรอง, ผล bitmap, ระบบอนุภาคหรืออะไร ไม่เจาะจงแพลตฟอร์มจริงๆ ฉันแค่กำลังมองหาทฤษฎี แต่ตัวอย่างหรือลิงก์ที่เฉพาะเจาะจงจะดีมาก และรายละเอียดที่ดียิ่งขึ้น
จากทั้งหมดที่กล่าวมา
ถ้าคุณโผล่ผ่านรหัสที่มาของพวกเขาคุณอาจไม่ทราบได้อย่างแม่นยำว่าพวกเขาไม่ได้
อย่างไรก็ตามจากรูปลักษณ์ของเกมทั้งสองเกมทั้งสองมีสิ่งที่ดูเหมือนจะเป็นรูปทรงเรขาคณิตที่เชื่อมต่อและเส้นทางเรือ อาจไม่จำเป็นต้องเป็นระบบอนุภาคจุด - สไปรต์ขั้นพื้นฐาน แต่มันก็ไม่ใช่เรื่องยากเช่นกัน
เกมบางเกมจะใช้อัลกอริทึมเส้นโค้งและสร้างรายการจุดยอดจากนั้นและทำพื้นผิวเล็กน้อยด้วยพื้นผิวที่แตกต่างกันที่ใช้ที่จุดปลายทั้งสองของเส้นทางเพื่อที่จุดหนึ่งไอเสียดูร้อนและที่อื่น ๆ มันเย็นกว่าและ เส้นทางออกสู่อวกาศ
เรือรบของผู้เล่นเป็นกรณีที่น่าสนใจเพราะการเคลื่อนไหวไม่แน่นอนและคุณอาจต้องอัปเดตจุดควบคุมของอัลกอริทึมโค้งของคุณหรือจบการสุ่มตัวอย่างตำแหน่งเรือล่าสุดและสร้างตำแหน่งจุดยอดตามนั้น
ดูคำตอบนี้จากคำถามก่อนหน้านี้หากคุณต้องการมีบางสิ่งที่ไม่สามารถใช้งานได้จากจุดควบคุม สำหรับความต้องการของคุณการสุ่มตัวอย่างผู้เล่นอาจจะทำงานได้ดีขึ้นและเข้าใจได้ง่ายขึ้น
นี่คือสิ่งที่จะทำให้คุณนึกถึง:
เริ่มการสุ่มตัวอย่างตำแหน่งผู้เล่น จุดเหล่านี้จะสร้างส่วนของเส้นทางของคุณซึ่งสามารถสร้างรูปทรงเรขาคณิตได้ เป็นความคิดที่ดีที่จะแยกส่วนหางที่มีพื้นผิวแยก คุณอาจต้องการตรวจจับเมื่อผู้เล่นหมุนและเพิ่มความถี่ของเซกเมนต์เหล่านี้มิฉะนั้นคุณจะจบลงด้วยเส้นโค้งบล็อก ยกเว้นว่าเป็นเอฟเฟกต์ที่คุณกำลังทำ :)
ในบางเหตุการณ์เซ็กเมนต์จำเป็นต้องหยุดสร้างและเซ็กเมนต์ที่มีอยู่ควรเริ่มลดขนาดลงอย่างช้า ๆ เริ่มต้นจากส่วนของร่างกายที่อยู่ใกล้กับหางมากที่สุด (แต่ไม่ใช่หางเอง) นี่คือในกรณีที่ผู้เล่นชะลอตัวลง แต่ถ้าความเร็วที่เซ็กเมนต์ถูกลดขนาดลงให้ตรงกับความเร็วของเรือรบแล้วเซ็กเมนต์ใหม่จะถูกสร้างขึ้นในเวลาเดียวกับที่ถูกนำออกไป ดังนั้นสิ่งนี้ยังทำงานได้ดีสำหรับเรือรบที่เคลื่อนไหวเต็มไปด้วย ความยาวของเส้นทางจะเท่ากันเสมอ - ซึ่งให้กระแสของไหลที่สม่ำเสมอ
ส่วนหัวควรอยู่ในตำแหน่งปัจจุบันของผู้เล่น หากตรวจพบการหมุนใด ๆ ส่วนหัวที่มีอยู่จะถูกเพิ่มไปยังส่วนของร่างกายและส่วนหัวใหม่จะเริ่มขึ้น ทำซ้ำ แต่ละส่วนอาจมีความยาวสูงสุดเช่นกันทั้งนี้ขึ้นอยู่กับพื้นผิวของคุณ
สิ่งนี้ทำให้เรามีวิธีง่ายๆในการจำลองเอฟเฟกต์นี้: การทำงานนอกความคิดที่ว่าเอฟเฟกต์จะลดลง / ลดขนาดลงโดยตัวของมันเองยกเว้นว่าจะมีการแบ่งเซ็กเมนต์เพิ่มเติมและเล่นรอบ ๆ ด้วยความเร็ว