Lua,Love2d,两个游戏的同类名称在不同的文件夹

0

的问题

我是新来的Lua和Love2D,我没有2-3个简单的游戏,我想把它们放在一起。 我做了一个窗口,在这里,你选择这游戏你想玩。 它成功;与一个小小的问题。 我的两个游戏中使用的一球。 所以两者都有一个球。lua文件。 我用的是需要功能负荷球文件中的每个我的游戏。 它的工作原理在首先,我可以玩Game1,回去玩款游戏2没有任何问题。 但是,如果我回去想玩Game1。 他的球。lua文件将不需要,因为只需要载的一次。 然后会有一个错误因为我game1正试图用我款游戏2的球类。

我想知道哪些解决方案将是最好的:

  1. 只是重新命名的文件。 (我想要避免它,感觉硬编码给我)
  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ý
..................................................................................................................