アプリ版:「スタンプのみでお礼する」機能のリリースについて

ifb CHKIMG( "XXX", -1, 0, 0, 0, 0, -1,  )
x=G_IMG_X // 画像の座標をxへ代入
y=G_IMG_Y // 画像の座標をyへ代入
endif

パソコンを変えた途端にこの症状は発生しました。

x,yの変数をメッセージボックスで出しているのですが、実際の画像と異なった座標を指定していまいます。

他の座標ツールとは座標が異なっているのです。

画像をクリックしてみても、実際の画像の位置とは違う場所をクリックしてしまいます。



画像の座標は一番左上が表示されることは存じております。

グラフィックボードを実装しています。OSのバージョンは8.1です。
原因は何が考えられるでしょうか。ご教授お願いいたします。

A 回答 (1件)

まず最初に関数の使い方がおかしいです。


戻値 = CHKIMG( [画像名, 透過色/色無視, x1, y1, x2, y2, 番号, 色幅] )

>ifb CHKIMG( "XXX", -1, 0, 0, 0, 0, -1,  )

正しく書くなら
ifb CHKIMG( "XXX", -1, 0, 0, 0, 0, -1 )
もっと言えば、x2,y2の範囲を指定すべきです。
指定する座標は絶対値です。


画面全体から指定した画像が無いか調査する
CHKIMG( "XXX", -1, 0, 0, G_SCREEN_W, G_SCREEN_H, -1 )


ただし、画面全体からでは動作が結構重くなります。

以下のようなスクリプトで予め画像の座標の確認をしてから調整しておくと動作が軽快になります


// 左クリックしたマウス位置を表示
Ifb GETKEYSTATE( VK_LBUTTON ) = TRUE THEN
MSGBOX ("マウスX座標" + G_MOUSE_X + " マウスY座標" + G_MOUSE_Y)
Endif


認識させる画像の大きさにも依存しますが、多少のずれを考慮し
大体の場所±100くらいを画像の検索範囲として設定するといいかもしれません。
    • good
    • 3

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

このQ&Aを見た人はこんなQ&Aも見ています