2011-06-26 106 views
1

我想知道如果有人在這裏可能會友好,並將我鏈接到一些教程,將教你如何使一個大的世界,我的意思是在XNA比你設置你的決議更大的遊戲。這意味着你有一個可以探索的大世界,你不僅僅是堅持顯示器的大小。請注意我只用C#& XNA編程了6個月。但我有5年的遊戲開發經驗。2D世界,大規模的世界探索教程?

所以我後面是: 一些基本的相機? 打破顯示器尺寸的世界/遊戲限制。

注意:我真的不知道要尋找什麼來尋找這樣的東西。有關搜索內容的提示將受到關注。

回答

5

由於幾乎所有的遊戲都是這樣做的,而且他們都以不同的方式進行遊戲,所以您將無法專門找到有關此教程的教程。

幸運的是,原理很簡單:在你的遊戲

  • 任何事物都有一個位置,這是在世界座標。
  • 你有一個相機或視口位置,也在世界座標,以確定你正在尋找世界的哪個部分。
  • 要知道在屏幕上畫什麼東西,必須從世界座標轉換爲屏幕座標。
  • 您的屏幕視圖是相對於相機的,因此要進行此轉換,您只需從對象的世界位置減去相機位置即可獲取對象的屏幕位置。

嘗試創建幾個對象,讓它們在比屏幕大的位置(例如,4000x4000)放置位置,然後用鍵或手柄移動相機位置。

您會注意到,這意味着相機的位置對應於屏幕一角可見的世界位置。爲了讓攝像機指向屏幕的中間位置,您還需要將屏幕寬度的一半和屏幕高度的一半減去翻譯操作,將世界位置改變爲屏幕位置。

但是我有5年的遊戲開發經驗。

沒有冒犯,但是如果你沒有必要移動視角,你已經做了5年?這聽起來像你的經驗不是遊戲開發的典型。

+0

我沒有相機經驗,因爲我使用了Unity3D和Unreal 2.0等預建引擎。這是我第一次嘗試從頭開始構建一些東西。 – PeppeJ

+1

所以不要假裝你有編程經驗。您的公式表明您在6個月前轉向C#從真正的編程。 – TomTom

+1

我也會拋開看側夾,他們會(最有可能的)有他正在談論的相機中最清晰的例子。瀏覽http://www.awestyproductions.com/tutorials/c-sharp/xna-sidescroller-part-2/,並找到相機部分。 – Ben