มีสิ่งหนึ่งที่ทำให้ฉันงงงวยและนั่นก็คือวิธีการใช้การกระโดดแบบ 'faux-impulsed' ใน platformer หากคุณไม่รู้ว่าฉันกำลังพูดถึงอะไรให้นึกถึงการกระโดดของมาริโอเคอร์บี้และอ้างจาก Cave Story พวกเขามีอะไรที่เหมือนกัน? ความสูงของการกระโดดนั้นพิจารณาจากระยะเวลาที่คุณกดปุ่มกระโดดค้างไว้
การรู้ว่า 'แรงกระตุ้น' ของตัวละครเหล่านี้ไม่ได้ถูกสร้างขึ้นก่อนการกระโดดเช่นเดียวกับในฟิสิกส์จริง แต่แทนที่จะอยู่กลางอากาศ - นั่นคือคุณสามารถยกนิ้วของคุณขึ้นกลางความสูงสูงสุดได้และจะหยุดแม้ว่าจะมี การเร่งความเร็วระหว่างมันกับการหยุดแบบเต็ม นี่คือเหตุผลที่คุณสามารถแตะเพื่อกระโดดและกดค้างไว้เพื่อกระโดดไกล - ฉันเพลิดเพลินไปกับวิธีที่พวกเขาเก็บ trajetories ของพวกเขาเป็นโค้ง
การใช้งานปัจจุบันของฉันทำงานดังต่อไปนี้:
ในขณะที่กดปุ่มกระโดดแรงโน้มถ่วงจะถูกปิดและ Y coordenate ของอวตารจะลดลงตามค่าคงที่ของแรงโน้มถ่วง ตัวอย่างเช่นหากสิ่งต่างๆตกอยู่ที่หน่วย Z ต่อหนึ่งขีดมันจะเพิ่มขึ้นหน่วย Z ต่อหนึ่งขีด
เมื่อปล่อยปุ่มหรือถึงขีด จำกัด แล้ว Avatar จะคำนวณจำนวนที่จะทำให้มันครอบคลุมหน่วย X จนกว่าความเร็วจะถึง 0; เมื่อมันเร่งความเร็วขึ้นจนถึงความเร็วที่ตรงกับแรงโน้มถ่วง - ติดกับตัวอย่างฉันบอกได้ว่ามันเร่งจาก 0 ถึง Z หน่วย / ติ๊กในขณะที่ยังครอบคลุม X
อย่างไรก็ตามการใช้งานนี้ทำให้กระโดดในแนวทแยงเกินไปและถ้าความเร็วของอวาตาร์นั้นเร็วกว่าแรงโน้มถ่วงซึ่งจะทำให้มันเร็วเกินไปในโครงการปัจจุบันของฉัน (มันเคลื่อนที่ที่ประมาณ 4 พิกเซลต่อเห็บและแรงโน้มถ่วงคือ 10 พิกเซลต่อเห็บที่ อัตราเฟรม 40FPS) ทำให้แนวตั้งมากกว่าแนวนอน ผู้ที่คุ้นเคยกับ platformers จะสังเกตเห็นว่าตัวละครของ arc'd กระโดดเกือบตลอดเวลาช่วยให้พวกเขากระโดดต่อไปแม้ว่าพวกเขาจะไม่เร็วเท่าแรงโน้มถ่วงของเกมและเมื่อมันไม่ถ้าเล่นไม่ถูกก็จะพิสูจน์ตัวเองว่าเป็น ตอบโต้ได้ง่ายมาก ฉันรู้สิ่งนี้เพราะฉันสามารถยืนยันได้ว่าการใช้งานของฉันน่ารำคาญมาก
มีใครเคยลองใช้กลไกที่คล้ายคลึงกันบ้างและอาจประสบความสำเร็จหรือไม่ ฉันต้องการที่จะรู้ว่าสิ่งที่อยู่เบื้องหลังการกระโดด platformer ชนิดนี้ หากคุณไม่เคยมีประสบการณ์ใด ๆ กับเรื่องนี้มาก่อนและต้องการที่จะไปให้ได้โปรดอย่าพยายามแก้ไขหรือปรับปรุงการใช้งานที่อธิบายไว้ของฉันจนกว่าฉันจะไปทางที่ถูกต้อง - พยายามหาวิธีแก้ปัญหาของคุณจาก เกา. ฉันไม่สนหรอกว่าคุณจะใช้แรงโน้มถ่วงฟิสิกส์หรืออะไรก็ตามตราบใดที่มันแสดงให้เห็นว่าแรงกระตุ้นหลอกเหล่านี้ทำงานอย่างไรมันทำงานได้ดี
นอกจากนี้ฉันต้องการนำเสนอเพื่อหลีกเลี่ยงการเข้ารหัสเฉพาะภาษา เช่นการแบ่งปันเราเป็นตัวอย่าง C ++ หรือ Delphi ... เท่าที่ฉันใช้กรอบ XNA สำหรับโครงการของฉันและไม่สนใจสิ่ง C # ฉันไม่มีความอดทนในการอ่านรหัสของผู้อื่นและฉัน นักพัฒนาเกมบางคนของภาษาอื่น ๆ จะสนใจในสิ่งที่เราประสบความสำเร็จที่นี่ดังนั้นอย่ามัว แต่สนใจที่จะใช้โค้ดหลอก
ขอบคุณล่วงหน้า