我会请求你的帮助,因为一个让我疯狂的错误.
哦……我正在使用LUA和Corona SDK btw ……
我正在创建一个船的实例.该船正在实例化,我可以访问其属性,但我无法访问任何方法!按照代码,我不知道该怎么做:
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,height)
- _spaceShip:setFillColor(140,140,0)
- _spaceShip.width = width
- _spaceShip.height = height
- local shipShape = { -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,height/2 }
- local shipMotorMaterial = { density = 1.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