Active Basicでプログラムを書いています。
今、簡単なゲームを作ってみようと思い、プログラムを書いているのですが、画像の座標の取得の部分で躓いてしました。
画像Aに画像Bが触れたときに『アウト』とメッセージを出す、簡単な、物を避けるゲームなのですが、グローバルで、
Dim BombRect As RECT
Dim HitoRect As RECT
を定義して、画像が重なったかどうかを判定するときに、
GetWindowRect(hBmp04,BombRect)
GetWindowRect(hBmp01,HitoRect)
で、読み込もうとしましたが、座標が格納されてくれません。
hBmp01とhBmp04には、下のようにして画像を読み込みました。
'グローバル
Dim hBmp01 As HWND
Dim hBmp02 As HWND
Dim hBmp03 As HWND
Dim hBmp04 As HWND
'ウインドウ作成時
hBmp01 = LoadImage(0,".\画像\人\普通.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE)
hBmp02 = LoadImage(0,".\画像\人\右.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE)
hBmp03 = LoadImage(0,".\画像\人\左.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE)
hBmp04 = LoadImage(0,".\画像\爆弾\ボム.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE)
もし、やり方をご存知の方がいらっしゃいましたら、すみませんが、ご教授お願いします。
また、もっと簡単な方法がありましたら、そちらも教えていただけると嬉しいです。
No.1ベストアンサー
- 回答日時:
こんばんは。
GetWindowRect()はウィンドウから四方のサイズを取る為の物です。
ファイルからロードして来たビットマップは、ウィンドウではないので、GetWindowRect()を使っても効果が無いのです。
hBmp01~hBmp04は「As HWND」ではなく、「As HBITMAP」で無いといけません。
ビットマップから直接「x、y」座標(現在居る位置の方)を取る事は出来ません。プログラム側が座標を保有していないといけません。
又、ビットマップから「横・縦」幅を取るには以下のBITMAP構造体とGetObject()を使用すれば出来ます。
「BITMAP構造体」
http://msdn.microsoft.com/ja-jp/library/k1sf4cx2 …
「windowsプログラミング・ビットマップ描画」
http://den3.moe.hm/elope/index.php?Windows%A5%D7 …
以下の様にしてhBmp01の「横・縦」幅を取ります。
Dim bm As BITMAP
GetObject(hBmp01, SizeOf(BITMAP), bm)
With bm
.bmWidth'横幅が入っている
.bmHeight'縦幅が入っている
End With
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) 【VBA】Excelの特定範囲のセルを画像で保存したい 2 2023/01/25 13:06
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) 【マクロ】フォルダを2つのモニターの定位置に並べたい 2 2022/09/02 01:14
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- C言語・C++・C# C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、 3 2023/07/19 14:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
エクセルである点からの距離で...
-
エクセルで回転する座標の出し方
-
座標を結んだ線分の交差
-
シーケンサー(PLC?)で制...
-
閉図形の座標の配列が右回りか...
-
円弧の描画について
-
球面状に円を描くプログラム
-
多角形の内部かどうか判定する方法
-
マインクラフト(pc版)で座標...
-
ダイアログ内コントロールの位...
-
複数の回転する長方形の衝突判定
-
ピクチャボックスの座標取得
-
エクセルシート上のマウスポイ...
-
DirectInputでの現在のマウス座...
-
直線と傾きのある楕円の交点を...
-
3Dでの、壁との衝突判定
-
Pythonの質問です。 input関数...
-
PPTのVBA スライド右下端の座...
-
住所から経緯経度を出したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
マインクラフト(pc版)で座標...
-
エクセルで回転する座標の出し方
-
エクセルである点からの距離で...
-
3次元空間上の2つの座標から...
-
閉図形の座標の配列が右回りか...
-
ダイアログ内コントロールの位...
-
始点、終点の二つの座標と半径...
-
座標を持った平面範囲に座標を...
-
空間上の二点を結ぶ直線上に任...
-
エクセルシート上のマウスポイ...
-
多角形の内部かどうか判定する方法
-
ワード上Shapeの位置情報を統一...
-
Excel VBA で自在に図形を変化...
-
OpenCvSharp4による画像判定解...
-
C言語 配列で座標
-
シーケンサー(PLC?)で制...
-
以下のプログラムは重心を求め...
-
交差する2線分の交点座標の求め方
-
VB6のPrinter.ScaleWidth に対...
おすすめ情報