2011-09-08 2 views
0

J'ai essayé d'écrire un tick personnalisé en utilisant le SDK Corona (en utilisant Lua). La clé semble être ces "eventListeners", mais j'essaie aussi de les faire travailler avec les classes. en ce moment j'ai cette classe "World" mis en place. J'essaie d'ajouter un EventListener à ma fonction "tick", mais Corona me dit que je ne peux pas le faire.Corona "tick" questions - addEventListener

function World:tick() 
--player:tick() 
--camera:tick(player.x,player.y) 
--for i=0,monsters.length do 
--  monster[i]:tick() 
    if(rwalk) then 
     mainGroup.x = mainGroup.x-10 
    elseif(lwalk) then 
     mainGroup.x = mainGroup.x+10 
    end 
end 
Runtime:addEventListener("enterFrame",tick) 

Erreur: Erreur d'exécution: échec de l'assertion! retraçage de pile: [C]:? [C]: dans la fonction 'assert' : dans la fonction 'getOrCreateTable' : dans la fonction 'addEventListener' : dans la fonction 'addEventListener' C: \ Users \ Evan \ Desktop \ Lua \ jeu test \ principal .lua: 337: dans le morceau principal

Répondre

3

Cela fonctionne pour moi. Devrait travailler pour vous:

World = {} 

function World:tick() 
    print "Hello!" 
end 

display.setStatusBar(display.HiddenStatusBar) 
Runtime:addEventListener("enterFrame", World.tick) 

Tout ce que vous étiez absent était de spécifier la fonction à l'aide World.tick au lieu de tick.

+0

oh. cela a fonctionné merci! mais maintenant je ne peux accéder à aucune des propriétés de mon objet monde ici. disons que j'ajoute la ligne (et l'initialisation à mon monde: new()): self.test = true n'importe où dans cette fonction. cela me donne une erreur que "test" est nul. est-il de toute façon de faire un écouteur d'événement tout en conservant l'objet et toutes ses propriétés? – Evan

+0

Si vous acceptez ma réponse et ouvrez une nouvelle question avec un exemple de code, je serai heureux de l'examiner. :) –

+0

oh d'accord. J'ai accepté votre réponse mais je vais commencer une nouvelle question. – Evan