2016-12-21 1 views
0

코로나 SDK (루아)로 게임을 제작하고 있지만 오류가 발생하여 코로나 포럼에서 많은 도움을받지 못해서 여기에 오기로 결정했습니다. 나는 최근에 프로젝트에서 일하고 있었고 사용자는 1 발의 총알을 발사하기 위해 총을 눌러야했다. 나는 총알이 발사 될 수 없다는 것과 같은 문제를 가지고있다. 그래서 나는 질문을 올렸고 나는 나의 문제를 해결 한 대답을 얻었다. 나는 내가 더 이상 프로젝트에서 일하고 싶지 않아서 그것을 삭제하기로 결정했다. 프로젝트를하고 싶었지만 휴지통에서 프로젝트를 복원 할 때 game.lua 파일에 도움이되는 코드가 없었습니다. 나는 다른 질문을 올렸지 만 많은 도움을받지 못해 여기에왔다.코로나 SDK 오류

사용자가 총에 닿았을 때 총알이 발사되지 않는 문제가 있습니다. 이전 솔루션을 시도했지만 많은 총알이 발사되어 오류가 어디서 왔는지 알지 못했거나 오류가 발생했기 때문에 문제를 해결할 수 없었습니다. 여기 내 코드입니다 :

game.lua (이 코드는 총알을 발사하지만 난 단지 한 번에 1을 발사하려면 한 번에 4를 발생 또한 어떻게 속도를 변경할 수 있습니다...) :

local bullet = {} 
local bCounter = 1 

local function shootBullet(event) 
if event.phase == "ended" then 
    bullet[bCounter] = display.newImage("bullet3.png" , minigun.x, minigun.y, 6, 6) 
    bullet[bCounter].value = bCounter 
    physics.addBody(bullet[bCounter], "dynamic") 
    bullet[bCounter].gravityScale = 0 
    bullet[bCounter].myName = "bullet" 
    bullet[bCounter]:setLinearVelocity(0, -200) 
    bCounter = bCounter + 1 

end 
end 


function scene:show(event) 
minigun:addEventListener("touch", shootBullet) 
end 

function scene:hide(event) 

end 

function scene:destroy(event) 
local sceneGroup = self.view 

end 

답변

0

이벤트 리스너의 끝에 return true (으)로 시도하십시오. 이벤트 전파를 중지하고 여러 번 호출되는 이벤트 리스너의 문제점을 해결해야합니다.

+0

아무 것도 변경하지 않았습니다. –

0

시도 - 당신은 당신이 그 이전처럼 단순히 setLinearVelocity 기능을 사용 총알의 시작 속도를 변경하려면

function scene:show(event) 
    local phase = event.phase 
    if phase == "will" then 
     minigun:addEventListener("touch", shootBullet) 
    end  
end 

(시험 터치 당 하나의 총알, 내가 대신 이미지의 구형을 사용).

+0

아무 것도 변경하지 않았습니다. 여전히 한 번에 4 개의 총알을 쏘습니다. –

+0

두 개의 총알을 발사합니다. –

+0

코드는 정상적으로 작동합니다. 하나의 총알을 쏜다. 'print ("minigun에 리스너 추가")'명령문을 사용하여 리스너를 minigun에 추가 할 수 있으며, 콘솔에서 콘솔이 몇 번 위의 메시지가 출력되는지 볼 수 있습니다. 너는 하나의 새끼를보아야한다. 그런 경우가 아니라면 미니건으로 어떻게 가는지 확인하십시오. 당신은 'gotoScene'을 두 번 호출합니다. – ldurniat