我的项目结构如下:
--Shooter
----sprites
------background.png
------player.png
------zombie.png
----units
------player.lua
------zombie.lua
----main.lua
----load.lua
----update.lua
----draw.lua
我的main.lua
将具有以下内容:
local Bullet = require("units.bullet")
local Player = require("units.player")
local Zombie = require("units.zombie")
require("load")
require("update")
require("draw")
require("functions")
love.window.setTitle("Shooter")
function love.load()
Load()
end
function love.update(dt)
Update(dt)
end
function love.draw()
Draw()
end
例如bullet.lua
:
local Bullet = {}
bulletSprite = love.graphics.newImage('sprites/bullet.png')
function Bullet.create()
local newBullet = {
pos = {},
speed = 10,
sprite = bulletSprite,
direction = 0,
dead = false
}
return setmetatable(newBullet, {__index = Bullet})
end
function Bullet:setPos(x, y)
self.pos.x = x
self.pos.y = y
end
function Bullet:setDirection(angle)
self.direction = angle
end
function Bullet:move(dt)
local distance = self.speed * dt * 60
self.pos.x = self.pos.x + math.cos(self.direction) * distance
self.pos.y = self.pos.y + math.sin(self.direction) * distance
end
function spawnBullet(bullets, player)
local newBullet = Bullet.create()
newBullet:setPos(player.pos.x, player.pos.y)
newBullet.direction = player.angle
table.insert(bullets, newBullet)
end
问题是units
文件夹中的所有文件都无法正确加载。从错误日志中,我可以看到它尝试在根目录中搜索bullet.lua
,然后在各种love2d
和lua
库中进行搜索。
我尝试过类似require("./units/bullet")
之类的事情,或将/
替换为.
,但到目前为止,还没有运气。
将这些文件从units
文件夹中提取到根文件夹中即可。但是,可以从sprites
文件夹加载图像(例如love.graphics.draw(sprites.background, 0, 0)
)。
有帮助吗?
答案 0 :(得分:0)
我想到两件事。
return Bullet
,return Player
等添加到您创建的每个模块中答案 1 :(得分:0)
我发现问题是,尽管我的main.lua
拥有正确的require
,但是我的update
文件却没有。