int[,]?地圖?=?新的?int[寬度,高度];
initMap(地圖);妳應該會寫這個方法吧?初始化映射
如果每個點的大小是5*5
玩家?玩家?p1?=?新的?player();
p1。位置?=?新的?點(10?,?5?);
第二張圖可以理解為p1在地圖上的坐標:(x?:10,?y?:?5)
也就是長度為5*5的時候?坐標是?(?x?/?5,?y?/?5)在矩形中
而x/5呢?,?y/5?是地圖第二行第三列的下標?映射[x/5,?y/5]
當然,我只是壹個例子,好嗎?把地圖想象成壹個二維數組,玩家移動記錄坐標。將坐標x和y除以每個格子的w和h,得到當前玩家的地圖位置。
因為玩家和地圖網格都有大小?所以x/5不壹定是整數?那麽如果x是模5或者更大呢?坐標會是+1?y也壹樣。
我不知道妳用什麽語言。我只懂C#?C#xna中有物理模型的概念嗎?PhysicalObject將有壹個hitTest方法,對嗎?在C#中也有類似的簡單方法?比如:?蘭特格。包含(坐標、形狀)
如果妳仔細想想?妳也沒有正確理解我。
我的想法是?圓每次運動都不能和所有坐標比較嗎?最可行的方法是從圓的當前位置計算出它在哪些圓中。而不是寫壹個圓和正方形是否相切的方法?然後,然後,每個正方形和圓形進行比較。我整理壹下思路發給妳怎麽樣?我還沒怎麽考慮如何用代碼實現。