我是 Lua 和 Love2D 的新手,我做了 2-3 個簡單的游戲,我想把它們放在一起。我做了一個視窗,您可以在其中選擇要玩的游戲。它成功了;有一點問題。我的兩場比賽使用球。所以兩者都有一個 Ball.lua 檔案。我使用 require 函式在我的每個游戲中加載 Ball 檔案。起初它有效,我可以玩Game1,然后再玩Game2沒有任何問題。但是如果我回去想再次玩Game1。他的 ball.lua 檔案將不需要,因為只需要加載一次。然后會出現錯誤,因為我的游戲 1 試圖使用我的游戲 2 的球類。
我想知道哪種解決方案最好:
- 只需重命名檔案。(我想避免它,對我來說感覺是硬編碼)
- 使用 doFile。(我沒用過,不知道能不能用)
- 在我的主選單中需要兩個 Ball 的類,并在加載每個游戲時通過引數傳遞它(不知道它是否也可以作業)
如果你想看我的代碼以獲得更多解釋,這里是鏈接:https : //github.com/cbelangerstpierre/Games/tree/main/Games
提前致謝 !
uj5u.com熱心網友回復:
如您所知,require每個檔案只會執行一次。但是,它還會保存檔案的回傳值,因此您可以require根據需要多次保存該檔案,并且仍然獲得相同的值。
在您的Ball.lua檔案中,將您的Ball宣告設為本地:
local Ball = Class{}
然后在這些檔案的底部添加:
return Ball
然后,更改main.lua要存盤到全域Ball變數的檔案:
Ball = require "Atari-Breakout.Ball"
和
Ball = require("Switching-Ball.Ball")
理想情況下,建議將所有變數設為本地變數并從需要的檔案中回傳表require。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/369297.html
