實際上可以使您的碰撞檢測算法在尺寸上不可知。只需要一個沿一個維度工作的碰撞檢測器,使用它來檢查每個維度,而您對「這些碰撞與否」的回答是沿着每個維度的碰撞檢測的邏輯與。
您的遊戲應該組織起來,以保持遊戲對象的交互性,並將遊戲的渲染完全分離到屏幕上。您可以將程序的這兩部分看作「模型」和「視圖」。在模型中,你有一個完整的三維世界,3軸。沒有一定程度的痛苦,你無法在這一點上達到一半。你的模型必須是適當的3D。
該視圖將讀取所有遊戲對象的位置,並使用相機定義將它們投影到屏幕上。對於這部分你不需要一個完整的3D渲染引擎。對於你所說的視角而言,正確的技術術語是「傾斜的」,可以在許多古代中國和日本的卷軸畫和版畫中看到 - 特別是尋找「源氏物語」的圖像。
物體的屏幕位置(包括地面!)是這樣的:
DEPTH_RATIO=0.5;
view_x=model_x-model_z*DEPTH_RATIO-camera_x;
view_y=model_y+model_z*DEPTH_RATIO-camera_y;
可以爲直正投影正投影修改:
DEPTH_RATIO=0.5;
view_x=model_x-camera_x;
view_y=model_y+model_z*DEPTH_RATIO-camera_y;
當然不要忘了撲殺相機所限定的體積之外的對象。
您也可以使用此機制來爲您處理視差圖層的位置。當然,這是一個改變你的相機的問題,而不是一個正交投影的1點透視投影。你不必使用它來改變精靈的渲染大小,但它可以幫助你逼真地管理對象的x位置。如果你面臨挑戰,你甚至可以混合使用投影 - 對於深層背景使用1點透視,對前景使用正字法。
很好的答案布列塔尼。我現在全部解決了。謝謝您的幫助! – 2010-01-15 21:40:19