[英]C# Console Collision
目前,我正在制作主機游戲(類似胭脂),並且需要一些有關碰撞事件的建議。 我需要告訴玩家(@)旁邊是否有一堵牆(▒),是否不允許玩家朝該方向移動。 是否有人對我如何使用C#中的控制台有任何想法?
如果需要,我可以提供一些代碼。
兩種方式:
我不明白為什么這么難,也許你可以解釋一下;)
首先-我對控制台游戲的經驗為零,但是在我看來,您應該擁有一個包含用戶所在“地圖”的數據模型,並在更新UI(控制台)之前在數據模型中進行檢查
有多種處理方法。 我希望您有一個表示游戲地圖的二維數組。 一種簡單的方法是添加一個CheckMove
方法,該方法可驗證嘗試的移動。 如果無效,則不執行移動。 這是一種偽代碼示例。
public bool CheckMove(int newY, int newX) {
if (grid[newY][newX] == WALL)
return false;
if (newY < 0 || newY > Y_MAX || newX < 0 || newX > X_MAX)
return false;
return true;
}
public void Move(int dir) {
// calc new x & y
if (!CheckMove(newY, newX)) return;
// else do the move
}
我認為是否編寫控制台應用程序都沒有關系。 因為View不是檢測沖突的目的。 這是您的游戲模型的目的。 模型僅顯示在視圖上。 內部壁結構甚至可以描述為二維陣列。 當前玩家坐標也存儲在模型中。 因此,檢測將某些位置移動的可能性如下所示:
public void IsPossibleMoveTo(int x, int y)
{
return mazeArray[x, y] == null;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.