लुआ, Love2d, दो खेल के साथ एक ही वर्ग के नाम अलग फ़ोल्डर में

0

सवाल

मैं नया हूँ करने के लिए लुआ और Love2D, मैं 2-3 सरल खेल है और मैं चाहता था करने के लिए उन्हें एक साथ रखा । मैं था, जहां एक खिड़की आप चुनते हैं जो खेल में आप खेलने के लिए चाहते हैं. यह सफल; के साथ एक छोटी सी समस्या है. दो का खेल एक गेंद का उपयोग करें. तो दोनों एक गेंद है.lua फ़ाइल. मैं का उपयोग की आवश्यकता होती समारोह लोड करने के लिए गेंद फाइल में से प्रत्येक के अपने खेल. यह काम करता है पहली बार में, मैं खेल सकते हैं Game1, वापस जाने के लिए और खेलने Game2 किसी भी समस्या के बिना. लेकिन अगर मैं वापस जाने के लिए और खेलने के लिए चाहते हैं Game1 फिर से. अपनी गेंद.lua फ़ाइल की आवश्यकता नहीं होगी के बाद से की आवश्यकता है केवल एक बार लोड. तो फिर वहाँ एक त्रुटि है, के बाद से मेरी game1 की कोशिश कर रहा है का उपयोग करने के लिए मेरे Game2 की गेंद वर्ग.

मैं चाहता था पता करने के लिए जो समाधान के लिए सबसे अच्छा होगा :

  1. बस फ़ाइलों का नाम बदलें. (मैं इसे से बचने के लिए, लगता है hardcoding मुझे करने के लिए)
  2. उपयोग doFile. (मैं इस्तेमाल कभी नहीं किया है, यह मैं भी नहीं जानता कि अगर यह काम करेगा)
  3. की आवश्यकता होती है दो गेंद के वर्ग में अपने मुख्य मेनू और पारित करके यह पैरामीटर लोड हो रहा है जब प्रत्येक खेल (पता नहीं है, तो यह भी काम करेगा)

यदि आप चाहते हैं देखने के लिए अपने कोड के लिए और अधिक विवरण, यहाँ की कड़ी है : https://github.com/cbelangerstpierre/Games/tree/main/Games

अग्रिम में धन्यवाद !

2d-games file love2d lua
2021-11-23 17:13:24
1

सबसे अच्छा जवाब

0

जैसा कि आप जानते हैं, require केवल निष्पादित प्रत्येक फ़ाइल में एक बार. हालांकि यह भी मान बचाने के लिए फ़ाइल है, तो आप कर सकते हैं require फ़ाइल के रूप में कई बार के रूप में आप चाहते हैं और अभी भी एक ही मूल्य पाने.

में अपने Ball.lua फ़ाइलें बनाने के लिए, अपने Ball घोषणाओं स्थानीय:

local Ball = Class{}

तो के तल पर उन फ़ाइलों को जोड़ें:

return Ball

तो, परिवर्तन आपके main.lua करने के लिए फ़ाइलों को स्टोर करने के लिए वैश्विक Ball चर:

Ball = require "Atari-Breakout.Ball"

और

Ball = require("Switching-Ball.Ball")

आदर्श रूप में, यह सिफारिश की है बनाने के लिए अपने सभी स्थानीय चर और वापस मेज से फ़ाइलें है कि आप की जरूरत करने के लिए require.

2021-11-23 20:50:02

ओह अच्छा यह काम किया ! बहुत बहुत धन्यवाद, आप कहते हैं कि आप का उपयोग करेंगे स्थानीय चर के बजाय. लेकिन मुझे समझ में नहीं आता होगा, का उपयोग स्थानीय चर हर जगह ? की तरह जब आप कहते हैं कि मैं क्या गेंद = की आवश्यकता होती है, यह नहीं है वैश्विक ?
Cédric Bélanger-St-Pierre

हाँ, मैं इसे लिखा था कि जिस तरह से कम करने के लिए परिवर्तन करने के लिए अपने कोड. आम तौर पर, आप की तरह कुछ डाल दिया local Ball = require "Atari-Breakout.Ball" के शीर्ष के पास हर फ़ाइल का उपयोग करता है कि गेंद वर्ग. फिर उन में से प्रत्येक के फ़ाइलें होता है अपने स्वयं के स्थानीय चर को संदर्भ रूप में एक ही तालिका को परिभाषित करता है कि वर्ग या पुस्तकालय है ।
luther

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में