
VC++2010&DXライブラリを使用してタクティクスオウガやモナークモナークのようなSLGをふと作りたくなり、クォータービューを採用しました。
全くの平面な状態ですと、それぞれのブロックチップのひし形の4つの座標を、それぞれ通る4本の一次関数式と現在のマウスカーソル位置との範囲内計算をさせることで、カーソルがあたっている部分だけ色を変えるという処理(ゲーム内カーソルの表示)をさせる処理は上手くいきました。
また、ひし形の頂点の座標をCreatePolygonRgn();とPtInRegion();を使う処理に変えてみても大丈夫でした。
しかし添付しました画像のようにマップに高さの概念を加えていくと、ひし形が重なり合う部分が出てきてしまい、画像のように
青の部分にマウスカーソルが入るとAとBが選択されて色が変わった状態になり、
緑の部分にマウスカーソルが入るとCとBが選択されて色が変わった状態になり、
赤の部分にマウスカーソルが入るとDとBが選択されて色が変わった状態になってしまいます。
(いずれの場合も、一番手前にあるBの面だけが選択され、色が変わった状態になってほしい、
というのが理想としている動きです)
CreatePolygonRgn();も使えるので、例えばこの画像のような例ですとAは変形六角形、CとDは変形五角形として扱うこともできそうですが、常にこういった高さの違うマップだけを表示する、というわけではなく、ブロックによっては高さが任意に変わってしまうため、変形多角形のパターンも多岐になるであろうことが予測できてしまい、目の前が真っ暗になってしまっております。
こういった場合のマウスカーソルの当り判定につきまして、何か良い処理方法をご存知の方がいらっしゃいましたら何卒お教えくださいますようお願いします。

No.1ベストアンサー
- 回答日時:
難しく考えずに複数の面が該当したらいちばんZが近い(カメラが近い)ものを選択すれば良いのでは?
回答ありがとうございます。
3D処理ではなく、2D処理でのお話だったのですが、「いちばんZが近いものを選択」というのがヒントになり、解決しました。
今まで最も奥のX軸Y軸[0,0]からインクリメントでループを回してチェックをかけていたのを、逆のX軸Y軸共に最大軸からデクリメントでループを回してリージョン内マウスポインタチェックをかけることで想定していた結果を得ることができました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 『4色問題⓵』 9 2022/10/24 06:54
- Excel(エクセル) エクセルのマクロを教えてください。 4 2022/10/06 08:53
- Windows 10 Windows11タスクバーやエクスプローラー、スタートメニュー 動画全画面時にカーソルが見えない 1 2022/04/08 00:03
- その他(クラウドサービス・オンラインストレージ) Googleカレンダーの予定の色を変えたい、文字色を変えたい。 1 2022/10/18 21:43
- 特撮 ジローは何故キカイダーの時とは逆側に取り付けたサイドカーを使うのですか? 4 2023/06/21 18:28
- Photoshop(フォトショップ) インデザイン 上で、フォトショップの線の色を変えたい 4 2022/06/12 18:49
- 物理学 角運動量の式変形が分かりません。 4 2022/08/03 21:04
- 物理学 量子力学 球面調和関数 導出 方位角成分 微分方程式の解 2 2022/07/02 13:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
- 防犯カメラ・監視カメラ・小型カメラ Windowsのカメラ機能。設定した通りのfpsでの撮影ができず、コマ落ち動画になる。修正するには? 2 2023/01/29 09:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
googlemapのタイル画像
-
クリックした点を中止に拡大・縮小
-
PHPでエクセルのグラフを作成ま...
-
コントロール名とそのプロパテ...
-
マウスストーカーのようにカー...
-
VB、VBSでのキーマクロ
-
UWSCのプログラミングついて教...
-
ひし形のあたり判定について
-
UWSC画像認識で座標の位置がず...
-
元の比率で画像を切り抜きする方法
-
エクセルVBAで画像を貼り付ける...
-
特定座標のRGB値取得について
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
switch の範囲指定
-
男性に対して、『女性への気遣...
-
Googleフォーム・複数人の申し...
-
Excelシート上のマクロを登録し...
-
エクセルVBAで、MsgBox やInput...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#で、画像の、指定した座標の...
-
UWSC画像認識で座標の位置がず...
-
C言語でグラフ作成??
-
Excel VBAで他アプリケーション...
-
VBA HTML要素または文字の座標...
-
uwscについて、同一の画像(仮...
-
VBでクリックイベントを発生さ...
-
エクセルVBAで画像を貼り付ける...
-
マウスイベントが動かない
-
UWSCのプログラミングついて教...
-
PostScriptについて
-
VBでデスクトップ上のアイコン...
-
UWSCのCHKIMG関数について
-
LineTo,MoveToについて
-
マウスカーソルの移動
-
UWSファイルの編集?
-
DirectX テクスチャの拡大
-
VBAで ScreenToClient を使いたい
-
高さのあるクォータービューの...
-
UWSCでPEEKCOLORを使い指定ウィ...
おすすめ情報