xna 中 spritebatch.draw 中的源矩形是什么

2024-01-11

SpriteBatch.Draw() 方法中源矩形参数的用途是什么?

MSDN 说:A rectangle that specifies (in texels) the source texels from a texture. Use null to draw the entire texture.

这意味着什么?


的想法sourceRectangle是允许您通过安排多个来实现性能优化和艺术家便利sprites成一个单一的texture。这称为“纹理图集”或“精灵表”。


(source: andrewrussell.net http://andrewrussell.net/content/2010/12/Sprite-Sheet-Example.png)

我在这个答案中解释了为什么这是性能优化 https://gamedev.stackexchange.com/questions/9277/optimizing-an-xna-2d-game/9289#9289。基本上它可以让你减少纹理交换的数量。 (因此,就我的插图而言,如果您只绘制一次动画角色,则使用精灵表不会提高性能。)

它还可以让您实现俗气的 2D 特效,例如在以下位置中“擦除”精灵:


(source: andrewrussell.net http://andrewrussell.net/content/2010/12/Reveal-Animation-Example.png)

A texel或多或少与纹理中的像素相同(如果您愿意,可以称为“纹理像素”)。因此,当您绘制精灵时,您指定了精灵的左上角spritetexture,以及它的宽度和高度。 (与在图像编辑器中选择它相同。)

如果你通过null对于源矩形,XNA 将假定源矩形覆盖整个纹理。

The origin你指定Draw也从源矩形的左上角开始以纹素为单位进行测量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xna 中 spritebatch.draw 中的源矩形是什么 的相关文章

  • 超级模糊纹理 - XNA

    当我近距离观察纹理时 我的纹理似乎变得非常模糊 我正在创建一个类似 Minecraft 的地形 我希望纹理能够像素化 就像它是制作出来的一样 而不是 XNA 尝试为我平滑它 它的显示方式如下 任何建议将不胜感激 它与抗锯齿无关 它与硬件如何
  • 游戏编程和事件处理程序

    我已经有大约 10 年没有编写游戏了 我上次的经历是 DJGPP Allegro 但我想我应该在周末检查一下 XNA 看看它是如何发展的 我印象相当深刻 但是当我继续拼凑游戏引擎时 我有一个 可能 基本问题 您应该在多大程度上依赖 C 的委
  • xna 中 spritebatch.draw 中的源矩形是什么

    SpriteBatch Draw 方法中源矩形参数的用途是什么 MSDN 说 A rectangle that specifies in texels the source texels from a texture Use null to
  • 如何使用XNA加载文件夹中的所有文件?

    我想加载文件夹中的所有文件 内容 纹理 进入游戏使用Content Load 文件名 但是 我无法以这种方式 找到 位于 Content 内的文件 该程序而是查看 bin 调试 内容 纹理 但是当尝试使用 Content Load 加载 j
  • 笛卡尔坐标到极坐标(3d 坐标)

    如何在 3D 空间中的笛卡尔坐标系和极坐标系 以及反坐标系 之间进行转换 最好有一个 C 示例 但任何内容都将不胜感激 谢谢 Edit当考虑20 的变化时 不形成球体 Edit 2 private void Spherise for int
  • 在 XNA 4.0 中绘制具有多个侧面的纹理立方体

    几个小时以来我一直在努力解决这个问题 我想做的是画一个立方体 每一面都有不同的纹理 或者更具体地说 我希望能够指定每面我想要的任何纹理 我用了这个例子here http www switchonthecode com tutorials c
  • FPS 极低,我应该使用什么分析应用程序来查找性能问题?

    我正在创建 XNA 游戏 但得到了意想不到的结果 FPS 极低 大约 2 12 fps 我应该使用什么程序来测试性能并找出导致性能下降的原因 你有没有尝试过使用SlimTune http code google com p slimtune
  • Monogame:WAV 无法播放

    这是 MonoGame 3 4 我通过 VS2013 使用它 我正在使用 mgcb 编译我的 WAV 文件 就像我的纹理一样 MGCB 工作正常 但是当涉及到使用SoundEffect类 它不播放任何内容 没有例外并且SoundEffect
  • 无法将资源加载为 XML 文件

    我已经使用 XNA 完成了我的项目 目前我正在尝试使用 Monogame 对其进行转换 我的问题是我无法加载 XML 文件 错误 Could not load Level asset as a non content file 我的代码 f
  • 如何为我的 C# XNA 游戏制作 GUI? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的游戏有基本功能 可以通过命令行玩 但我想在它上面放一个 GUI 它是一款使用 C 和 XNA 框架编写的平台游戏 我用谷歌搜索并找
  • 在 VS 2010 中运行和运行构建的 EXE 有什么区别?

    作为一个学校项目 我们创建了一个 C XNA 4 0 游戏 该游戏在从 Visual Studio 2010 本身运行 无论是发布版还是调试版 时都能完美运行 然而 当它构建完成后 游戏在某个时刻莫名其妙地崩溃了 负责的代码部分似乎是这样的
  • 如何在 XNA 中暂停重绘?

    我制作了一个 XNA 图像查看器 但它总是重新绘制场景 即使它没有改变 而且它让我的上网本烧得很厉害 所以我希望它在没有任何变化时暂停绘制 将帧速率降低到 1 是保持凉爽的一种方法 但会导致输出滞后 如何在没有输入的情况下防止重绘 这个问题
  • D3DERR_INVALIDCALL 错误,TeamCity 生成器

    我一直在尝试使用 TeamCity 4 5 来自动构建 XNA 项目 但我遇到了一个小问题 我的项目在 Visual Studio 2008 下可以正确编译 但在使用 TeamCity 作为生成器进行编译时则无法正确编译 配置文件使用 sl
  • 与绘制单独的线条相比,绘制图形更快的方法有哪些?

    截至目前 我正在使用拉伸到必要高度的 1px 矩形来绘制调试性能图 但以这种方式绘制大量数据会导致显着的性能损失 目前的逻辑是 收集当前帧的所有时序 将它们放入Queue
  • 如何创建一个做某事的计时器?

    我对 XNA C 很陌生 我想知道如何在 XNA C 中创建一个在几秒钟后执行某些操作的计时器 我见过Flash 教程 http www republicofcode com tutorials flash as3timer 这满足了我的需
  • xna 防止下坡或上太陡的山

    如何防止在高度图地形上过于陡峭的斜坡或上山 我有一个可以在地形上移动的 3D 相机 它现在可以在任何地方移动 甚至在大斜坡和太陡的山丘上 我该怎么办 如果你试图朝一个方向移动 你应该预测你最终会到达哪里 然后弄清楚是否slope http
  • XNA 屏幕截图显示预绽放,而不是最终渲染

    我有一个使用 Reach 图形设置在 C XNA 4 0 中编码的 Windows 平台游戏 我的项目基于 GameStateManagement 示例 但后来我向其中添加了 Bloom 和 spriteSheet spriteBatch
  • 如何在 C# 中使用随机数?

    我正在用 C 和 XNA 开发 Pong 我想使用一个随机数 在一定范围内 来确定诸如球是否直线反弹或以一定角度反弹以及球击中球拍时移动的速度之类的事情 我想知道如何实施 Use the Random http msdn microsoft
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没
  • XNA - 在表单中嵌入 DirectX 控件?

    我想将 DirectX 好吧 XNA 的东西渲染到 system windows forms 控件而不是整个窗口 这样我就可以将它与按钮和东西配对 这可能吗 我会使用哪个控件 我该怎么做呢 我已经搜索了文档 但我不知道应该使用哪些术语 是的

随机推荐

  • 使用 Python 频繁更新数值实验的存储数据 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在运行一个需要多次迭代的数值实验 每次迭代之后 我想将数据存储在 pickle 文件或类似 pickle 的文件中 以防程序超时或数据结构被
  • Angular 2 模型绑定(对象数组)

    我是 Angular2 的新手 我的问题很简单 我想绑定一个对象数组 如下所示 我有以下组件 app ts 和视图 cart html 应用程序 ts 文件 Component selector my app templateUrl Par
  • 如何使用组合观察数组的新值?

    如果我有一个数组 var arr 0 1 2 以及它的联合出版商 arr publisher sink completion in print Completed with completion receiveValue val in pr
  • Windows Server 2008 R2 上的 WPF 样式

    我有一个 WPF 程序 它在 Windows 8 1 和 Windows Server 20008 R2 上的样式完全不同 下图显示了每个操作系统的示例 左侧为 Windows 8 右侧为 Server 2008 R2 该程序是使用 NET
  • 无法在本地主机上的 docker 容器之间进行通信

    首先 我是 docker 容器的新手 我不太了解它们是如何运行的 但我有这样的设置 一个用于 NET Core API 的 Docker 容器 由 VS 2019 自动生成的 Docker 文件 用于 Angular 9 应用程序的一个 D
  • 如何以编程方式隐藏高图表中的工具提示?

    我正在尝试在移动应用程序中实现高图表 一切正常 但存在一个问题 即在将方向从肖像更改为风景时 为任何选定点显示的工具提示不会在方向更改时隐藏 请建议我如何在高图表中以编程方式隐藏工具提示 我尝试了下面的代码 tankActualUsagec
  • 如何将单选按钮名称列表传递给 spring 控制器并将它们显示到成功页面

    我在选择时有一个单选按钮列表 我遇到了以下代码的一个问题 因为我只在 js 函数中为其他人获取第一个单选按钮的值 我的意思是除了第一个单选按钮之外 它给出了 null PFB代码 tr td td tr
  • Xcode 8 和模拟器 10 上的 3D Touch

    我读过一篇ton https stackoverflow com questions 32491188 simulate force touch 3d touch on iphone 6s or iphone 6s plus simulat
  • ANTLR4 中预期存在无关输入“-”

    你能告诉我可能是什么问题吗 值得期待的是
  • 如何检查 Android 设备是否已连接到网络?

    我如何知道我的设备是否已连接网络 我如何检测连接性 有示例代码吗 首先 您需要获得许可才能知道设备是否已连接到网络 这需要出现在您的清单中
  • 如何在不使用递归的情况下故意触发StackOverflowException?

    有人告诉我每个方法都有一个大小为 1mb 的堆栈 所以我假设在一个方法中初始化 256 个整数值将导致 StackOverflowException 我在代码中尝试过 但没有引发异常 那么 如何在不使用递归的情况下故意触发StackOver
  • 企业库日志记录未从 ASP.NET 记录到事件日志

    我花了一天时间尝试使 Ent Lib Logging 工作并将所有内容记录到数据库或事件日志中 我有一个具有相同 Ent Lib 配置的 Web 应用程序和控制台应用程序 但只有控制台应用程序能够登录事件日志 我尝试了所有具有权限的操作 但
  • boto 和“In”比较器

    我正在尝试将 In 比较器与 boto 一起使用来指定 Mechanical Turk 作业的多个区域设置 这个答案 https stackoverflow com a 25122804 1599229说这是可能的 也是如此AMT 文档 h
  • Socket.Shutdown 抛出 SocketException

    我正在尝试为我的项目实现异步套接字 这是代码 public void Start int listeningPort var ipHostInfo Dns Resolve Dns GetHostName var ipAddress ipHo
  • 正则表达式蛋白质消化

    因此 我正在用一种酶 出于你的好奇心 Asp N 消化蛋白质序列 该酶在单字母编码序列中 B 或 D 编码的蛋白质之前进行切割 我的实际分析使用String scan用于捕获 我试图找出为什么以下正则表达式不能正确消化它 w BD b 先行
  • 如何在vscode终端中将i386 arch更改为arm64?

    如何在vscode终端中将i386 arch更改为arm64 m2 Pro 硅 我问因为yarn and npm无法在 vscode 终端中工作 但在外部终端 iterm2 终端 中完美工作 vscode 终端 https i stack
  • Rust 链接器寻找 LIB,而不是 DLL

    我正在 Windows 上尝试 Rust 我的代码声明并调用外部库中的函数 声明是这样的 link name Rvea0326nc 64 extern C fn WeibullSpeedProbability wa f32 wk f32 q
  • 无休止的动画、requestAnimationFrame 和调用堆栈限制

    我正在开发一个小项目 该项目使用 Twitter 流 API 并从中制作一些画布动画 鉴于 Twitter 流 API 没有结束 动画可能会无限期地继续下去 问题就在于此 requestAnimationFrame似乎是通过递归进行操作的
  • 使用 shell 迭代文件

    我有两个输入文件 每行都有名单 mm dd 形式 使用持续时间和其他主机名内容 另一个是我生成的 每行都有一组不重复的名单 我正在尝试编写一个 shell 命令来遍历带有名单的文件 将它们存储为变量并检查其他文件以匹配名称 然后输出每个人的
  • xna 中 spritebatch.draw 中的源矩形是什么

    SpriteBatch Draw 方法中源矩形参数的用途是什么 MSDN 说 A rectangle that specifies in texels the source texels from a texture Use null to