1
我開始使用這個解決方案,但後來我發現當角色與剩餘座標處於一個座標時,它無法正確映射。如何將屏幕座標轉換爲簡單2D遊戲的世界座標?
首先我從相機中看到可見光範圍。然後我得到鼠標位置並按塊大小進行劃分,問題是:我假設在屏幕開始處有一整塊,但實際上可能有1/4,2/4和3/4的塊一個塊,屏幕結尾也是如此。
如何以最有效的方式正確執行此轉換?
typedef struct {
float x, y;
} Point;
Point camera_screen_coord_to_game(Camera *camera, int x, int y)
{
Range range = camera_get_visible(camera, game_clock_ticks());
int block_size = settings_get_block_size();
Point game_coord;
game_coord.x = range.x0 + x/block_size;
game_coord.y = range.y1 - 1 - y/block_size;
return game_coord;
}
我覺得很難提供幫助,因爲不清楚哪個變量正在使用哪個座標系。遊戲中的範圍是多少?遊戲座標是否使用1塊作爲單位?所以遊戲座標可以是分數的,例如1.5是塊1的中心? – Bgie