【问题标题】:Clip or Mask a 2D texture剪辑或遮罩 2D 纹理
【发布时间】:2010-11-08 00:58:15
【问题描述】:

嘿,我想知道是否有人知道为 gui 或类似系统的菜单使用 2D 纹理进行剪辑。

这是我想要生成的示例输出

拥有一个大小为 500 x 500 的游戏屏幕。 后面有一个大小为 1000 x 1000 的屏幕。

当我在 0, 0 处绘制纹理时,父屏幕为 500 x 500,我希望不显示该组件

但如果我在 500、450 处绘制组件并且纹理宽度和高度为 100,我希望只能看到整个宽度,但只能看到组件高度的一半。

我想知道是否有一种简单的方法可以做到这一点?

编辑:

基本上我想的是 Photoshop 中的蒙版效果。

这是一张图片Clipping picture

黑色轮廓是另一半纹理的绘制位置。

【问题讨论】:

    标签: c# 2d textures mask clipping


    【解决方案1】:

    您可以剪切纹理。当生成的形状是多边形时,
    只需修改顶点和纹理坐标即可。

    当剪裁的纹理是复杂的形状时,事情就会变得更加棘手。

    您也可以通过按正确顺序绘制所有内容来进行剪辑。
    它可能效率不高,但很容易。

    附言一张照片会有所帮助。

    【讨论】:

      【解决方案2】:

      解决这个问题的另一种方法:

      基本上你有两个场景要绘制:游戏屏幕(picture 中的蓝色部分)和背景屏幕(picture 中的红色部分)。

      我认为您可以在两个不同的位图对象(或图形库中的任何类似对象)中绘制游戏屏幕和背景屏幕。

      下一步是将整个背景屏幕位图剪辑到输出位图对象,然后您可以只剪辑游戏屏幕的中心部分(输出屏幕中心的 500 x 500 正方形)。


      P.S:如果您可以添加有关您正在使用的图形库的更多详细信息,也许会更好。

      【讨论】:

      • 好吧,红色应该是它后面的另一个屏幕。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多