I haven’t yet subscribed to Corona, but I’m preparing to after the holidays. Anyways, today I went through my code and stuck it where I think it should be if I were using Storyboard API. My questions are:
-
What things do I have to insert into the local group? All objects, just images, etc.?
-
Will my code even work? As in, did I stick things into their proper spots, or did I screw up somewhere? 
Edit: I haven’t done the exitScene and destroyScene functions yet, but I think I can manage that after everything is working in the other functions.
[lua]display.setStatusBar(display.HiddenStatusBar)
local storyboard = require( “storyboard” )
local scene = storyboard.newScene()
require(“sprite”)
require(“physics”)
function scene:createScene(event)
local group = self.view
– Create Scene
local background = display.newImage(“images/game_background.png”, 0, 0)
ground = display.newImage(“images/game_ground.png”, 0, 445)
physics.addBody(ground, “static”)
function ground:collision(event)
event.other:removeSelf()
end
leftBoundary = display.newRect(-45, 0, 45, 480)
leftBoundary:setFillColor(0, 0, 0)
rightBoundary = display.newRect(800, 0, 45, 480)
rightBoundary:setFillColor(0, 0, 0)
coinSound = audio.loadSound(“audio/game_collectcoin.mp3”)
– Create Piggy Bank
local piggyBankSheet = sprite.newSpriteSheet(“images/game_piggybank.png”, 96, 96)
local piggyBankSet = sprite.newSpriteSet(piggyBankSheet, 1, 6)
sprite.add(piggyBankSet, “pigmleft”, 1, 3, 150, 0)
sprite.add(piggyBankSet, “pigmright”, 4, 3, 150, 0)
piggyBank = sprite.newSprite(piggyBankSet)
physics.addBody(piggyBank, “static”)
piggyBank.x = display.contentWidth / 2
piggyBank.y = 397
– Create Buttons
local motionX = 0
local speed = 8
local buttonSheet = sprite.newSpriteSheet(“images/game_buttons.png”, 72, 72)
local buttonSet = sprite.newSpriteSet(buttonSheet, 1, 4)
sprite.add (buttonSet, “leftn”, 1, 1, 60000, 0)
sprite.add (buttonSet, “leftp”, 2, 1, 60000, 0)
sprite.add (buttonSet, “rightn”, 3, 1, 60000, 0)
sprite.add (buttonSet, “rightp”, 4, 1, 60000, 0)
leftButton = sprite.newSprite(buttonSet)
leftButton.x = 51
leftButton.y = 429
rightButton = sprite.newSprite(buttonSet)
rightButton.x = 749
rightButton.y = 429
– Display Score
scorePlaceOne = 0
scorePlaceTwo = 0
scorePlaceThree = 0
scoreText = display.newText("$" … scorePlaceOne … “.” … scorePlaceTwo … scorePlaceThree, 5, 10, “309”, 60)
scoreText:setTextColor(0, 0, 0)
end
function scene:enterScene(event)
local group = self.view
– Start Physics
physics.start()
physics.setGravity(0, 9.8)
– Create Scene
ground:addEventListener(“collision”, ground)
– Create Piggy Bank
function piggyBank:collision(event)
if (event.other.type == “coinbronze”) then
scorePlaceThree = scorePlaceThree + 1
audio.play(coinSound)
elseif (event.other.type == “coinsilver”) then
scorePlaceThree = scorePlaceThree + 5
audio.play(coinSound)
elseif (event.other.type == “coingold”) then
scorePlaceTwo = scorePlaceTwo + 1
audio.play(coinSound)
elseif (event.other.type == “rock”) then
end
event.other:removeSelf()
end
piggyBank:addEventListener(“collision”, piggyBank)
– Create Buttons
local function touchLeft(event)
motionX = -speed
leftButton:prepare(“leftp”)
leftButton:play(“leftp”)
piggyBank:prepare(“pigmleft”)
piggyBank:play(“pigmleft”)
end
local function touchRight(event)
motionX = speed
rightButton:prepare(“rightp”)
rightButton:play(“rightp”)
piggyBank:prepare(“pigmright”)
piggyBank:play(“pigmright”)
end
local function movePiggyBank(event)
piggyBank.x = piggyBank.x + motionX
if (piggyBank.x < -33) then piggyBank.x = 833
elseif (piggyBank.x > 833) then piggyBank.x = -33 end
end
local function stopPiggyBank(event)
if (event.phase == “ended”) then
motionX = 0
leftButton:prepare(“leftn”)
leftButton:play(“leftn”)
rightButton:prepare(“rightn”)
rightButton:play(“rightn”)
piggyBank:pause()
end
end
leftButton:addEventListener(“touch”, touchLeft)
rightButton:addEventListener(“touch”, touchRight)
Runtime:addEventListener(“enterFrame”, movePiggyBank)
Runtime:addEventListener(“touch”, stopPiggyBank)
– Create Projectiles
function createProjectiles()
local projectilesheet = sprite.newSpriteSheet(“images/game_projectiles.png”, 48, 48)
local projectileset = sprite.newSpriteSet(projectilesheet, 1, 24)
sprite.add (projectileset, “coinbronze”, 1, 6, 250, 0)
sprite.add (projectileset, “coinsilver”, 7, 6, 250, 0)
sprite.add (projectileset, “coingold”, 13, 6, 250, 0)
sprite.add (projectileset, “rock”, 19, 6, 250, 0)
local projectile = sprite.newSprite(projectileset)
physics.addBody(projectile, “dynamic”)
projectile.isSensor = true
projectile.isFixedRotation = true
local chooseProjectile = math.random(0, 13)
if (chooseProjectile >= 0 and chooseProjectile <= 4) then
projectile.type = “coinbronze”
projectile:prepare(“coinbronze”)
projectile:play(“coinbronze”)
elseif (chooseProjectile >= 5 and chooseProjectile <= 8) then
projectile.type = “coinsilver”
projectile:prepare(“coinsilver”)
projectile:play(“coinsilver”)
elseif (chooseProjectile >= 9 and chooseProjectile <= 11) then
projectile.type = “coingold”
projectile:prepare(“coingold”)
projectile:play(“coingold”)
elseif (chooseProjectile >= 12 and chooseProjectile <= 13) then
projectile.type = “rock”
projectile:prepare(“rock”)
projectile:play(“rock”)
end
local chooseLocation = math.random(0, 1)
projectile.y = 300
projectile.x = -24 + chooseLocation * 848
projectile:applyLinearImpulse(0.2 - (chooseLocation * 0.4), -math.random(0.75, 3.475) / 10, projectile.x, projectile.y)
return projectile
end
timer.performWithDelay(math.random(750, 1500), createProjectiles, 0)
– Update
if (scorePlaceTwo >= 10) then
scorePlaceTwo = scorePlaceTwo - 10
scorePlaceOne = scorePlaceOne + 1
end
if (scorePlaceThree >= 10) then
scorePlaceThree = scorePlaceThree - 10
scorePlaceTwo = scorePlaceTwo + 1
end
scoreText.text = “$” … scorePlaceOne … “.” … scorePlaceTwo … scorePlaceThree
scoreText:setReferencePoint(display.TopLeftReferencePoint)
scoreText.x = 5
leftButton:toFront()
rightButton:toFront()
leftBoundary:toFront()
rightBoundary:toFront()
end
function scene:exitScene(event)
local group = self.view
end
function scene:destroyScene(event)
local group = self.view
end
scene:addEventListener(“createScene”, scene)
scene:addEventListener(“enterScene”, scene)
scene:addEventListener(“exitScene”, scene)
scene:addEventListener(“destroyScene”, scene)
return scene[/lua] [import]uid: 103624 topic_id: 17828 reply_id: 70033[/import]