我一直在C#中使用XNA構建遊戲引擎,作爲我第一次進入編程領域,我想用它來更全面地理解我需要的問題知道如何解決。用不同的屏幕分辨率和圖像拉伸處理基於背景的每個像素的碰撞
我目前正在使用的引擎部分是碰撞檢測。我正在處理的模式是基於圖像的主動式碰撞系統。
該角色有一個位置(XNA Rectangle),背景是2個紋理,並且該角色具有Vector2運動屬性。 1是顯示紋理,另一個是第一個紋理中碰撞區域的雙色圖。我顯示紋理1,並在加載背景時使用紋理的GetData例程將紋理2加載到Color []數組中。輸入解析例程不直接改變位置,它增加了運動屬性。
因此,每個更新: 檢查輸入解析器,並添加到運動Vector2。 比較玩家的位置.X/Y沿着每個表面的位置。寬度/高度與動作所需的方向相同。如果運動將它帶到碰撞區域(通過與Color []數組比較來檢測),運動將被歸零(除了重力子程序),並且不會在該特定方向上進行移動。
這讓我不會停止所有的動作,就像在超級馬里奧那樣的遊戲中,跳到一個方塊的一側不會結束你的Y軸運動。
現在,我的問題(即描述失控的快)...
我應該如何處理不同的決議?我不明白如何縮放圖像以填充所需的區域,然後以可用於拉取GetData的格式使用它?我不想讓遊戲爲每個分辨率加載不同的背景碰撞檢測器。我覺得這是編碼工作,而不是藝術/設計。