2014-06-17 5 views
0

안녕하세요. 저는 현재 원근감 라이브러리를 사용할 응용 프로그램을 개발 중입니다. 라이브러리를 가져 왔지만 올바른 코드가 작성되었지만 사용할 수없는 카메라가 제대로 작동하지 않습니다. 나는 당신이 버튼으로 움직이고있는 주인공을 따라가는 카메라를 얻으려고 시도하고있다. 나는 그와 배경과 "나무"를 카메라에 추가하고 초점으로 설정했지만 여전히 그를 따라 가지 않습니다. 여기 내 코드는 내가 잘못한 것과 해결 방법을 말해 준다. 당신은 (아마도 enterScene 핸들러에 가야한다) camera:track()에 대한 호출을 누락처럼원근감 가상 카메라 라이브러리 문제 코로나 SDK

local storyboard = require("storyboard") 
local scene = storyboard.newScene() 
local perspective = require("perspective") 
local camera = perspective.createView() 
local physics = require("physics") 
--physics.setDrawMode("hybrid") 



local function start(event) 
if(event.phase == "ended") then 

end 
end 

local bg 
local floor 
local leftwall 
local rightwall 
local player 
local button1 
local button2 
local pausebtn 
local tree 

local function b1(event) 
if(event.phase == "ended") then 
player:applyLinearImpulse(-.01, -.1) 
end 
end 

local function b2(event) 
if(event.phase == "ended") then 
player:applyLinearImpulse(.01, -.1) 
end 
end 

local function playerCollision(event) 
if(event.phase == "began") then 
storyboard.gotoScene("gameover") 
end 
end 

local function pause(event) 
if(event.phase == "ended") then 
storyboard.showOverlay("pause") 
physics.pause() 
end 
end 

function scene:createScene(event) 
local group = self.view 
    physics.start() 



    bg = display.newImage("bg.png", display.contentWidth/2, display.contentHeight/2, display.contentWidth, display.contentHeight) 
camera:add(bg, 3, false) 
    player = display.newImage("player.png", display.contentWidth/2, display.contentHeight/2, display.contentWidth, display.contentHeight) 
    player.collision = playerCollision 
camera:add(player, 1, true) 
    tree = display.newImage("tree.png", 200, 200) 
camera:add(tree, 2, false) 

    floor = display.newRect(285, 375, 570, 1) 
    button1 = display.newImage("button1.png", 50, 275) 
    button2 = display.newImage("button2.png", 515, 275) 

    leftwall = display.newRect(0, -1000, 1, 5000) 
    rightwall = display.newRect(570, 300, 1, 5000) 

    pausebtn = display.newImage("pausebtn.png", 540, 30) 

    -- Physics 
    physics.addBody(player) 

    physics.addBody(floor) 
    floor.bodyType = "static" 

    physics.addBody(rightwall) 
    rightwall.bodyType = "static" 

    physics.addBody(leftwall) 
    leftwall.bodyType = "static" 



    group:insert(bg) 
    group:insert(player) 
    group:insert(floor) 
    group:insert(button1) 
    group:insert(button2) 
    group:insert(rightwall) 
    group:insert(leftwall) 
    group:insert(pausebtn) 
    group:insert(tree) 

end 

function scene:enterScene(event) 
print("game") 
button1:addEventListener("touch", b1) 
button2:addEventListener("touch", b2) 
player:addEventListener("collision", playerCollision) 
pausebtn:addEventListener("touch", pause) 



end 

function scene:exitScene() 

player = nil 
camera:cancel() 


end 

function scene:destroyScene(event) 



end 

scene:addEventListener("createScene", scene) 

scene:addEventListener("enterScene", scene) 

scene:addEventListener("exitScene", scene) 

scene:addEventListener("destroyScene", scene) 

return scene 

답변

0

보인다. camera:setBounds(false)이 필요할 수도 있습니다.

그래도 문제가 해결되지 않으면 문제를 재현하기 위해 필요하지 않은 게시물의 코드를 모두 삭제하십시오. 내가 실행할 수있는 작은 예제로이 프로그램을 열면 업데이트를 시도하고 게시 할 수 있습니다.

+0

카메라 : track()을 코드에 추가했지만 작동하지 않습니다. 나는 EnterScene과 CreateScene 모두에서 이것을 시도했으며 camera : setBounds (false)는 문제를 해결하지 못한다. – user3558131