Атрибут класса получает нулевое значение, когда я пытаюсь использовать метод в классе (Lua и Love2d) - PullRequest
0 голосов
/ 14 апреля 2020

Итак, я создал функцию внутри вызова класса extraBalls(), что он для этого генерирует, дополнительные шары и вставляет их в таблицу self.balls, но я не могу получить доступ к параметрам класса в методе внутри класса

function PlayState:extraBalls()

    ball1=Ball(math.random(7))
    ball2=Ball(math.random(7))

    ball1.x=self.balls[1].x
    ball1.x=self.balls[1].x

    ball1.y=self.balls[1].y
    ball2.y=self.balls[1].y


    ball1.dx=self.balls[1].dx 
    ball2.dx=self.balls[1].dx

    ball1.dy=-math.abs(self.balls[1].dy/2)
    ball1.dy=-math.abs(self.balls[1].dy/4)

    table.insert(self.balls, ball1)
    table.insert(self.balls, ball2)

    self.ballsCount = self.ballsCount + 2
end

я получаю эту ошибку

Error: src/states/PlayState.lua:260: attempt to index field 'balls' (a nil value)
stack traceback:
    [string "boot.lua"]:777: in function '__index'
    src/states/PlayState.lua:260: in function 'extraBalls'
    src/states/PlayState.lua:63: in function 'update'
    src/StateMachine.lua:22: in function 'update'
    main.lua:155: in function 'update'
    [string "boot.lua"]:612: in function <[string "boot.lua"]:594>
    [C]: in function 'xpcall'

Это начальный метод

function PlayState:enter(params)
    self.paddle = params.paddle
    self.bricks = params.bricks
    self.health = params.health
    self.score = params.score
    self.highScores = params.highScores
    self.level = params.level
    self.recoverPoints = 5000
    self.powerup=PowerUp(8)
    self.powerupcount=0
    self.balls={params.ball}
    -- give ball random starting velocity
    self.balls[1].dx = math.random(-200, 200)
    self.balls[1].dy = math.random(-50, -60)
    self.ballscount=1
end

я уже убедился, что передаваемый параметр не равен нулю Итак, как я могу получить эту ошибку?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...