I'm instantiating a ball and it works well, when I try to call centerCoordinatesOn it crashes.
Ball = Class{}
function Ball:init(skin)
-- simple positional and dimensional variables
self.width = 8
self.height = 8
-- these variables are for keeping track of our velocity on both the
-- X and Y axis, since the ball can move in two dimensions
self.dy = 0
self.dx = 0
-- this will effectively be the color of our ball, and we will index
-- our table of Quads relating to the global block texture using this
self.skin = skin
self.needsStartup = true
end
function Ball:centerCoordinatesOn(x, y, width)
print(x.." "..y.." "..width)--attempt to concatenate local 'width' (a nil value)
self.x = x + (width / 2) - 4
self.y = y - 8
end
self.ball = Ball()
self.ball.skin = math.random(7)
self.ball.centerCoordinatesOn(1,1,1)--crash
If I remove the method and just call the content of it manually it works fine:
self.ball.x = 1 + (1 / 2) - 4
self.ball.y = 1 - 8
I've also tried renaming the variables, maybe they would conflict with the internal methods of the class width -> self.width, but the same things happed even if I call them a,b,c.
:self.ball.centerCoordinatesOn(1,1,1)should beself.ball:centerCoordinatesOn(1,1,1). the:passesselfso a call without it should beself.ball.centerCoordinatesOn(self.ball, 1, 1, 1)- Nifim