コントローラを使いマス単位で動かす

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: コントローラを使いマス単位で動かす

Re: コントローラを使いマス単位で動かす

#6

by Ouxiy » 9ヶ月前

どうもありがとうございました!

Re: コントローラを使いマス単位で動かす

#5

by みけCAT » 9ヶ月前

わからなければググるなどして考えるのがいいと思います。

ゲーム 前のフレーム 押されていない 判定 - Google 検索

↓ヒットしたサイトの例
【ゲーム】入力の基本

Re: コントローラを使いマス単位で動かす

#4

by Ouxiy » 9ヶ月前

あの、前のフレームが押されていないかどうかの判定はどのように考えるのでしょうか。

Re: コントローラを使いマス単位で動かす

#3

by Ouxiy » 9ヶ月前

どうもありがとうございます。
なんだか作るのがとても難しそうですね。

Re: コントローラを使いマス単位で動かす

#2

by みけCAT » 9ヶ月前

Key[KEY_INPUT_RIGHT]のようなコントローラの各ボタンが連続で
押されているフレーム数が入る配列を作って使うか、
コントローラの各ボタンが前のフレームで押されていたかを記録しておき、
今のフレームで押されていて、かつ前のフレームで押されていない時のみ動くようにすることで、
一回だけ押すと一マスだけ動くようにできると考えられます。

コントローラを使いマス単位で動かす

#1

by Ouxiy » 10ヶ月前

コード:

Pad = GetJoypadInputState(DX_INPUT_KEY_PAD1);        //入力状態をPadに格納
if (Pad & PAD_INPUT_RIGHT && playerX < 2) {
playerMove = 1;  playerX++; playerImage = playerGHandle[2]; nomove = 1;
} 
if (Pad & PAD_INPUT_LEFT && playerX > 0) {
playerMove = 1; playerX--; playerImage = playerGHandle[9];
}
if (Pad & PAD_INPUT_UP && playerY > 0) {
playerMove = 1; playerY--; playerImage = playerGHandle[2];
}
//Pad = GetJoypadInputState(DX_INPUT_KEY_PAD1);        //入力状態をPadに格納
if (Pad & PAD_INPUT_DOWN && playerY < 2) {
playerMove = 1; playerY++; playerImage = playerGHandle[8];
}
と書いたところコントローラに反応はするのですが、一マスずつの移動ではなく、一気に端まで動いてしまいます。
Key[KEY_INPUT_RIGHT] == 1 のように一回だけ押すと一マスだけ動くようにできないでしょうか?

ページトップ