![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
マウスの左クリック判定があいまいに判定されます。
原因が不明なので教えて下さい。(初心者なので。。)
/* 初期化 */
screen 0,600,400
cls 4
/* MAIN */
*main
xx = mousex : yy = mousey
if (xx < 0):xx = 0
if (xx > 600):xx = 600
if (yy < 0):yy = 0
if (yy > 400):yy = 400
if (cc1 == 0){// cc1 カラー設定のフラグ
cc2++// cc2 カラー設定
if (cc2>254){
cc1=1
}
}
if (cc1 == 1){
cc2--
if (cc2==0){
cc1=0
}
}
getkey k1,2// 右クリック
getkey k2,1// 左クリック
wait 1
if ( k1 == 1){// 右クリック判定
cls 4
}
if ( k2 == 1){// 左クリック判定
flg = flg^0x01// ビット反転
}
if ((xx != xx2)||(yy != yy2)){// マウス移動確認
xx2 = xx
yy2 = yy
pos 0,0
color 0,0,0
boxf 0,0,110,20
color 255,255,255
print "xx="+xx+":yy="+yy // マウス位置情報
if (flg == 0):goto *move // 描画ルーチン
}
goto *main
*move
color cc2,cc2,cc2
line xx,yy,xx,yy+10// 四角を描画
line xx,yy,xx+10,yy
line xx+10,yy,xx+10,yy+10
line xx,yy+10,xx+10,yy+10
goto *main
No.2ベストアンサー
- 回答日時:
>開始したり停止したりして不安定なものになっています。
なるほど、それは、getkeyのタイミングに依るものだと思います。(実際には、HSPの作成者に聞いてみないとわかりませんが)
「左マウスがクリックされた」というのをどのタイミングで見つけているのか
2つ考えられると思います。
1)今まさにボタンが押されている状態である。
2)ボタンは押されて次の瞬間指は離されていて、現在はクリックされていない。
2の状態でプログラムにクリックされたということが伝わるなら問題ないですが、
1の様な場合、もう既に処理が終わっている(動作を切り替えている)のにまだ(ゆっくりクリックしていて)マウスが押されていて、次の処理(また切り替える、実質戻ってしまう)が行われてしまう。
のかもしれません。
多分、この1の場合なのでしょうね。
動作を確実なものにするためには、一端マウスがクリックされた(getkeyが1を返した)という状態からgetkeyがいったん0になるまで処理を再びしないようにするということが必要だと思います。
この回答への補足
またまた、ありがとうございました。(☆o☆)キラ~ン
*main
getkey k1,2
if (k1 == 1):print "OK"
wait 1
goto *main
stop
1回のクリックで6回もOKが表示されました。
・・・どうしよう┐(´~`)┌
もう少し考えてみます。
尚、もう少しこの問題を掲載しときます。謝謝
ヒントを貰い解決しました。
ありがとうございます。
*main
getkey k1,2
if (k1 == 1):print "OK"
wait 1
^^^^^^^^
(ここを wait 15に変更する)
goto *main
stop
ことでクリック判定が反復することがなくなりました。
もっと良い方法があるとは思いますがwait処理を入れる方法でいきたいと思います。
No.1
- 回答日時:
あいまいに判定というのがいまひとつわからないですが、多分問題ないのではないかと思います。
処理が飛び飛びになるということだったら
コンピュータは無限のスピードを持っているわけでないので、処理にはある程度時間がかかります。その時間の経過するウチにマウスが動いてしまいます。
また、マウスの発するイベント(座標を返す)も無限に短い時間で起こっているわけではありません。(マウスの解像度ともいいます。どれだけの距離を動いたことを感知するか)
勘違いしたコメントだったらすみません。
この回答への補足
早速のお返事ありがとうございます。(^-^)ゞ
マウスを画面上で動かすと"□"の軌跡を表示するプログラムです。
右クリックした際は画面をクリアする処理です。
こちらは問題なく即座に反応します。
左クリックした際は"□"の軌跡を停止・開始させたいのですが開始したり停止したりして不安定なものになっています。
問題文章がわかりにくくてすいませんでした。m(。-_-。)m
できればコメント下されればありがたいです。
よろしくお願いします。(^人^)、オネガイッ!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 5組のデータ (xx,yy) = (1.0 , 1.1), (2.0 , 1.0), (3.0 , 2 2023/01/09 16:52
- その他(住宅・住まい) 冬の札幌の暖房器具 4 2022/10/18 07:22
- Java Java 年数計算 3 2023/01/28 10:52
- Yahoo!メール yahooメール使用できなくなった。 1 2022/07/05 11:45
- 計算機科学 急ぎです、大学数学再帰の問題難しくてがわからないです。 以下の4つの文字列を連結して新たに生成できる 1 2023/05/17 20:11
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- 日本語 「徒歩圏内」「徒歩圏」の違い。ニュアンスも含め知りたい 5 2022/06/19 10:05
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- その他(法律) 肩書きを偽ってメールを送った場合、不正アクセス禁止法違反になるのか? 1 2023/02/18 08:35
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラム上での行のマージ方法
-
COPYコマンドで、最後に1文字...
-
10進数から2進数に変換 例 185 ...
-
vba クリップボードクリアにつ...
-
VBAでパワーシェルを実行したい...
-
Google ColaboでGUI作成
-
画像生成AIのプロンプトの作り...
-
Python... 環境設定 初心者です...
-
Webサイト内に埋め込んだmp4動...
-
Trix のツールバー(?)を上では...
-
HTMLソースが表示のページのも...
-
数行削除してコピーするbatファ...
-
PowerAutomateで運賃検索がした...
-
google Colabでmatplotlibの描...
-
ラズベリーパイピコでのPch MOS...
-
三菱シーケンサーの命令でFROM ...
-
Selenium4でボタンをクリックで...
-
REGZAに接続できない(パソコン)
-
【GAS】特定文字の削除について
-
uwscでPauseキーが押されたら、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構造体のメンバをfor文で回したい
-
mailto:の本文に文字数制限はあ...
-
batファイルでtelnetを起動⇒文...
-
mailto:の中に&を入れる
-
UWSCで出目画像カウントしたい
-
動的にプロパティ名を変えたい
-
R8Cマイコンの乗算
-
エラーログの意味
-
i-modeにホームページのアドレ...
-
EXCEL VBA でユーザー定義型デ...
-
Wi-Fiが繋がらなくなりました N...
-
アクセスで有給休暇管理表を作...
-
RTX810でローカルルータとして...
-
C言語でTCPの3way handshake
-
ネットワーク上に存在しないIP...
-
Windows端末でのsyslog受信につ...
-
outlookのアドレス帳について
-
USB3.2 GEN2×2のケーブルにThun...
-
「ナスネ」がPS4と繋がらないの...
-
MACアドレスで逮捕できる?
おすすめ情報