【问题标题】:XNA - How to dim a section of the screen?XNA - 如何调暗屏幕的一部分?
【发布时间】:2013-05-17 01:46:38
【问题描述】:

您将如何调暗图像(或屏幕的一部分),以便可以显示其他未调暗的内容作为焦点?抱歉,它有点模糊且难以理解,但我想不出更好的表达方式。

【问题讨论】:

  • 什么会变暗,多久变暗?
  • 你可以研究着色器,我对它们没有经验,但如果你想要一个更简单的修复,你可以使用一个大的 texture2d,将纹理上的所有东西都涂成深透明的颜色,除了突出显示的对象居住。
  • 我想调暗整个屏幕,然后在调暗的顶部绘制,这样顶部的绘图就不会变暗。每次按下按钮时都会发生这种情况。那么最简单的方法是?

标签: c# xna


【解决方案1】:

我不知道这是多么高效或智能,但 spriteBatch.Draw 采用颜色来着色纹理。您可以尝试设置纹理列表并将较暗的颜色应用于要变暗的纹理。

类似:

for(int i = 0; i < texturesToDraw.Count; i++)
{
    if(i == selected) 
    {
         spriteBatch.Draw(texturesToDraw[i], position, Color.White)
    }
    else
    {
         spriteBatch.Draw(texturesToDraw[i], position, Color.SomeDarkColor)
    }
}

一个可以帮助您入门的简单教程:http://www.xnadevelopment.com/tutorials/fadeinfadeout/FadeInFadeOut.shtml

【讨论】:

  • 我理解理想,但我想不出如何正确实现它......:P
  • 添加了一个非常小的版本。
  • 谢谢,这帮助我实现了目标。
猜你喜欢
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多