gpt4 book ai didi

performance - 如何使用 XNA API 绘制单个像素?

转载 作者:行者123 更新时间:2023-12-04 06:38:55 25 4
gpt4 key购买 nike

如果我想用单独颜色的像素填充我的游戏屏幕,我该怎么做?
例如,如果我想写一个 ' game of life ' - 每个像素都是一个单元格的游戏,我将如何使用 XNA 实现这一点?
我试过调用SetData()Texture2D使用屏幕大小数组 Color 的对象值,但它提示:

You may not call SetData on a resource while it is actively set on the GraphicsDevice.

Unset it from the device before calling SetData.


我该怎么做?或者更好……有没有一种替代的、更好的、有效的方法来用任意像素填充屏幕?

最佳答案

关于您遇到的错误,这意味着您正在尝试修改纹理数据,而它仍然绑定(bind)到设备上的采样器单元之一。您是在 SpriteBatch.Begin/End block 内调用 SetData 吗?如果是,那就是问题所在(在进行任何绘图之前更新您的纹理)。否则,您是否使用 GraphicsDevice.Textures[x] = yourTexture 直接在设备的纹理采样器之一上设置纹理?如果是,请在开始更改数据之前将 Textures[x] 设置为 null。

就您所做工作的效率而言,它并不理想,但对于您的目的而言可能并不重要。尝试保持图像分辨率合理,并意识到使用这种方法可能不会达到 200 FPS,但我会尝试它,看看它是否足够快,然后再开始担心性能。

关于performance - 如何使用 XNA API 绘制单个像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4517818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com