如何解决实体组件具有不同的渲染顺序
我遇到的问题与渲染顺序有关。我的俄罗斯方块字段渲染背景,俄罗斯方块块和网格都具有不同的渲染顺序。我掉落的俄罗斯方块块有自己的渲染代码。下落的俄罗斯方块被绘制在背景和网格之间。
所以我的问题是如果组件(即背景网格块)具有不同的渲染顺序,我如何以正确的顺序渲染实体?我必须以不同的方式构建我的程序,特别是我的俄罗斯方块领域。但我不知道最好的方法是什么。
https://github.com/MonkeyToiletLadder/Luatris
main.lua 片段
function love.draw()
love.graphics.clear(0,0)
field:draw()
if current_tetromino then
current_tetromino:draw()
end
love.graphics.setColor(1,1,1)
love.graphics.print("score: " .. score,25 * 21)
end
tetromino.lua 片段
function tetromino:draw()
local blocksize = self.field.blocksize
local offset = self.field.position
local state = tetromino.rotations[self.shape][self.rotation]
local position = self.position
love.graphics.setColor(tetromino.colors[self.shape])
for j in ipairs(state) do
for i in ipairs(state[j]) do
if state[j][i] ~= 0 then
love.graphics.rectangle("fill",offset[1] + (i + position[1] - 2) * blocksize,offset[2] + (j + math.floor(position[2]) - 2) * blocksize,blocksize,blocksize)
end
end
end
end
field.lua 片段
function field:draw()
local offset = self.position
for j=1,self.height,1 do
for i=1,self.width,1 do
local color = {1,1}
local shape = self[j][i]
color = tetromino.colors[shape] or color
love.graphics.setColor(unpack(color))
love.graphics.rectangle("fill",offset[1] + (i - 1) * self.blocksize,offset[2] + (j - 1) * self.blocksize,self.blocksize,self.blocksize)
love.graphics.setColor(0,0)
love.graphics.rectangle("line",self.blocksize)
end
end
end
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。