2013-12-14 2 views
0

Я довольно новый для короны, и я не могу найти решение моей проблемы:Предыдущая сцена не удаляется

У меня есть уровни в моей игре, и я использую раскадровку, когда игрок нажимает кнопку nextlevelbutton, которую они отправляют на сцену уровня 2, сцена начинается с storyboard.removeALL(), но это не удаляет предыдущую сцену, и мой фон перепутался.

function nextlevel(event) 
    storyboard.gotoScene("level2") 
end 

function win() 
    nextlevelbutton = display.newRoundedRect(display.contentCenterX, 285, 120, 30, 3) 
    nextlevelbutton:setFillColor(61/255,61/255,61/255) 
    nextleveltxt = display.newText({ text = "Next Level", font = native.systemFontBold, fontsize = 20, x= display.contentCenterX, y = 285 }) 
    nextlevelbutton:addEventListener("tap", nextlevel) 

    end 

Это все внутри сцены: функция enterScene.

Это начало level2 сцены:

local storyboard = require("storyboard") 
local scene = storyboard.newScene() 

storyboard.removeAll() 

Я попытался положить NextLevel событие внутри функции выигрыша, но ничего не произошло.

Благодаря

ответ

0

Это должно помочь вам:

http://www.coronalabs.com/blog/2013/04/02/cleaning-up-display-objects-andlisteners/

Если загрузка меню, и вы хотите, чтобы удалить ВСЕ от всех других классов, затем используйте:

storyboard.purgeAll() 

, что должно остановить всех слушателей и удалить все объекты.

Другой вещь, которую вы могли бы сделать, это добавить этот код:

function scene:didExitScene(event) 
storyboard.purgeScene("sceneyouareleaving") 
end 
scene:addEventListener("didExitScene") 

Все, что вам нужно сделать, это позвонить этой функции и ваши сделали :)

Надеется, что это помогает!

+0

Хмм, я попробовал оба способа, но, похоже, не работает. – Yupie

+0

Попробуйте "storyboard.purgeScene (" sceneyouareleaving ")" before "storyboard.gotoScene (" level2 ")" – apmartin1991

+0

Хм, это не работайте либо. В функции я сначала говорю: storyboard.purgescene и с задержкой по таймеру Я использую storyboard.gotoScene, но это дает мне ошибку: попытка индексировать поле contentbounds значение nil – Yupie

0

Кроме того, как ваш «перепутались» фон может предложить, пожалуйста, не забудьте добавить все объекты, которые создают для просмотра группы:

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

А затем при создании объектов, например:

background = display.newImageRect("gfx/bg.png", 1425, 900) 
background:setReferencePoint(display.TopLeftReferencePoint) 
background.x = 0 
background.y = 0 
background:setFillColor(0, 255, 255) 

Не забудьте добавить его в группу:

group:insert(background) 
+0

В моей функции createcene я создаю все экранные объекты, и в конце концов я помещаю их в группу. После этого я запускаю функцию enterscene и перемещаю некоторые вещи и т. Д. В одной из функций в enterscene я ставлю: storyboard.gotoScene («level2»). Затем меня отвезут на вторую сцену. Там я также поставил: storyboard.removeAll() в начале. Но все же объекты с первой сцены, похоже, не удаляются и остаются на второй сцене. – Yupie

0

мне как-то удалось решить. Я думаю, что я сделал что-то неправильно с позициями функций и групп. В любом случае спасибо за помощь!

Смежные вопросы