C# 从阵列生成平铺贴图
我一直在考虑尝试创建一个RPG游戏,一个简单的游戏,包括移动、拾取物品和开门 我一直在考虑瓷砖贴图引擎,但我找不到任何有效的工具:/ 基本上,我试图实现的是我有一个C# 从阵列生成平铺贴图,c#,enums,tile,C#,Enums,Tile,我一直在考虑尝试创建一个RPG游戏,一个简单的游戏,包括移动、拾取物品和开门 我一直在考虑瓷砖贴图引擎,但我找不到任何有效的工具:/ 基本上,我试图实现的是我有一个枚举,比如: public enum tileSort{泥土、草、石头、空} 当引擎在数组中运行时,数组将有0、1等,我考虑的是一个switch语句,类似于: 开关(tileSort) { 案例“0”:tileList.Add(Content.Load(“Tiles/grass”)) } 问题是,我不知道如何实现这一点,我所能创
枚举
,比如:
public enum tileSort{泥土、草、石头、空}
当引擎在数组中运行时,数组将有0、1等,我考虑的是一个switch语句,类似于:
开关(tileSort)
{
案例“0”:tileList.Add(Content.Load(“Tiles/grass”))
}
问题是,我不知道如何实现这一点,我所能创建的只是一个引擎,它运行并根据您首先加载到游戏中的内容生成
我知道这让人困惑,因为我不善于解释自己
提前感谢。您可以使用一些工具来帮助您:
Content.Load<Texture2D>("Tiles/grass")
本教程将详细介绍您想要了解的内容:您走上了正确的道路。接下来,您可能想做的是找出如何将磁贴贴图数据加载/保存到磁盘,而不是在代码中指定贴图。也许可以使用StreamReader?现在我唯一的问题是如何将代码组合在一起:/您可能会对此感兴趣:您可以创建/编辑/保存数据格式的地图,然后将其加载到游戏中。(关于如何加载的示例很容易在网上找到)谢谢,但是我找不到.tmx加载程序lib的下载。D:谢谢,但是我如何使用碰撞来制作某个磁贴,或者如何使它在事件中可移动??
var tileList = new List<Texture2D>();
string[] tiles = { "dirt", "grass", "stone", "empty" };
foreach (var s in tiles) {
tileList.Add(Content.Load<Texture2D>("Tiles/" + s));
}
int[,] tileMap = {{1, 2, 0}, {0, 1, 2}, {3, 3, 1},};
for (int i = 0; i < 3; ++i)
for (int j = 0; j < 3; ++j)
spriteBatch.Draw(tileList[tileMap[i, j]], new Vector2D(50*i, 50*j), Color.White);
// Assuming the tiles are 50x50 pixels