2013-04-04 1 views
0

Comment mettre à jour ou manipuler une image-objet imbriquée dans plusieurs groupes?Les sprites de mise à jour imbriqués dans les groupes

J'ai d'abord essayé d'ajouter l'événement « enterFrame » directement à la classe désirée avec l'image-objet (sans succès)

Mon code

local box = {} 

-- PUBLIC FUNCTIONS 

function box:new() 

    local group = display.newGroup() 

    local image = display.newImage("crate.png") 

    group:insert(image) 

    function group:update() 
     image.rotation = image.rotation + 1 
    end 

    return group 
end 

return box 

Deuxièmement je pensais d'ajouter un

Runtime:addEventListener("enterFrame", enterFrame) 

dans ma scène, puis en faisant défiler les groupes ajoutés à la scène (scene.view) et d'y appeler une fonction de mise à jour personnalisée qui envoie la mise à jour vers l'avant jusqu'à ce qu'elle réagisse hes ma classe. Cependant, je n'ai pas trouvé un moyen de vérifier si le groupe a une méthode de mise à jour ou non. Maintenant, j'appelle simplement la mise à jour même si le groupe ne l'a pas.

function enterFrame (event) 
    local group = scene.view 
    for i=1,group.numChildren do 
     group[i]:update() 
    end 
end 

Répondre

1

boîte locale = {}

Vous pouvez essayer cette solution simple

-- PUBLIC FUNCTIONS 

function box:new() 

    local group = display.newGroup() 

    local image = display.newImage("crate.png") 

    group:insert(image) 
    group.isThereUpdate = true 
    // or group.isThereUpdate = false 

    function group:update() 
     image.rotation = image.rotation + 1 
    end 

    return group 
end 

return box 


function enterFrame (event) 
    local group = scene.view 
    for i=1,group.numChildren do 
     if group[i].isThereUpdate then 
      group[i]:update() 
     end 
    end 
end 
+0

fonctionne bien, vous ne savez pas comment utiliser 'Durée: addEventListener ("enterFrame", enterFrame)' définir l'écouteur directement à la fonction de mise à jour 'group: update'? – Sunkas

+0

Vous voulez dire quelque chose comme Runtime: addEventListener ("enterFrame", groupe: mise à jour)? –

+0

Oui "quelque chose comme ça". Cela me donne une 'fonction arguments attendus près de ')'' -error essayant ce code dans ma nouvelle méthode() – Sunkas

Questions connexes