我正在嘗試製作一個「地牢爬行」類型的遊戲演示,這是我第一次真正製作Pong & Pac-Man克隆以外的任何東西。現在我的大掛斷是創造實際的水平。我已經完成了關於如何在屏幕上繪製圖塊的教程,但是我找不到從哪裏出發。在XNA中創建和保存貼圖地圖
我該如何從一個屏幕去製作一個更大的地下城?任何幫助表示讚賞。
我正在嘗試製作一個「地牢爬行」類型的遊戲演示,這是我第一次真正製作Pong & Pac-Man克隆以外的任何東西。現在我的大掛斷是創造實際的水平。我已經完成了關於如何在屏幕上繪製圖塊的教程,但是我找不到從哪裏出發。在XNA中創建和保存貼圖地圖
我該如何從一個屏幕去製作一個更大的地下城?任何幫助表示讚賞。
您應該考慮從2維數組開始。通過這種方式,您可以非常容易地直觀地表示數據。
與初始化啓動關:
//2D array
int[,] array;
一些樣本數據:
array= new int[,]
{
{0, 2, 2, 0},
{3, 0, 0, 3},
{1, 1, 1, 1},
{1, 0, 0, 0},
};
創建自己的枚舉,這將索引地圖中的每個整數:
enum Tiles
{
Undefined = 0,
Dirt = 1,
Water = 2,
Rock = 3
}
然後加載你的紋理,以及一次只查看你的數組一個項目。根據您的紋理尺寸,你可以很容易地在屏幕上繪製的紋理,因爲在你的地圖介紹:
for (int i = 0; i < array.Count; i++)
{
for (int j = 0; j < array[0].Count; j++) //assuming always 1 row
{
if (array[i][j] == (int)Tiles.Undefined) continue;
Texture = GetTexture(array[i][j]); //implement this
spriteBatch.Draw(Texture, new Vector2(i * Texture.Width, j * Texture.Height), null, Color.White, 0, Origin, 1.0f, SpriteEffects.None, 0f);
}
}
這是一個很好的答案。對於像我這樣的初學者非常有用。 @Jon,你知道網上有關於此的任何資源嗎?試圖找到基本的東西已被證明是一個巨大的浪費時間。我花了超過3周的時間尋找基本的東西(比如沿着平臺做滾球),我還沒有找到任何東西。 –
@ÅőşęņŎńę你可以看看XNA資源中的tile引擎教程。它在解釋這些概念方面做得很好:http://www.xnaresources.com/default.asp?page=TUTORIALS 沿平臺做球滾動可能聽起來很基本,但實際上有點複雜。您正在處理移動,碰撞檢測和碰撞響應。 – jgallant
的PSK http://msdn.microsoft.com/en-us/library/dd254918(v=xnagamestudio.31).aspx是由微軟創建了一個演示使用的ASCII文件創建水平。還有很多演示和教程以及其他內容。 Jon所描述的方法是一樣的。
例如:
.......
.....e.
xx...xx
..s....
其中一個點是空的空間,s是起始位置和e是敵人。因爲你知道每個圖塊都是(例如)32x32像素,所以你簡單地將's'放置在座標(2x32,3 * 32)上。
有很多種方法來處理這個難題。
要製作多個屏幕,您需要實現相機類。你可能想要的是一個滾動級別。但是我建議你在進一步學習之前先學習從數組,ascii文件等中製作單個屏幕。
如果您實施tiled map format的保存/加載,設計地圖會容易得多。
是2D還是3D? – neeKo