C ++ से Lua का उपयोग करने के लिए अनुशंसित पुस्तकालय क्या है? [बन्द है]


13

मैं वर्तमान में अपने 2 डी गेम इंजन में लुआ स्क्रिप्टिंग को कैसे एकीकृत करने की योजना बना रहा हूं, और मैं सी ++ कक्षाओं और वस्तुओं को उजागर करने के लिए सबसे पर्याप्त समाधान के लिए सीधे जाना चाहूंगा।

मैंने इसे पढ़ा है (यदि यह आपकी मदद करता है): http://lua-users.org/wiki/BindingCodeToLua

यदि आपके पास पुन: भेजने के लिए एक बेहतर स्क्रिप्टिंग भाषा है, तो इसके लिए जाएं; डी

सभी मदद का स्वागत है, मुझे धन्यवाद को लागू करने के लिए सबसे अच्छा समाधान चुनने की आवश्यकता है

जवाबों:


4

यदि आपकी स्क्रिप्टिंग भाषा का प्राथमिक गुण आसान बाध्यकारी है, तो AngelScript की कोशिश करें । यह प्रॉक्सी फ़ंक्शंस को लिखने की आवश्यकता के बिना सीधे पंजीकृत कार्यों को कॉल कर सकता है, और यह विभिन्न प्रकार के कंपाइलरों के कॉलिंग सम्मेलनों का समर्थन करता है। भाषा स्वयं c / c ++ के समान है, जो एक अच्छी या बुरी चीज हो सकती है, यह निर्भर करता है।



4

जब तक आप यथोचित पारंपरिक बंधन कर रहे हैं, तब तक LuaBind आपकी जरूरत का हर काम करेगा। बाइंडिंग क्लासेस और फ़ंक्शंस में एक-लाइन-प्रति-फ़ंक्शन डील होती है। यदि आप एक उदाहरण चाहते हैं, तो यहां खेल इंजन से लागू फ़ाइल जिसे मैं काम कर रहा हूं (LuaBind इंटरफ़ेस की शुरुआत के लिए मॉड्यूल (L) के लिए देखो), DontKillMeBro <> एक छोटी सी प्रणाली है जो मैंने मुझे करने के लिए तैयार की है कुछ संवेदनशील वस्तुओं के लिए अधिक सटीक समय वस्तु विनाश।)

यदि आप कुछ अधिक जटिल चाहते हैं, तो आपको वास्तविक Lua API का उपयोग करने की आवश्यकता होगी। सौभाग्य से, लुआ एपीआई यथोचित सरल है।


1

हम पायनियर के लिए OOLua का उपयोग कर रहे हैं । यह मैक्रोज़ का ढेर देता है जिसका उपयोग आप लुआ "क्लासेस" को C ++ क्लासेस से बाँधने के लिए करते हैं। इसकी शक्ति का एक अच्छा सा मिल गया है, लेकिन बहुत सीधा है। मैंने किसी अन्य का उपयोग नहीं किया है इसलिए मैं इस पर टिप्पणी नहीं कर सकता कि यह कैसे तुलना करता है। यहाँ एक उदाहरण है


1

मैं Nuclex के पहले से तय किए गए परिवादों के साथ हाथ मिलाता हूं और LuaBind के लिए फाइलें शामिल करता हूं। (यदि आप VS2008 के साथ काम कर रहे हैं तो)

चूंकि LuaBind को आपको कुछ Boost libs और Tools के साथ इसका निर्माण करने की आवश्यकता होती है, इसलिए यह पैकेज आपको बहुमूल्य समय (और शायद कुछ सिरदर्द, जो जानता है) बचाएगा। मैं कहूंगा कि यदि आप जानते हैं कि आप क्या कर रहे हैं, तो आप एक घंटे से भी कम समय में लुआ चल पाएंगे।

यदि आप एक छोटे प्रदर्शन लाभ की तलाश में हैं, तो आप डिफ़ॉल्ट Lua dll को LuaJIT dll में बदलने पर भी विचार कर सकते हैं । यह केवल लाइब्रेरी को संकलित करने और आपके मुख्य प्रोजेक्ट में आपके द्वारा लिंक किए जा रहे lib / dll को बदलने की बात है, इसलिए यह काफी आसान है।

इसके साथ, शुभकामनाएँ!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.