ไลบรารีที่แนะนำสำหรับการใช้ Lua จาก C ++ คืออะไร [ปิด]


13

ขณะนี้ฉันกำลังวางแผนที่จะรวมการเขียนสคริปต์ Lua ใน 2D Game Engine ของฉันและฉันต้องการไปยังทางออกที่เหมาะสมที่สุดสำหรับการเรียน C ++ และวัตถุต่างๆ

ฉันได้อ่านสิ่งนี้แล้ว (ถ้ามันช่วยคุณได้): http://lua-users.org/wiki/BindingCodeToLua

หากคุณมีภาษาสคริปต์ที่ดีกว่าที่จะแนะนำอีกครั้งให้ไป; D

ยินดีต้อนรับทุกความช่วยเหลือฉันต้องการวิธีที่ดีที่สุดในการเริ่มต้นใช้งานขอบคุณ

คำตอบ:


4

หากคุณภาพหลักของภาษาสคริปต์ของคุณมีผลผูกพันง่ายลองAngelScript สามารถเรียกใช้ฟังก์ชั่นที่ลงทะเบียนได้โดยตรงโดยไม่จำเป็นต้องเขียนฟังก์ชั่นพรอกซีและสนับสนุนการเรียกการประชุมของคอมไพเลอร์หลากหลาย ภาษานั้นคล้ายกับ c / c ++ ซึ่งอาจเป็นสิ่งที่ดีหรือไม่ดีขึ้นอยู่กับ



4

ตราบใดที่คุณกำลังผูกพันอย่างสมเหตุสมผลLuaBindจะทำทุกสิ่งที่คุณต้องการ คลาสและฟังก์ชันที่เชื่อมโยงมีแนวโน้มที่จะเป็นข้อตกลงหนึ่งบรรทัดต่อฟังก์ชัน หากคุณต้องการตัวอย่างนี่คือไฟล์ที่ใช้งานได้จากเอ็นจิ้นเกมที่ฉันทำงาน (ดูโมดุล (L) สำหรับการเริ่มต้นส่วนติดต่อ LuaBind, DontKillMeBro <> เป็นระบบเล็ก ๆ ที่ฉันขอให้ฉัน การทำลายวัตถุเวลาที่แม่นยำยิ่งขึ้นสำหรับวัตถุที่มีความละเอียดอ่อนบางอย่าง)

หากคุณต้องการบางสิ่งที่ซับซ้อนกว่านี้คุณอาจต้องใช้ Lua API จริง โชคดีที่ Lua API นั้นเรียบง่ายพอสมควร


1

เรากำลังใช้OOLuaสำหรับไพโอเนียร์ มันให้กองแมโครที่คุณใช้ผูก Lua "คลาส" กับคลาส C ++ มันมีพลังงานที่ค่อนข้างยุติธรรม แต่ค่อนข้างตรงไปตรง ฉันไม่ได้ใช้คนอื่นดังนั้นฉันจึงไม่สามารถแสดงความคิดเห็นเกี่ยวกับวิธีการเปรียบเทียบ นี่คือตัวอย่าง


1

ฉันจะลงมือทำด้วยlibs ที่คอมไพล์แล้วของ Nuclexและรวมไฟล์ไว้สำหรับ LuaBind (นั่นคือถ้าคุณทำงานกับ VS2008)

เนื่องจาก LuaBind ต้องการให้คุณสร้างมันด้วย Boost libs และเครื่องมือบางอย่างแพคเกจนี้จะช่วยคุณประหยัดเวลาอันมีค่า ฉันว่าคุณจะสามารถทำงาน Lua ได้ในเวลาไม่ถึงหนึ่งชั่วโมงถ้าคุณรู้ว่าคุณกำลังทำอะไรอยู่

คุณอาจพิจารณาเปลี่ยน Lua dll เริ่มต้นเป็นLuaJIT dll หากคุณกำลังมองหาประสิทธิภาพที่เพิ่มขึ้นเล็กน้อย เป็นเพียงการรวบรวมไลบรารีและแทนที่ lib / dll ที่คุณเชื่อมโยงกับโครงการหลักของคุณดังนั้นจึงค่อนข้างง่าย

ด้วยโชคดี!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.