2012-09-07 1 views
0

2 차원 배열에 애니메이션 스프라이트 그리드가 있지만 스프라이트 오브젝트에 eventListener를 배치하면 다음 오류가 표시됩니다. "Director ERROR : Failed to 로드 모듈 '게임'- 파일이 존재하고 그것이 맞는지 확인하십시오. ", 다음 장면을 그리기 위해 코드를 제거하면 그리드의 애니메이션 파이어 볼이 튀어 나오지만 (for nice) touchevents를 구현하고 싶습니다. 그리드의 개별 스프라이트 도와주세요. 감사합니다Corona sdk를 사용하는 스프라이트의 그리드 (2D 배열)에 대한 touchEvent

다음

이 코드 :

모듈 (..., package.seeall) 새로운 기능()

local localGroup = display.newGroup() 

local gamebg=display.newImageRect("gameBG.png",_W,_H) 
gamebg:setReferencePoint(display.centerReferencePoint) 
gamebg.x=_W/2 
gamebg.y=_H/2 
swapButton = {} --A 2D Array 
local instance = {} 

require "sprite" 


local tempX=130 
local tempY=60 

for i = 0, 6, 1 do 
    swapButton[i]={} 
    instance[i]={} 

    for j=0,6,1 do  
     instance[i][j]=sprite.newSprite(sprite.newSpriteSet(sprite.newSpriteSheet("fireBall.png",36,36),1,40)) 
     instance[i][j].x=tempX 
     instance[i][j].y=tempY 
     instance[i][j]:prepare() 
     instance[i][j]:play() 

     instance[i][j]:addEventListener("touch",myTouchListener) 
     swapButton[i][j]= display.newImage("circle.png",40,40) 
     swapButton[i][j].x=tempX 
     swapButton[i][j].y=tempY 
     tempX=tempX+40 


    end 
    tempX=130 
    tempY=tempY+40 
end 

function myTouchListener:touch(event) 
if event.phase == "began" then 
    display.getCurrentStage():setFocus(event.target); 
    print(display.getCurrentStage()) 
elseif event.phase=="moved" then 
print("moved") 
elseif event.phase == "ended" then 
    display.getCurrentStage():setFocus(nil); 
end 



localGroup:insert(gamebg) 


return localGroup 

감사

-Hemanth

답변

0

청취자의 최종 성명이 누락되었습니다. myTouchListener를 선언하지 않았으므로 구현 자체가 불투명합니다. 다음을 시도해보십시오.

module(..., package.seeall) 
function new() 

    local localGroup = display.newGroup() 

    local gamebg=display.newImageRect("gameBG.png",_W,_H) 
    gamebg:setReferencePoint(display.centerReferencePoint) 
    gamebg.x=_W/2 
    gamebg.y=_H/2 
    swapButton = {} --A 2D Array 
    local instance = {} 

    require "sprite" 


    local tempX=130 
    local tempY=60 

    for i = 0, 6, 1 do 
     swapButton[i]={} 
     instance[i]={} 

     for j=0,6,1 do 
      instance[i][j]=sprite.newSprite(sprite.newSpriteSet(sprite.newSpriteSheet("fireBall.png",36,36),1,40)) 
      instance[i][j].x=tempX 
      instance[i][j].y=tempY 
      instance[i][j]:prepare() 
      instance[i][j]:play() 

      function myTouchListener(event) 
       if event.phase == "began" then 
        display.getCurrentStage():setFocus(event.target); 
        print(display.getCurrentStage()) 
       elseif event.phase=="moved" then 
        print("moved") 
       elseif event.phase == "ended" then 
        display.getCurrentStage():setFocus(nil); 
       end 
      end 

      instance[i][j]:addEventListener("touch",myTouchListener) 
      swapButton[i][j]= display.newImage("circle.png",40,40) 
      swapButton[i][j].x=tempX 
      swapButton[i][j].y=tempY 
      tempX=tempX+40 
     end 
     tempX=130 
     tempY=tempY+40 
    end 

    localGroup:insert(gamebg) 


    return localGroup 
end 
+0

감사합니다 pookzilla는 현재 작동 중입니다. – user1590042

관련 문제