【问题标题】:Restrict drawing to an area将绘图限制在某个区域
【发布时间】:2017-05-31 10:24:02
【问题描述】:

问题

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

搬家前:

移动后(错误):

移动后(右):

限制和假设

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

尝试的解决方案

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

【问题讨论】:

    标签: lua love2d


    【解决方案1】:

    我想你正在寻找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
    

    【讨论】:

    • 看来这是我需要的。如何“取消设置”此功能?一个简短的例子将是最受欢迎的。
    猜你喜欢
    • 1970-01-01
    • 2020-06-30
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 2020-12-22
    相关资源
    最近更新 更多