local GameScene = class(“GameScene",function()
— return cc.Scene:create()
return cc.Scene:createWithPhysics()
end)
function GameScene.create()
local scene = GameScene.new()
scene:addChild(scene:createLayerFarm())
— scene:addChild(scene:createLayerMenu())
local edgeBody = cc.PhysicsBody:createEdgeBox( scene.visibleSize, cc.PhysicsMaterial( 1,1 ,0), 3)
local edgeNode = cc.Node:create()
scene:addChild( edgeNode)
edgeNode:setPosition( scene.visibleSize.width * 0.5 , scene.visibleSize.height * 0.5 )
edgeNode:setPhysicsBody(edgeBody)
scene :getPhysicsWorld():setDebugDrawMask(cc.PhysicsWorld.DEBUGDRAW_ALL)
local gravity = cc.vertex2F( 0, –100)
scene:getPhysicsWorld():setGravity( gravity )
return scene
end
function GameScene:ctor()
self.visibleSize = cc.Director:getInstance():getVisibleSize()
self.origin = cc.Director:getInstance():getVisibleOrigin()
self.schedulerID = nil
end
function GameScene:playBgMusic()
— local bgMusicPath = cc.FileUtils:getInstance():fullPathForFilename(“background.mp3″)
— cc.SimpleAudioEngine:getInstance():playMusic(bgMusicPath, true)
— local effectPath = cc.FileUtils:getInstance():fullPathForFilename(“effect1.wav")
— cc.SimpleAudioEngine:getInstance():preloadEffect(effectPath)
end
local function makeBall(layer, point, radius, material)
material = material or MATERIAL_DEFAULT
local ball
if layer.ball then
ball = cc.Sprite:createWithTexture(layer.ball:getTexture())
else
ball = cc.Sprite:create(“ball.png")
end
ball:setScale(0.13 * radius)
local body = cc.PhysicsBody:createCircle(radius, material)
ball:setPhysicsBody(body)
ball:setPosition(point)
return ball
end
— create farm
function GameScene:createLayerFarm()
local layer = cc.Layer:create()
— add in farm background
local bg = cc.Sprite:create(“farm.jpg")
bg:setPosition(self.origin.x + self.visibleSize.width / 2 + 80, self.origin.y + self.visibleSize.height / 2)
layer:addChild(bg)
local sp1 = makeBall(layer, cc.p(self.visibleSize.width / 2 , self.origin.y + self.visibleSize.height / 2), 10);
layer:addChild(sp1)
local menuSprite = cc.Sprite:create( “menu1.png" )
local menuBody = cc.PhysicsBody:createBox( menuSprite:getContentSize(), cc.PhysicsMaterial( 1, 0.5, 0))
menuSprite:setPhysicsBody( menuBody )
layer:addChild( menuSprite )
menuSprite:setPosition( 100 ,100 )
—
local menuSprite2 = cc.Sprite:create( “ball.png" )
— local menuBody2 = cc.PhysicsBody:createBox( menuSprite:getContentSize(), cc.PhysicsMaterial( 1, 0.5, 0))
local menuBody2 = cc.PhysicsBody:createCircle( 10, cc.PhysicsMaterial( 1, 0.1, 0))
menuSprite2:setPhysicsBody( menuBody2 )
layer:addChild( menuSprite2 )
menuSprite2:setPosition( 200 ,100 )
return layer
end
return GameScene
cocos2d-LUA