我正在製作一個垂直平臺遊戲。我一直放置平臺的方式是通過列表: XNA:實體在列表中的位置
public void LoadPlatforms(ContentManager content, Mechanic_Levels mech, Clide clide)
{
platforms.Add(new Entity_Platform());
platforms.Add(new Entity_Platform());
platforms.Add(new Entity_Platform());
platforms.Add(new Entity_Platform());
platforms.Add(new Entity_Platform());
platforms.Add(new Entity_Platform());
platforms.Add(new Entity_Platform());
platforms.Add(new Entity_Platform());
platforms.Add(new Entity_Platform());
// factory.Add(new Entity_Factory());
foreach (Entity_Platform platform in platforms)
{
platform.position = new Vector2(rand.Next(20, 280), rand.Next(20, 580));
platform.currentlevel = rand.Next(12);
platform.LoadPlatform(content);
}
}
這適用於如果我想隨機放置平臺,但是如何設置它以便根據當前級別平臺重新定位它們自己?我知道這可能意味着我不能使用列表。
你是什麼意思的「重新定位自己」嗎? 「currentLevel」是做什麼的? – musefan 2013-04-10 08:05:43
對不起,應該定義我的意思,但目前的水平。所以遊戲的效果是,當你越過屏幕的頂部時,等級會上升一個。這是通過一個簡單的基於整數的系統來處理的,其中平臺的當前級別等於平臺呈現的玩家級別。我的意思是重新定位基本上不是擁有我現在擁有的隨機系統,而是擁有一個設計我設計的關卡的系統。 – user1994100 2013-04-10 08:10:59
因此,不要在循環中隨機選擇位置,而應在將platofrm添加到列表時指定位置。這可以通過代碼來分配,可能通過諸如「GetPlatformsForLevel(int level)」之類的方法,或者從外部源(DB,配置文件等)中提取數據。關於目前的水平,你絕對不希望這是隨機的。因爲你將存儲你不需要或使用的平臺 - 儘管我認爲這取決於性能,即你的級別切換的速度有多快(是否有時間每次加載下一組平臺?) – musefan 2013-04-10 08:17:04