Lua中使用middleclass库生成带随机x坐标的敌人

我用lua/LÖVE做了一个游戏,使用了middleclass库进行面向对象编程,但我遇到了一个问题。我的游戏是一个太空射击游戏,有一个基类“entity”,一个子类“player”,以及一个“meteor”(从屏幕顶部掉落的随机x坐标的敌人),但我不知道如何为meteor(即一个具有随机x坐标的干扰物)制作随机生成系统。

Entity = class('Entity')

function Entity:initialize(x, y, width, height, image)
  self.x = x
  self.y = y
  self.width = width
  self.height = height
  self.image = image
end

function Entity:draw()
  love.graphics.draw(self.image, self.x, self.y)

    end

meteor.lua = https://pastebin.com/9WLENrLN gameState.lua = https://pastebin.com/p0fH1XmN

(游戏文件)

每次启动游戏时,meteor对象的x坐标都相同,我希望每2秒生成一个具有随机x坐标的meteor对象,但我不知道如何实现。我觉得我做错了什么,但我不知道。:/

function Meteor:initialize()
  self.speed = 400
  meteorWidth = 45
  meteorHeight = 40
  self.x = love.math.random(0, WINDOW_WIDHT - meteorWidth)
  meteorY = 0 - meteorWidth
  Entity.initialize(self, self.x, meteorY, 64, 64, love.graphics.newImage('assets/meteor.png'))
end

接下来,我还希望在meteor对象离开屏幕时将其删除。我知道如何在非面向对象的情况下做到这一点,但使用面向对象时我卡住了...

非常感谢!

我应该如何创建随机生成系统?应该在gameState.lua文件中从meteor类蓝图创建多个meteor对象吗?

点赞