はじめまして
初心者質問ですがよろしければ回答いただきたいです
いきなり本題に入り、申し訳ないです
DXライブラリでマウスポインタの座標を取得し、ゲームに利用することは出来ますが
プレイヤーがマウスをどう動かしたのかという情報を得ることは出来ないでしょうか
つまり、マウスポインタではなく、マウスがどういう命令を出したのかということが知りたいのです
DXライブラリのサイトに載っているマウスポインタの座標を得る関数を使用しようかと思うと
マウスポインタが画面最上部まで移動してしまった場合、ポインタはもう上方向に移動することが
できませんから、ユーザーがマウスをどう動かしたのかという情報は得られません
DXライブラリが使えないのであれば小6以来にjavaの勉強でもしてみようかとも思っています
(javaにもそんな関数なかったら駄目なんですが)
よろしければ、ご回答よろしくお願いします
マウスの移動認識
-
syorokuirai
Re: マウスの移動認識
今、思ったんですが
マウスポインタの座標がちょっとでも動いたら、画面の中央にポインタを移動させる
プログラムにしてみたら、できないでしょうか?
あ、でもマウスポインタの座標を指定させて移動させる方法を知りませんでした
もう一つ質問したいのですが、java、C言語それぞれに
ポインタの座標を操作する関数はありますか?
マウスポインタの座標がちょっとでも動いたら、画面の中央にポインタを移動させる
プログラムにしてみたら、できないでしょうか?
あ、でもマウスポインタの座標を指定させて移動させる方法を知りませんでした
もう一つ質問したいのですが、java、C言語それぞれに
ポインタの座標を操作する関数はありますか?
Re: マウスの移動認識
一定時間ごとにマウス座標を記録していけば、どのように動かしたのか知ることができます。syorokuirai さんが書きました: DXライブラリでマウスポインタの座標を取得し、ゲームに利用することは出来ますが
プレイヤーがマウスをどう動かしたのかという情報を得ることは出来ないでしょうか
つまり、マウスポインタではなく、マウスがどういう命令を出したのかということが知りたいのです
ありません。syorokuirai さんが書きました: もう一つ質問したいのですが、java、C言語それぞれに
ポインタの座標を操作する関数はありますか?
マウスポインタを操作する関数はDXライブラリの機能(Win32APIの機能)であり、
C言語の機能ではありません。Javaについても同じことが言えます。
Re: マウスの移動認識
補足的になりますがDXライブラリを使う場合はウィンドウプロージャを操作できませんのでオンクリックやアウトクリックを使う場合はDXライブラリの関数を利用して自身で実装するしか無いと思います。
✜ で C ご ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
: す + 注 :
¦ か + 文 ¦
: ? Is the は :
✜ order C++? ✜
糸冬
――――――――
制作・著作 NHK
――――――――
制作・著作 NHK
-
syorokuirai
Re: マウスの移動認識
>>新月さん
すいません まだまだ初心者なので外来語がよめませんでした
ポインタがそれ以上、上にいくことが出来なくなってしまいます
そうなると、プレイヤーが上方向に命令を出したか否かが分からなくなってしまいます
と思うのですが どうでしょうか
今は触らないでおくことにしました
すいません まだまだ初心者なので外来語がよめませんでした
それだと、マウスポインタが画面の最上部まで言ってしまった場合、h2so5 さんが書きました:一定時間ごとにマウス座標を記録していけば、どのように動かしたのか知ることができます。
ポインタがそれ以上、上にいくことが出来なくなってしまいます
そうなると、プレイヤーが上方向に命令を出したか否かが分からなくなってしまいます
と思うのですが どうでしょうか
javaを使うにしてもwinAPIのおぞましいプログラムを覚えなくてはいけないのですか・・・h2so5 さんが書きました: ありません。
マウスポインタを操作する関数はDXライブラリの機能(Win32APIの機能)であり、
C言語の機能ではありません。Javaについても同じことが言えます。
今は触らないでおくことにしました
Re: マウスの移動認識
画面の中央にポインタを戻しながら移動量を計測するのが簡単だと思います。
マウスポインタの座標を移動させる関数はDXライブラリのリファレンスに載っていますので、そちらを参照してください。
マウスポインタの座標を移動させる関数はDXライブラリのリファレンスに載っていますので、そちらを参照してください。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: マウスの移動認識
DXにおいてはマウスは、SetMousePoint()で常に中央にすることは出来ますが、かなり不便になるのでやらないほうが良いのではないでしょうか?
SetHookWinProcとかウィンドウメッセージを監視するほうが良いと思います。つまりwin32APIです。
下記のような方法でもメッセージは監視できるようです。
「DXライブラリのウィンドウ関係で • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?t=10206&p=82281
あと、Javaで直にWin32APIを扱うことはありません。マウス用のライブラリがあります。
「とほほのJava入門 マウスモーションリスナー(MouseMotionListener)」
http://www.tohoho-web.com/java/listener ... onListener
SetHookWinProcとかウィンドウメッセージを監視するほうが良いと思います。つまりwin32APIです。
下記のような方法でもメッセージは監視できるようです。
「DXライブラリのウィンドウ関係で • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?t=10206&p=82281
あと、Javaで直にWin32APIを扱うことはありません。マウス用のライブラリがあります。
「とほほのJava入門 マウスモーションリスナー(MouseMotionListener)」
http://www.tohoho-web.com/java/listener ... onListener
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: マウスの移動認識
Win32APIはあまり詳しくないですが、OSレベルのAPIではマウスの現在位置しか提供されていないようなので、
マウスポインタが画面の最上部まで行ってしまった場合でもマウスの物理的な移動量を求めるには
マウスのドライバに直接アクセスでもしないと無理じゃないでしょうか。
マウスポインタが画面の最上部まで行ってしまった場合でもマウスの物理的な移動量を求めるには
マウスのドライバに直接アクセスでもしないと無理じゃないでしょうか。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: マウスの移動認識
失礼、画面上部とはデスクトップ画面上部の事ですね。h2so5 さんが書きました:Win32APIはあまり詳しくないですが、OSレベルのAPIではマウスの現在位置しか提供されていないようなので、
マウスポインタが画面の最上部まで行ってしまった場合でもマウスの物理的な移動量を求めるには
マウスのドライバに直接アクセスでもしないと無理じゃないでしょうか。
ウィンドウ上部だと思ってました。
だとすると画面中の中央に戻すぐらいしか無いですね。調べてみます。
[補足]
これはJavaでも同じですね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: マウスの移動認識
DOS時代と違い方法が無いみたいなので常に中央に戻すしかなさそうです。
ただ、何かのボタンで解除できるようにしておかないと不便でしょうね。
ただ、何かのボタンで解除できるようにしておかないと不便でしょうね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
syourokuirai
Re: マウスの移動認識
ありがとうございました
とりあえず簡単そうなのでDXライブラリの標準関数を使い
ループごとにマウスカーソルを中心に強制移動させることにします
とりあえず簡単そうなのでDXライブラリの標準関数を使い
ループごとにマウスカーソルを中心に強制移動させることにします