2016-06-27 4 views
-2

Social Isometric Gamesの53ページには、メソッドの説明があり、マウスカーソルの座標を使ってタイトルを定義しています。それはうまくいきますが、それを動作させるためにどのような原理が使用されているかははっきりしていません。誰かがこのアルゴリズムを詳細に説明できますか?たぶん、数式へのリンクがあります。あるいは、あなたは私がどの科学分野を見るべきかについて私に助言することができます。ここ マウスカーソルの座標を使用してタイトルを定義します。アイソメソーシャルソーシャルゲーム

は私は興味のコードの例である:私が見ることができるように

var col = (e.clientY - gridOffsetY) * 2; //??? 
col = ((gridOffsetX + col) - e.clientX)/2; //??? 

var row = ((e.clientX + col) - tile.height) - gridOffsetX; //??? 
+0

申し訳ありません!私はリンクをつけるのを忘れた。訂正 –

答えて

0

、菱形セルの高さは、2 * pは、幅が4 * pを、pは特徴的なサイズがあります値。

トップセルの基点 - 頂点の座標を(0,0)としましょう。

したがって、右上のエッジベクトルはtr=(2p, p)、左上のベクトルはtl=(-2p, p)です。

マウスポイントを(mx, my)としましょう。それは、1がCを見つけるために、基底ベクトルtl, tr

mx = R * tl.x + C * tr.x 
my = R * tl.y + C * tr.y 
or 
mx = R * 2 * p + C * p 
my = R * (- 2 * p) + C * p 

によってベクトル(mx, my)を分解することができ属するものを、細胞を見つけるために、我々は方程式

R = (mx - my)/(4 * p) 
row = Floor(R) 
を差し引き、Rを見つけるために、両方の式

mx + my = 2 * C * p 
C = (mx + my)/(2 * p) 
column = Floor(C) //integer part of C 

を追加することができます

他の計算では、画面上のグリッドの移動を考慮に入れます。

関連する問題