0
我已經創建稱爲moonclass.lua 一個Lua文件,該文件創建一個月亮 我已經建立這個類的兩個實例的顯示對象相同的顯示對象類的兩個實例,又名兩顆衛星,這些都是在level1.lua電暈SDK,旋轉
但是,當我嘗試旋轉兩個衛星,只有最後創建的月亮將旋轉,無論我指的是旋轉到哪一個。下面
moonclasss.lua:
local moon = {}
local moon_mt = { __index = moon } -- metatable
local sprite
function moon.new(name) -- constructor
local newMoon = {
name = name or "unnamed",
}
return setmetatable(newMoon, moon_mt)
end
function moon:draw(x,y,group)
sprite = display.newImage("image/moon.png")
sprite.x = x
sprite.y = y
physics.addBody(sprite, "dynamic", { density=1, friction=0.8, bounce=0.05, radius=145 })
group:insert (sprite)
end
function moon:talk() print(self.name .. " is called.")end
function moon:y(y)
sprite.y = sprite.y + y
return y
end
function moon:x(x)
sprite.x = sprite.x + x
return x
end
function moon:rotate(r)
sprite.rotation = sprite.rotation + r
return sprite
end
return moon
和level1.lua:
local storyboard = require ("storyboard")
local scene = storyboard.newScene()
storyboard.purgeScene ("menu")
display.setStatusBar(display.HiddenStatusBar)
local physics = require("physics")
physics.start()
physics.setGravity(0, 0)
function scene:createScene(event)
local group = self.view
local background = display.newGroup()
local foreground = display.newGroup()
group:insert(background)
group:insert(foreground)
--BACKGROUND
backgroundimage = display.newImage("image/galaxy background.png")
foreground:insert(backgroundimage)
backgroundimage.x = display.contentWidth/2
backgroundimage.y = display.contentWidth/-1
require "starclass"
require "controls"
local moon = require ("moonclass")
local moon1 = moon.new("moon1")
moon1:draw(0,400,foreground)
local moon2 = moon.new("moon2")
moon2:draw(300,400,foreground)
moon1:talk()
moon2:talk()
local platform = require "platformclass"
platform.draw(512,200,foreground)
local platform2 = require "platformclass"
platform2.draw(50,0,foreground)
local rocket = require "rocketclass"
rocket.draw(200,600,foreground)
function gameloop(event)
--if (rockety > -1920 and rockety < 320) then
--foreground.y = rockety + 320
--end
moon2:rotate(1)
moon1:rotate(-2)
end
Runtime:addEventListener("enterFrame", gameloop)
end
-- ENTER SCENE --
function scene:enterScene (event)
--local chapter1level1 = require("scene objects").loadlevelenterscene()
end
-- EXIT SCENE --
function scene.exitScene(event)
controlthrust:removeEventListener("touch", thrust)
controlleft:removeEventListener("touch", rotateleft)
controlright:removeEventListener("touch", rotateright)
Runtime:removeEventListener("enterFrame", gameloop)
end
scene:addEventListener("createScene", scene)
scene:addEventListener("enterScene", scene)
scene:addEventListener("exitScene", scene)
return scene
如果你能告訴我一個構造函數我想創建的一個例子,作爲即時通訊也不太清楚怎麼添加到構造函數,我怎麼會那麼叫它 – Krisdom 2013-02-09 15:05:45
@Krisdom - [來自PiL的簡單例子](http://www.lua.org/pil/16.1.html) – 2013-02-09 15:30:24
我更新了上面的代碼,現在顯示了我的構造函數以及它如何實現,但我仍然得到完全相同的問題。 – Krisdom 2013-02-09 19:37:41