essayez d'appeler une valeur nulle
for i = 1, groupA:getNumChildren() do
local sprite = groupA:getChildAt(i)
if cute.anim[1]:collidesWith(sprite) then
youLoose()
end
end
local function youLoose()
local font3 = TTFont.new("billo.ttf", 20, " 1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,?")
local text7 = TextField.new(font2, "gameover")
text7:setPosition(200, 100)
stage:addChild(text7)
GameLost = Bitmap.new(Texture.new("gameover.jpg"))
Background : removeFromParent()
groupA : removeFromParent()
stage: addChild(GameLost)
alert()
end
Il donne une erreur qui dit 'attempt to call global youLoose (a nil value)
, où en suis-je dans l'erreur?"
- Cela signifie que
cute.anim[1]
n'ont pas decollidesWith
méthode. - Ce moteur de jeu est présent, gideros? peu importe, vous devez ajouter un tag pour la bibliothèque.
- Oui, son gideros.
Vous devez vous connecter pour publier un commentaire.
Noter que
collideswith
n'est pas le même quecollidesWith
; si cette erreur vous avez posté est correcte, alors vous avez affiché le code qui est différent de ce que vous êtes en utilisant. Il se pourrait que la méthode est vraiment appelécollidesWith
(il semble être si c'est celui desprite1
), mais vous avez utilisécollideswith
. Par ailleurs, si le code affiché est ce que vous avez utilisé, alors l'erreur est probablementattempt to call collideswith(a nil value)
, donccute.anim[1]
n'est pas unsprite1
objet, mais il n'est pas nul en soit autrement, l'erreur serait différent.Une fois que vous avez corrigé cela, vous remarquerez que
youLoose
est défini après quefor
boucle, lorsque vous appelezyouLoose()
il n'est pas encore défini. Vous allez avoir à déplacer lelocal function youLoose()
fonction de avant la boucle. Parce que la boucle n'est pas lui-même dans une fonction, mais est au niveau du module, il est exécuté avant tout code suivant, pour toutes les fonctions (local ou global) qui sont utilisés dans la boucle doit être défini avant la boucle.Note que "en vrac" ne signifie pas la même chose que "perdre". Vérifier Grammaire-monstre pour voir la différence. Probablement partout où vous avez le mot "lâche" vous devriez changer de "perdre".