あなたの習慣について教えてください!!

C++とDirectXを使って白地図の都道府県をマウスでクリックするとその県に色がつくプログラムを作りたいのですが、不定形の範囲とマウスクリックを関連付ける方法がわかりません。
長方形や丸ならクリックした座標と図形の当たり判定をとる方法で色を変えられたのですが、都道府県だと形が不定形なため、座標が計算で求められないのでできませんでした。
関連づけの方法を教えてください。
こんなかんじになるものです↓

「マウスクリックと図形の関連付けについて」の質問画像

A 回答 (1件)

DirectXとか関係ありませんが…



表示する画像と縦横が同じサイズの二次元配列なり用意します。
で、画像がクリックされた時に座標から配列を参照して結果を得ます。
二次元配列ではなく8Bitカラーのビットマップにする。
という手もあるでしょう。
# レイヤー機能があるペイントソフトなどでそういう画像データを作成すればよい。
# ペイントソフトでは24Bitカラーになるようであれば、8BitカラーのBMPに変換してくれるようなソフトもありますし。

これなら矩形とかの制限はありませんし。
# というか、某ゲームエンジンでやっていた方法ですしねぇ。(クリック時ではなくマウスカーソルが特定の領域に入っているかの判定用でしたけどね)
# 当時はOPTPiXのお世話になりましたなぁ…。8Bitカラー用のパレットファイル用意してましたわ。(せいぜいクリック箇所判定は32個程度あれば充分だったのでパレットファイルもそんなモンでしたが)
# メッセージウィンドウの各種ボタンとか、CGモードのサムネイル(斜めになっているものとかいろいろ)の上にマウスカーソルが乗ったか?とかの判定に使いまくり。
    • good
    • 0
この回答へのお礼

なるほど、座標の配列にある色のデータで判別するのですね。
その方法でやってみます。
回答ありがとうございました。

お礼日時:2013/08/04 19:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!