gpt4 book ai didi

lua - 限制绘图到一个区域

转载 作者:行者123 更新时间:2023-12-04 20:30:30 25 4
gpt4 key购买 nike

问题

我想在 love2d 中有一个区域,在其中绘制可移动的对象。对象的移动不受区域边界的限制,但绘图是。把它想象成透过 window 向外看。例如:一个区域中的一个蓝色矩形,如果它移动到一边,它的绘图应该被截断到该区域的边界。

搬家前:

area and object

移动后(错误):

enter image description here

移动后(右):

enter image description here

限制和假设

  1. 您可以假设该区域是矩形的。
  2. 要在内部绘制的对象可以是任何东西:多边形、图像或文本。
  3. 该区域覆盖它后面的任何东西(好像它有自己的背景)
  4. 不“属于”该区域的对象应照常绘制。

尝试的解决方案

我知道我可以在对象“接触”该区域的边界时立即停止绘制对象,但这会导致它们突然消失,然后在它们完全位于该区域内时出现。我想它需要某种分层系统,但我不知道如何将其包含在 love2d 中。

最佳答案

我想你在找love.graphics.setScissor .

The scissor limits the drawing area to a specified rectangle.

调用不带任何参数的函数(即 love.graphics.setScissor())会禁用 scissor。

例子:

function love.draw ()
-- sets the drawing area to the top left quarter of the screen
local width, height = love.graphics.getDimensions()
love.graphics.setScissor(0, 0, width / 2, height / 2)
-- code to draw things
love.graphics.setScissor()
end

关于lua - 限制绘图到一个区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41678791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com