限制绘图到

时间:2017-01-16 14:36:40

标签: lua love2d

问题

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

搬家之前:

area and object

搬家后(错误):

enter image description here

移动后(右):

enter image description here

限制和假设

  1. 您可以假设该区域为矩形。
  2. 内部绘制的对象可以是任何内容:多边形,图像或文本。
  3. 该区域涵盖其背后的任何内容(就好像它有自己的背景)
  4. 应该像往常一样绘制不属于该区域的物体。
  5. 尝试解决方案

    我知道我可以在他们“触摸”该区域的边界时立即停止绘制物体,但这会导致它们突然消失,然后在它们完全进入该区域时出现。我想这需要某种分层系统,但我不清楚如何在love2d中包含它。

1 个答案:

答案 0 :(得分:2)

我认为您正在寻找love.graphics.setScissor

  

剪刀将绘图区域限制为指定的矩形。

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

示例:

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