2016-10-17 1 views
4

Si vous regardez la documentation pour love.load il ditLove2D: quelle est la différence entre la création de variables à l'intérieur de love.load au lieu d'en haut du fichier main.lua?

Cette fonction est appelée exactement une fois au début du jeu.

et rien d'autre vraiment. En outre, il a un paramètre, qui sont des arguments de ligne de commande.

Donc, si vous n'utilisez pas les args, quelle est la différence entre:

x = 5 

-- rest of code 

et

function love.load() 
    x = 5 
end 

-- rest of code 

Le plus grand avantage d'éviter love.load est que vous pouvez faire à la place x locale global. Y a-t-il des avantages à utiliser love.load?

Répondre

1

Je ne pense pas qu'il y ait de différence pour les valeurs simples (comme ce que vous montrez dans vos exemples), mais un code plus complexe qui utilise love.graphics ou d'autres composants doit être exécuté depuis love.load car il garantit que le moteur est correctement configuré et initialisé à ce moment-là.

0

Tout comme vous l'avez dit vous-même, love.load() ne s'exécute qu'une fois au début et est donc parfait pour initialiser les variables. Tout ce qui se trouve en dehors de cette fonction peut être chargé plus souvent. Essayez de créer un fichier conf.lua et activez la console. Ensuite, imprimez() quelque chose en dehors de love.load() et vous verrez.

-- conf.lua 
function love.conf(t) 
    t.console = true 
end 

-- main.lua 
print("Hello World!") 
function love.load() 
end 

Pour moi, il a toujours imprimé "Hello World!" deux fois au début du jeu.

Tout comme Paul Kulchenko a déclaré, il pourrait ne pas faire de différence avec des valeurs simples, mais vous ne saurez jamais ...;) a été exécuté

1

Après la main.lua, appelle l'amour love.run, qui détient la principale boucle de jeu. L'une des premières choses est love.run, appel love.load(...)... détient les arguments de ligne de commande pour votre jeu, que vous pouvez trouver utile.

Cela signifie que love.load fonctionne après tout votre code main.lua, mais avant love.draw, love.update et similaires commencent à être appelé.

Quelle est la valeur que cela a, pour la plupart à vous.