2016-05-21 3 views
0

これら二つのスニペットは、犯人です:ズーム2Dゲームのカメラは、それが原点から移動します(Javascriptの)

function tr(){ 
    ctx.translate(0-cameraX,0-cameraY); 
    ctx.scale(zoom,zoom); 
} 


function uiPosToWorldPos(pos){ 
    return [(pos[0] + cameraX)/zoom,(pos[1] + cameraY)/zoom]; 
} 

私は(スクロール/視差の世界を作成するために、私のカメラの反対側に私の世界を動かしているやっていますかなり標準的です。)カメラのズームを追加するまで、これはいいものです。私は、この問題を起こさずに上記の関数をズームすることを考慮する方法を見つけるのが難しいです:私のカメラが遠くになると(0,0)、ズームが小さくなるとズームアウトします。原点。

私はどこにいてもズームインとズームアウトができるように、ズームインとズームインに関係なく、同じ場所がセンターカメラのままになります。 2番目の機能は、私のマウスが世界にどこにいるのかを判断するために必要であり、私は自分の境界線を設定し、私の画面上にあるアイテムだけを描画することができます。

+0

オブジェクトに最初に変換すると、オブジェクトがそのサイズだけ描画される場所には影響しません。 –

答えて

0

スケール係数を計算し、それをオブジェクトの位置と掛け合わせます。

関連する問題