Huh still not working. And the funny thing is that there is one scene that seems to work fine.
So I’m currently looking at this scene which causes the error when I try to go to it.
[lua]
–
– mapselection.lua
–
local storyboard = require( “storyboard” )
local scene = storyboard.newScene()
– include Corona’s “widget” library
local widget = require “widget”
local difficultyLevel
local NUM_MAPS = 10
local maps = {}
local mapTitle
local MAP_NAMES = {“Foliage”, “Arctic Forest”, “Bleak Desert”, “Hideout”, “Barriers”, “Martian Hell”, “Glacial Fortress”, “The Bridge”, “Ancient Ruins”, “Enemy Territory”}
local currentMap = 1
local function onMapLeftBtnRelease(self, event)
maps[currentMap].isVisible = false
if currentMap == 1 then
currentMap = NUM_MAPS
else
currentMap = currentMap - 1
end
maps[currentMap].isVisible = true
mapTitle.text = MAP_NAMES[currentMap]
end
local function onMapRightBtnRelease(self, event)
maps[currentMap].isVisible = false
if currentMap == NUM_MAPS then
currentMap = 1
else
currentMap = currentMap + 1
end
maps[currentMap].isVisible = true
mapTitle.text = MAP_NAMES[currentMap]
end
local function onStartBtnRelease(self, event)
if event.phase == “ended” then
--fade does not work, maybe because of mte
storyboard.gotoScene( “game”, {effect=“fade”, time=300, params={level=currentMap, difficulty=difficultyLevel.text}} )
end
end
local function onBackBtnRelease(self, event)
if event.phase == “ended” then
storyboard.gotoScene( “menu”, “fade”, 300 )
end
end
local difficultyStepper
local mapStepper
– BEGINNING OF YOUR IMPLEMENTATION
–
– NOTE: Code outside of listener functions (below) will only be executed once,
– unless storyboard.removeScene() is called.
–
– Called when the scene’s view does not exist:
function scene:createScene( event )
local group = self.view
--some buttons need to be smooth
display.setDefault( “magTextureFilter”, “linear” )
display.setDefault( “minTextureFilter”, “linear” )
local backBtn = display.newText(“Back”, 0, 0, “Minecraftia”, 25)
backBtn:setReferencePoint( display.CenterReferencePoint )
backBtn.x = 70
backBtn.y = display.contentHeight - 20
backBtn.touch = onBackBtnRelease
backBtn:addEventListener(“touch”, backBtn)
local startBtn = display.newText(“Start”, 0, 0, “Minecraftia”, 25)
startBtn:setReferencePoint( display.CenterReferencePoint )
startBtn.x = display.contentWidth - 70
startBtn.y = display.contentHeight - 20
startBtn.touch = onStartBtnRelease
startBtn:addEventListener(“touch”, startBtn)
local difficultyText = display.newText(“Difficulty”, 0, 0, “Minecraftia”, 25)
difficultyText:setReferencePoint( display.CenterReferencePoint )
difficultyText.x = display.contentWidth * 0.5 - 90
difficultyText.y = 25
difficultyLevel = display.newText(“1”, 0, 0, “Minecraftia”, 25)
difficultyLevel:setReferencePoint( display.CenterReferencePoint )
difficultyLevel.x = display.contentWidth * 0.5 + 160
difficultyLevel.y = 25
–
local stepperSheet = graphics.newImageSheet(“Tower Defense Graphics/Menu Buttons/Stepper.png”,
{
width=200,
height=100,
numFrames=5,
sheetContentWidth=1000,
sheetContentHeight=100
})
difficultyStepper = widget.newStepper({
left=display.contentWidth * 0.5 - 40, top=-20,
width=200, height=100,
sheet=stepperSheet,
defaultFrame=1,
noMinusFrame=2,
noPlusFrame=3,
minusActiveFrame=4,
plusActiveFrame=5,
initialValue=1,
minimumValue=1,
maximumValue=5,
onPress=function(event) difficultyLevel.text = event.value end
})
difficultyStepper:scale(0.5, 0.5)
mapTitle = display.newText(MAP_NAMES[currentMap], 0, 0, “Minecraftia”, 25)
mapTitle:setReferencePoint( display.CenterReferencePoint )
mapTitle.x = display.contentWidth * 0.5
mapTitle.y = 70
local buttonSheet = graphics.newImageSheet(“Tower Defense Graphics/Menu Buttons/MapButton.png”,
{
width=103,
height=100,
numFrames=4,
sheetContentWidth=412,
sheetContentHeight=100
})
local mapLeftBtn = widget.newButton
{
left=0, top=130,
width=103, height=100,
sheet=buttonSheet,
defaultFrame=1,
overFrame=2,
onRelease=onMapLeftBtnRelease
}
mapLeftBtn:scale(0.5,0.5)
local mapRightBtn = widget.newButton
{
left=display.contentWidth - 100, top=130,
width=103, height=100,
sheet=buttonSheet,
defaultFrame=3,
overFrame=4,
onRelease=onMapRightBtnRelease
}
mapRightBtn:scale(0.5,0.5)
for i=1,NUM_MAPS do
--replace 1 with i when previews done
maps[i] = display.newImageRect(“Tower Defense Graphics/Map Previews/Map” … i … “.png”, 280, 180)
maps[i]:setReferencePoint( display.CenterReferencePoint )
maps[i].x = display.contentWidth * 0.5
maps[i].y = 190
maps[i].isVisible = false
group:insert(maps[i])
end
maps[currentMap].isVisible = true
– all display objects must be inserted into group
group:insert( backBtn )
group:insert( startBtn )
group:insert( difficultyText )
group:insert( difficultyLevel )
group:insert( difficultyStepper )
group:insert( mapTitle )
group:insert( mapLeftBtn )
group:insert( mapRightBtn )
display.setDefault( “magTextureFilter”, “nearest” )
display.setDefault( “minTextureFilter”, “nearest” )
end
– Called immediately after scene has moved onscreen:
function scene:enterScene( event )
local group = self.view
– INSERT code here (e.g. start timers, load audio, start listeners, etc.)
end
– Called when scene is about to move offscreen:
function scene:exitScene( event )
local group = self.view
storyboard.purgeScene(storyboard.getCurrentSceneName())
– INSERT code here (e.g. stop timers, remove listenets, unload sounds, etc.)
end
– If scene’s view is removed, scene:destroyScene() will be called just prior to:
function scene:destroyScene( event )
local group = self.view
if difficultyStepper then
difficultyStepper:removeSelf()
end
if mapStepper then
mapStepper:removeSelf()
end
end
– END OF YOUR IMPLEMENTATION
– “createScene” event is dispatched if scene’s view does not exist
scene:addEventListener( “createScene”, scene )
– “enterScene” event is dispatched whenever scene transition has finished
scene:addEventListener( “enterScene”, scene )
– “exitScene” event is dispatched whenever before next scene’s transition begins
scene:addEventListener( “exitScene”, scene )
– “destroyScene” event is dispatched before view is unloaded, which can be
– automatically unloaded in low memory situations, or explicitly via a call to
– storyboard.purgeScene() or storyboard.removeScene().
scene:addEventListener( “destroyScene”, scene )
return scene
[/lua]