Il y a quelques petites choses que je peux voir. Je vais vous expliquer une façon correcte de le faire, et vous pouvez le comparer à la façon dont vous l'avez mis en place.
Dans votre fichier ennemi (je vais supposer que son appelé enemy.lua), il devrait y avoir une table qui contient deux choses:
- Une table qui contiendra votre liste d'ennemis (! assurez-vous de le retourner à la fin du fichier)
- une fonction qui crée un nouvel ennemi
il pourrait ressembler à ceci:
local enemies = { } -- table to export
enemies.list = { } -- list of entities
function enemies.new()
local new_entity = { }
new_entity.x = 0 -- set entity coordinates
new_entity.y = 0
-- set any another entity information, like sprites, health, etc.
return new_entity
end
return enemies -- make this table available to other files through require
Ensuite, vous importez dans main.lua avec cette ligne:
local enemies = require "enemies"
Cela fera enemies.list
et enemies.new
disponible à l'intérieur de votre main.lua. Votre table.insert devient alors
table.insert(enemies.list, enemies.new())
Fondamentalement, votre erreur principale essayait d'accéder à quelque chose dans un autre fichier sans utiliser require
. J'espère que cela t'aides.
Je ne fais pas Lua alors ne vous attendez pas à beaucoup, mais avez-vous essayé 'table: insert (self: ennemis, ennemi)'? Je l'ai obtenu de [** ici **] (https://stackoverflow.com/questions/20258484/attempt-to-index-global-self-a-nil-value) – finnrayment
Si 'ennemis' est une variable globale, alors essayez 'table.insert (ennemis, ennemis)' –