问题描述
我遇到的问题与渲染顺序有关。我的俄罗斯方块字段渲染背景,俄罗斯方块块和网格都具有不同的渲染顺序。我掉落的俄罗斯方块块有自己的渲染代码。下落的俄罗斯方块被绘制在背景和网格之间。
所以我的问题是如果组件(即背景网格块)具有不同的渲染顺序,我如何以正确的顺序渲染实体?我必须以不同的方式构建我的程序,特别是我的俄罗斯方块领域。但我不知道最好的方法是什么。
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 (将#修改为@)