6
我會問你的幫助是否有一個令我發瘋的錯誤。LUA和電暈錯誤:試圖調用方法'(一個零值) - 駕駛我瘋狂
喔...我用LUA電暈SDK順便說一句...
我創建一個船的一個實例。船正在實例化,我可以訪問它的屬性,但我無法訪問任何方法!按照代碼,我不知道該怎麼做:
spaceShip.lua:
require('gameConf')
spaceShip = {}
spaceShip.__index = spaceShip
function spaceShip:New(posX, posY, width, height)
local _spaceShip = nil
_spaceShip = {}
setmetatable(_spaceShip, spaceShip)
_spaceShip = display.newRect(posX - width/2, posY - height/2, width, height)
_spaceShip:setFillColor(140, 140, 140, 0)
_spaceShip.width = width
_spaceShip.height = height
local shipShape = { -width/2, -height/2, width/2, -height/2, width/2, height/2, -width/2, height/2 }
local shipShapeMaterial = { density = 1.0, friction = 1.0, bounce = 0.0 , shape = shipShape}
local shipMotor = { -width/2, height/3, width/2, height/3, width/2, height/2, -width/2, height/2 }
local shipMotorMaterial = { density = 1.0, friction = 1.0, bounce = 0.0 , shape = shipMotor}
physics.addBody(_spaceShip, shipShapeMaterial, shipMotorMaterial)
return _spaceShip
end
function spaceShip:log()
print("ship")
end
function spaceShip:applyFrontImpulse()
local angle = math.rad(self.rotation)
local xComp, yComp = math.cos(angle), -math.sin(angle)
local forceMag = 2
self:applyLinearImpulse(forceMag * xComp, forceMag * yComp, self.x, self.y)
end
和main.lua的一部分
require('camera')
require('gameConf')
require('meteor')
require('spaceShip')
-- Add Physics
local physics = require("physics")
physics.start()
physics.setDrawMode("hybrid")
physics.setGravity(0, 0)
-- Load camera
local camera = camera:New()
-- Containers
meteorManager = {}
shipManager = {}
-- Load Vector class
vector = require "vector"
-- Create one ship
local myShip = nil;
myShip = {}
myShip = spaceShip:New(600, 200, 30, 60)
table.insert(shipManager, myShip)
camera:insert(myShip)
myShip:log() <----- HERE IS THE ERROR
rest of the code...
在終端的錯誤是:
2013-03-21 19:18:15.736 Corona Simulator[48347:707] Runtime error:
2013-03-21 19:18:15.737 Corona Simulator[48347:707] ...t/iOS/Deep Space Harvest/Deep Space Harvest/main.lua:28: attempt to call method 'log' (a nil value)
stack traceback:
[C]: in function 'log'
...t/iOS/Deep Space Harvest/Deep Space Harvest/main.lua:28: in main chunk
是的!你是對的!我正在用顯示器定義我的metatable ...爲了更正,我創建了一個顯示spaceShip.body = ...現在它工作了!謝謝! – 2013-03-22 01:10:28
你能幫忙嗎? http://stackoverflow.com/questions/15716914/object-assignment-lua – user2136963 2013-03-30 15:30:25