Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用点的项目表_C#_Xna - Fatal编程技术网

C# 使用点的项目表

C# 使用点的项目表,c#,xna,C#,Xna,我正在用XNA在C#中创建一个RPG风格的游戏,我想实现项目(就像所有RPG一样)。我知道最简单的方法是将每个项目分配给它们自己的.png,但为了减少空间,我想使用一个精灵表。有没有一种使用点和矩形的方法?我尝试了许多不同的方法,但我不完全确定应该如何进行。这里有一个简单的XNA教程,用于基于XNA瓷砖的游戏如果所有纹理的宽度/高度都相同,那么一种方法就是将它们在精灵表上的X和Y位置存储在项目中。使用sb.Draw,您可以使用该X和Y创建“源矩形”,以仅绘制精灵表的正确部分。然而,这意味着将所有

我正在用XNA在C#中创建一个RPG风格的游戏,我想实现项目(就像所有RPG一样)。我知道最简单的方法是将每个项目分配给它们自己的.png,但为了减少空间,我想使用一个精灵表。有没有一种使用点和矩形的方法?我尝试了许多不同的方法,但我不完全确定应该如何进行。

这里有一个简单的XNA教程,用于基于XNA瓷砖的游戏

如果所有纹理的宽度/高度都相同,那么一种方法就是将它们在精灵表上的X和Y位置存储在项目中。使用sb.Draw,您可以使用该X和Y创建“源矩形”,以仅绘制精灵表的正确部分。然而,这意味着将所有索引存储在某个地方(我的意思是在工厂中存储一个巨大的开关盒,或者每个项目存储一个类),这并不是很好。老实说,除非你正在做一个大型的高端游戏,否则使用多个PNG根本看不到性能的提升,我会坚持下去。好吧,我想我会放弃这个P谢谢你的信息!老实说,皮埃尔建议的绝对是最好的解决方案,即使你不打算做一场大比赛。您可能看不到一点性能下降,但如果您使用spritesheet,则管理文件将更加容易。我自己也做过这件事,相信我,如果你实现正确,当你在代码中使用它时,你几乎不会注意到它的存在。