C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: MouseMove() の感度?


(過去ログ 125 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■74440 / inTopicNo.1)  MouseMove() の感度?
  
□投稿者/ Thaz (7回)-(2014/12/29(Mon) 11:57:59)

分類:[.NET 全般] 

ゲームのためのマップエディターを作っています。
マウスをクリックしながらMoveさせタイルを詰めていくのは取りあえず出来たのですが、
マウスを素早く動かすと処理がついてこないというか、タイルも途切れ途切れになってしまいます。
MouseMove()の感知をしている最小ミリ秒よりも早く動かしているからでしょうか?
これを解決する方法はどの様なものがあるのでしょうか?
引用返信 編集キー/
■74441 / inTopicNo.2)  Re[1]: MouseMove() の感度?
□投稿者/ shu (653回)-(2014/12/29(Mon) 12:19:16)
No74440 (Thaz さん) に返信

MouseMove内に記述されたコードによると思いますが
前回値との比較のような処理をされているとそんな感じになると思います。
MouseDown時との比較にするようにされた方がよいかもしれません。


Down => モード開始
Move => 仮状態の表示
Up => 確定・モードの終了

のようなインターフェースの方が安定はすると思います。
引用返信 編集キー/
■74442 / inTopicNo.3)  Re[1]: MouseMove() の感度?
□投稿者/ とっちゃん (290回)-(2014/12/29(Mon) 13:07:38)
とっちゃん さんの Web サイト
No74440 (Thaz さん) に返信
> マウスを素早く動かすと処理がついてこないというか、タイルも途切れ途切れになってしまいます。
> MouseMove()の感知をしている最小ミリ秒よりも早く動かしているからでしょうか?
> これを解決する方法はどの様なものがあるのでしょうか?

MouseMove(実際には、OSのハードウェア割り込み処理からの通知)は、実際に通知をプログラムが
受け取るタイミングで座標を引っ張り出すため、瞬間の座標しか持っていません。

そのため、前回と今回の通知の間の変化については受け取ることができません。
(Windows自身がそういうことができるように作られていないため)

なので、MouseMoveが来たときの位置だけでタイルをセットするのではなく、
前回と今回との中間点を線形補完してその隙間を埋めればいいのではないでしょうか?

引用返信 編集キー/
■74452 / inTopicNo.4)  Re[2]: MouseMove() の感度?
□投稿者/ Thaz (8回)-(2015/01/03(Sat) 22:12:28)
コメントありがとうございます。
仰る通りにやってみようと思います!
引用返信 編集キー/
■74457 / inTopicNo.5)  Re[3]: MouseMove() の感度?
□投稿者/ Thaz (9回)-(2015/01/04(Sun) 18:34:41)
無事できました!
皆様どうもありがとうございました!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -