トップページ > 記事閲覧
コントローラのボタンの確認と攻撃時の振動
名前:マーク42 日時: 2020/01/28 03:21

PS4のコントローラでR2とL2以外のボタンの動作確認は出来ました。 しかしR2とL2以外のボタンの動作確認が出来ていません。 確認できないというか何番目のPADなのかわかりません。どうか教えて頂けないでしょうか。 あともう一つ、コントローラを振動させるために if (Pad[PAD_3] == 1 && playerX > 0 && Gcount >= 1 && Gtime == 0 && Gkey == 1 && Pad[PAD_5] ==! 1) {StartJoypadVibration( DX_INPUT_PAD1, 1000, 2000 ) ; Gtime = 1; //銃を撃ってからの経過時間を1にする Gcount = Gcount - 1; //残弾数を-1する playerImage = playerGHandle[0]; //真正面の状態にする if (playerY == enemyY && playerX + 1 == enemyX || playerY == enemyY && playerX + 2 == enemyX || playerY == enemyY && playerX + 3 == enemyX || playerY == enemyY && playerX + 4 == enemyX || playerY == enemyY && playerX + 5 == enemyX) {//これで前に敵がいるときのみに攻撃が出来る。 enemysabunHPG = 100; enemyImage = enemyGHandle[5]; } } などの銃を撃つときにコントローラを振動させてみたのですが、敵のHPが勝手に減るバグなどが起きます。 (振動を確認するプログラムではちゃんと振動しました。) どうすれば正しくStartJoypadVibration( DX_INPUT_PAD1, 1000, 2000 ) ;が動くでしょうか? mein.c //pastebin.com/Akz73yGV playerhennsuu.h //pastebin.com/wEVQH0if talk.h //pastebin.com/QB8NUubA taitol.h //pastebin.com/eM0fipAN player.h //pastebin.com/wwZ8m9FJ key.h //pastebin.com/8y2y2dpp countine.h //pastebin.com/cku2C4bh
メンテ

Page: 1 |

Re: コントローラのボタンの確認と攻撃時の振動 ( No.1 )
名前:管理人 日時:2020/01/28 23:53

すみません、ソースファイルを一つ一つ確認するのが大変なので ソースファイルをVisualStudio2019のプロジェクトフォルダごとzip形式などで圧縮して Googleドライブか、ファイルアップローダーにアップしていただけないでしょうか? m(_ _;m
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.2 )
名前:マーク42 日時:2020/01/29 13:02

是非そうさせて頂きます!どうもありがとうございます。 あの、調べても見ながらもやり方がいまいちわからないのですが、どうかやり方を教えて頂けないでしょうか。 調べたうえで、今現在プロジェクトファイルを制作しているのですが間違っているかもしれないのでどうかよろしくお願いいたします。
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.3 )
名前:クロエ 日時:2020/01/29 14:47

ファイルアップローダーについてか、 VisualStudio2019のプロジェクトについてか、 zip形式についてか、 何を教えて欲しいのか分からないので、 まずご自分で調べたという内容をここに公開してもらえますか。
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.4 )
名前:マーク42 日時:2020/01/29 21:43

ソースファイルを使ってVisualStudio2019のプロジェクトフォルダを作りzip形式にする方法がわかりません。 私個人ではソースファイルを使ってVisualStudio2019のプロジェクトフォルダの作り方について調べて実行してみましたがやり方が 間違っていたのかできなかったですが、 //docs.microsoft.com/ja-jp/visualstudio/ide/how-to-create-project-templates?view=vs-2019 の方法より多分正しくできたと思います。 こちらにzipファイルにしたコードを入れました。どうかよろしくお願いいたします。 //prt.red/0/VisualStudio_2019用
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.5 )
名前:管理人 日時:2020/01/29 23:23

プロジェクトをアップしていただきありがとうございます R2 L2 ボタンの動作確認ができないとのことですが、私の手元では PAD_7, PAD_8 がそれぞれ L2, R2 に該当しましたので マーク42さんの環境とは何か違うのかもしれません よろしければこちらの『パッド1の情報を画面に表示するプログラム』を実行して、L2, R2 を押して 画面上の『InputState:』と書かれている右側の部分に何の数値が表示されるか確認してみていただけないでしょうか? m(_ _)m #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { DINPUT_JOYSTATE input ; int i ; // ウインドウモードで起動 ChangeWindowMode( TRUE ); // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ); // メインループ(何かキーが押されたらループを抜ける) while( ProcessMessage() == 0 ) { // 画面のクリア ClearDrawScreen() ; // 画面にパッド1の入力状態の情報を描画 GetJoypadDirectInputState( DX_INPUT_PAD1, &input ) ; DrawFormatString( 0, 16, GetColor( 255,255,255 ), "X:%d Y:%d Z:%d", input.X, input.Y, input.Z ) ; DrawFormatString( 0, 32, GetColor( 255,255,255 ), "Rx:%d Ry:%d Rz:%d", input.Rx, input.Ry, input.Rz ) ; DrawFormatString( 0, 48, GetColor( 255,255,255 ), "Slider 0:%d 1:%d", input.Slider[ 0 ], input.Slider[ 1 ] ) ; DrawFormatString( 0, 64, GetColor( 255,255,255 ), "POV 0:%d 1:%d 2:%d 3:%d", input.POV[ 0 ], input.POV[ 1 ], input.POV[ 2 ], input.POV[ 3 ] ) ; DrawFormatString( 0, 80, GetColor( 255,255,255 ), "InputState:%d", GetJoypadInputState( DX_INPUT_PAD1 ) ) ; for( i = 0 ; i < 32 ; i ++ ) { DrawFormatString( 64 + i % 8 * 64, 96 + i / 8 * 16, GetColor( 255,255,255 ), "%2d:%d", i, input.Buttons[ i ] ) ; } // 裏画面の内容を表画面に反映 ScreenFlip(); } // DXライブラリの後始末 DxLib_End(); // ソフトの終了 return 0; }
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.6 )
名前:マーク42 日時:2020/01/30 11:18

どうもありがとうございます。 確認させて頂きました。L2とR2だけ0〜31の番号のどれにも反応が無く、 L2を押すとZが1000になり、R2を押すとZが−1000と表示されます。 ただ、input mapperでコントローラの仕様をdefaultにしたところ、L2が6番で反応、R2が7番で反応しました。 もしかしたら誤ってコントローラの仕様を変えてしまっていたのかもしれません。 管理人様の方でもL2が6番で反応、R2が7番で反応しますでしょうか。 どうかよろしくお願いいたします。
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.7 )
名前:クロエ 日時:2020/01/30 15:15

>L2とR2だけ0〜31の番号のどれにも反応が無く、 >L2を押すとZが1000になり、R2を押すとZが−1000と表示されます。 分からないのですが、反応が無いのに押すと変化があるのですか? あと実行ファイルがどういう動作をするものかが他の人には分からないので、基本操作のマニュアルを添付すると回答できる人が増えるかもしれません。 そして質問にはどうすれば StartJoypadVibration( DX_INPUT_PAD1, 1000, 2000 ) ; を通る想定なのか、など。
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.8 )
名前:管理人 日時:2020/01/31 01:10

> マーク42さん > 管理人様の方でもL2が6番で反応、R2が7番で反応しますでしょうか。 はい、私の環境でもL2で6番、R2が7番で反応します > クロエさん > >L2とR2だけ0〜31の番号のどれにも反応が無く、 > >L2を押すとZが1000になり、R2を押すとZが−1000と表示されます。 > 分からないのですが、反応が無いのに押すと変化があるのですか? No.5で私が載せたプログラムの、32個のボタン押下状態表示ではL2,R2を押しても反応が無く、 方向入力表示X,Y,ZのZにはL2を押すと1000になりR2を押すと-1000になるという反応があった、 ということを仰られているのだと思います
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.9 )
名前:クロエ 日時:2020/01/31 10:50

>No.5で私が載せたプログラムの、〜ことを仰られているのだと思います なるほど。ならば判定方法に間違いがある可能性がありますね。 シーケンス的にも間違いがあるようには思いますが、それは操作仕様がないと難し(というか面倒)そうです。 ざっと見ただけでは if (Pad[PAD_3] == 1 && playerX ... に到達する方法が分かりませんでした。 >マーク42さん なので基本操作のマニュアルがある方がよいですよ。
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.10 )
名前:クロエ 日時:2020/01/31 17:42

こちらで調べた限りですが、  スタートして   オプションボタン -> ×ボタン -> Aキー -> Aキー  でバトルスタート  カーソルで移動らしき処理?  □ボタンで銃を撃つ(敵が前にいればダメージ?) というように見受けられました。 if (Pad[PAD_3] == 1 && playerX ...にも到達して振動もしました。 振動するからといって動作に変化があったようにも思えません。 >敵のHPが勝手に減るバグなどが起きます。 減るべき時に減っているようにしか見えないので、 意図は何で、実際はどうなのかを伝えないと誰も答えられないと思います。
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.11 )
名前:クロエ 日時:2020/02/04 10:15

>L2を押すとZが1000になり、R2を押すとZが−1000と表示されます。 私の環境でも上記の結果でした。 XBOXコントローラーですけど。 Z値を判定する事で解決できるならそれでいいのですが、同時押しは判定できないと思います。 同時押しを判定する必要がある場合は以下のサイトが参考になるかもしれません。 ttp://valvatorze.blog.fc2.com/blog-entry-985.html ttps://awgsfoundry.com/blog-entry-157.html
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.12 )
名前:マーク42 日時:2020/02/09 09:30

クロエさん、 どうもありがとうございます。
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.13 )
名前:マーク42 日時:2020/02/09 09:51

コントローラの振動に関しては、inputMapperを起動した状態では書いた通りに振動します。 (なぜかボタンの配置だけは変わってしまい書いた通りに押しても反応しません。) inputMapperを閉じた場合は書いた通りに振動しませんが、ボタンは書いた通りにちゃんと動きます。 コントローラに関しては、inputMapperの状態は開いている状態でも閉じている状態でもDefaultのままで保存しています。 たぶんDefaultの設定に振動する設定があると思うのですが、inputMapperを開いたままで再度ボタンの配置をinputMapperを開いている状態に直した ほうがいいのでしょうか? 出来ればinputMapperを開かなくても振動したり、書いた通りにボタンが動くようにしたいです。 どうかよろしくお願いいたします。
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.14 )
名前:マーク42 日時:2020/02/09 09:54

というかDXライブラリでコントローラを振動させる設定を有効にするには常にinputMapperを開いておく必要があるのですか? だとしたら私の調べ不足です。振動が有効な状態でボタンが書いた通りに動くようにプログラムを編集します。
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.15 )
名前:管理人 日時:2020/02/11 00:08

> というかDXライブラリでコントローラを振動させる設定を有効にするには常にinputMapperを開いておく必要があるのですか? はい、PS4コントローラの振動機能を有効にする場合は inputMappter を起動した状態にしておく必要があります
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.16 )
名前:マーク42 日時:2020/02/21 21:00

どうもありがとうございます! 今後は起動した状態で開発していきます!
メンテ
Re: コントローラのボタンの確認と攻撃時の振動 ( No.17 )
名前:マーク42(解決) 日時:2020/02/21 21:04

解決いたしました。 どうもありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存