トップページ > 過去ログ > 記事閲覧
スクリーン画像の座標からイメージファイルを取得したい
名前:プチToTo 日時: 2007/11/29 09:56

背景の画像の上にカードのような画像を表示し、 カードをマウスで操作するアプリを作成したいと思っています。 ウィンドウ上のマウスカーソルの座標からどの画像の上にいるか取得するような事は可能でしょうか。 imege ハンドラなど識別できるものが取れればと考えていたのですが、うまくいきません。 カードは重ねて表示することも考えています。 回転もさせます。 メモリがかなり無駄になってしまいますが、 スクリーン領域と同じサイズの配列を持って、描画した箇所にハンドラNo.を書込もうかとも 考えたのですが、回転や重なりを考えると管理がちょっと面倒で・・・ MDIで作成してカード画像を子ウィンドウにすべきか、Dxライブラリでいけるのか苦難中です。 もしご存知の方がいらっしゃいましたら教えていただければと思います。

Page: 1 |

Re: スクリーン画像の座標からイメージファイルを取得したい ( No.1 )
名前: 日時:2007/11/29 12:13

カード画像を描画しているRECT領域 (left, right, top, bottom)と、 マウスポインタの位置で2Dの当たりを取ればOK. 重なりを判定する為にはImageハンドルを レイヤー管理してどれがどの順番で重なっているか を管理します。 最終的にはImageハンドルと描画領域をリスト化して後は、現在のポインタ位置とレイヤ・描画領域の 当たりの結果から、リスト化したImageハンドルの 中から該当したものを返すという感じで実装できる と思います。 この辺りは、ライブラリやMDIの機能云々ではなく、 ゲーム内でどのように実装するかの問題だとおもいますが、ようは考え方次第です。
Re: スクリーン画像の座標からイメージファイルを取得したい ( No.2 )
名前:プチToTo 日時:2007/11/29 15:48

早速教えていただきありがとうございました。 カードの描画イメージからRECT領域を取得し、座標値とのあたり判定を行うことでやってみたいと思います。 重なりについては、リストの中から当たり判定のでたイメージのレイヤーが上のものを取得する事でがんばって見ます。 処理的にはイメージのleft, right, と x座標の比較 top, bottom と Y座標の比較 となると思っているのですが、これをやってくれる便利な関数・・・あります・・・いや・・・ごめんなさいたわごとです。 回転があると比較が面倒になるのであればいいなぁと。 この辺は方程式思い出しながらやってみます。(^^; ちょっと変な風に行き詰ってしまっていたのでとてもありがたかったです。 ありがとうございます。
Re: スクリーン画像の座標からイメージファイルを取得したい ( No.3 )
名前: 日時:2007/11/29 16:40

>これをやってくれる便利な関数 矩形の当たりを取るだけなら数行でできます。 例えば: int CollisionCheck( int x, int y, int left, int rigth, int top, int bottom ) { if ((( x >= left) && ( x < rigth)) && (( y >= top ) &&( y < bottom ))) { return 1; } return 0; } 当たっていれば1、当たってなかったら0を返す。 わざと構造体を使っていませんが、 WindowsAPIにはPtInRect( RECT rect, POINT pos ) という関数もあります。 回転というのは、回転中の当たりを取るのは 難しいですが、基本的には縦と横の矩形が 変わるだけなので、そんなに難しくありません。
Re: スクリーン画像の座標からイメージファイルを取得したい ( No.4 )
名前:プチToTo 日時:2007/11/29 22:31

本当にありがとうございます。 関数いただいてしまいました。 回転して表示しているカードには座標を回転角分回して比較しようと思います。 今日は時間がとれずまだ試せていないのですが 教えていただいた処理を組み込んで完成に近づけたいと思います。 なんとなく カードゲームから デスクトップに写真を貼り付けるソフトになりそうです(^^ 非常駐の壁紙を作るソフト+回転出来るソフトが見つからなかったのでゲームより欲しかったので。 MacのPhotoDesktop のようなソフトを目標に・・・
Re: スクリーン画像の座標からイメージファイルを取得したい ( No.5 )
名前:かたぱると 日時:2007/12/08 15:26

昔作った自分用のサンプルで似たようなことを組んだ記憶があり、 HDDの奥から引っ張り出してみました。 今見ると微妙なソースですが参考になればと思い ちょいと修正しとりあえずUPしてみました。 <おくりん坊のオイラの領域> ttp://okurin.bitpark.co.jp/download.php?unb=13792&sid=B475a37b24823e&uid=kvaitGie 5日経つか10回DLされると消えてしまいます。 まぁ…参考までに程度で m(_ _)m
Re: スクリーン画像の座標からイメージファイルを取得したい ( No.6 )
名前:プチToTo 日時:2007/12/18 10:34

またレスをいただけているとは思いませんでした。 かたぱるとさんありがとうございました。 最近ちょっと忙しくて作る暇がなく掲示板みのがしてしまっていました。 もし、できたら お時間があるときにでもまたUPしていただいてもよろしいでしょうか。 でもなんとかできるようがんばってみます。 ありがとうございます。
Re: スクリーン画像の座標からイメージファイルを取得したい ( No.7 )
名前:かたぱると 日時:2007/12/20 00:12

とりあえず同じものをUPしました。 ttp://okurin.bitpark.co.jp/download.php?unb=673c3&sid=B476933dc1e1b3&uid=dsmzsCax 同じく5日経つか10回DLされたら無くなりまする〜
Re: スクリーン画像の座標からイメージファイルを取得したい ( No.8 )
名前:プチToTo 日時:2007/12/20 18:32

こんどはいただけました!! かたぱるとさんありがとうございます。 やればやるほど壁が出てきてたまらない状態ですが ゲームを作るよりは簡単のはずと言い聞かせて がんばっています。 参考にさせていただきます!

Page: 1 |