C# 单游戏-生成平铺贴图
我正在创建一个2D游戏,我希望能够绘制分幅来创建我的游戏世界。我创建了一个C# 单游戏-生成平铺贴图,c#,.net,xna,monogame,C#,.net,Xna,Monogame,我正在创建一个2D游戏,我希望能够绘制分幅来创建我的游戏世界。我创建了一个列表,如下所示: static private List<Rectangle> tiles = new List<Rectangle>(); public const int TileWidth = 50; public const int TileHeight = 50; public static void initialise(Texture2D tileTexture) {
列表
,如下所示:
static private List<Rectangle> tiles = new List<Rectangle>();
public const int TileWidth = 50;
public const int TileHeight = 50;
public static void initialise(Texture2D tileTexture)
{
texture = tileTexture;
tiles.Clear();
tiles.Add(new Rectangle(0, 267, TileWidth, TileHeight));
tiles.Add(new Rectangle(1575,795, TileWidth, TileHeight));
tiles.Add(new Rectangle(1315,267, TileWidth, TileHeight));
tiles.Add(new Rectangle(1051,797, TileWidth, TileHeight));
}
static private List tiles=new List();
公共常数int TileWidth=50;
公共常数int TileHeight=50;
公共静态无效初始化(纹理2D瓷砖纹理)
{
纹理=瓷砖纹理;
tiles.Clear();
添加(新矩形(0267,平铺宽度,平铺高度));
添加(新矩形(1575795,平铺宽度,平铺高度));
添加(新矩形(1315267,平铺宽度,平铺高度));
添加(新矩形(1051797,平铺宽度,平铺高度));
}
我试图在我的游戏世界中生成磁贴,这种方式允许我使用数组手动选择放置每个磁贴的位置,但是我在这方面遇到了一些困难。您可以像这样绘制矩形列表
for(int i = 0; i < tiles.Count(); i++)
spriteBatch.Draw(tileImage, tiles[i], Color.White);
for(int i=0;i
请提供更多关于您的错误/挣扎的信息,我将提供更好的答案。您可以这样绘制矩形列表
for(int i = 0; i < tiles.Count(); i++)
spriteBatch.Draw(tileImage, tiles[i], Color.White);
for(int i=0;i
请提供更多关于您的错误/挣扎的信息,我将提供更好的答案。我猜您想要一个双数组作为磁贴?我会继续猜测你在这里想要达到的目标 也许是这样的:
private static Rectangle[][] tiles;
private const int worldWidth = 50;
private const int worldDepth = 50;
public static void Initialize(Texture2D tileTexture)
{
// Initialize game table
tiles = new Rectangle[worldWidth][];
for (int l = 0; l < worldWidth; l++)
{
tiles[l] = new Rectangle[worldDepth];
}
// Fill rectangles in for every tile
for(int i = 0; i < worldWidth; i++)
{
for (int k = 0; k < worldDepth; k++)
{
// Tile (0,0): x = 0, y = 0
// Tile (0,1): x = 0, y = 50
// and so on...
tiles[i][k] = new Rectangle(i * TileWidth, k * TileHeight, TileWidth, TileHeight);
}
}
}
私有静态矩形[][]分幅;
私有常数int worldWidth=50;
私人常数int worldDepth=50;
公共静态void初始化(Texture2D tileTexture)
{
//初始化游戏表
平铺=新矩形[worldWidth][];
对于(int l=0;l
也许有更好的方法可以做到这一点,但这是一个简单的解决方案,应该很容易理解。我猜你想要一个双阵列的瓷砖?我会继续猜测你在这里想要达到的目标 也许是这样的:
private static Rectangle[][] tiles;
private const int worldWidth = 50;
private const int worldDepth = 50;
public static void Initialize(Texture2D tileTexture)
{
// Initialize game table
tiles = new Rectangle[worldWidth][];
for (int l = 0; l < worldWidth; l++)
{
tiles[l] = new Rectangle[worldDepth];
}
// Fill rectangles in for every tile
for(int i = 0; i < worldWidth; i++)
{
for (int k = 0; k < worldDepth; k++)
{
// Tile (0,0): x = 0, y = 0
// Tile (0,1): x = 0, y = 50
// and so on...
tiles[i][k] = new Rectangle(i * TileWidth, k * TileHeight, TileWidth, TileHeight);
}
}
}
私有静态矩形[][]分幅;
私有常数int worldWidth=50;
私人常数int worldDepth=50;
公共静态void初始化(Texture2D tileTexture)
{
//初始化游戏表
平铺=新矩形[worldWidth][];
对于(int l=0;l
也许有更好的方法可以做到这一点,但这是一个简单的解决方案,应该很容易理解。更明确一点,描述你的问题并展示你的尝试。更明确一点,描述你的问题并展示你的尝试。是的,我创建了一个名为“瓷砖”的矩形列表从我的精灵表中保存我的瓷砖的位置。我想画一个二维阵列的瓷砖,但只在地图的某些部分,因为我的目标是一个地下城爬虫/迷宫风格。非常感谢您的帮助。是的,我已经创建了一个名为“tiles”的矩形列表,并从我的sprite表中保存了我的tiles的位置。我想画一个二维阵列的瓷砖,但只在地图的某些部分,因为我的目标是一个地下城爬虫/迷宫风格。非常感谢您的帮助。