[過去ログ] DXライブラリ 総合スレッド (865レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
435: 2008/07/15(火)12:06 ID:hKPgrkB+(1/6) AAS
誰かジョイスティック対応した斜め移動のコードを教えてください。
シューティング作ろうとプログラムを始めたばっかりの初心者なんでなかなか上手くいかないです。

keyでのキー入力の場合だとちゃんと斜め移動するんですが、GetJoypadInputStateを使うと上下左右移動しか出来ず、斜め移動を入力するととまってしまいます。

int plx = 200;
int ply = 400; //プレイヤー初期x.y座標の取得。

if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_RIGHT ) { //右ボタンが押されたら

plx++;
省9
438: 2008/07/15(火)12:41 ID:hKPgrkB+(2/6) AAS
>>436
logicoolの
外部リンク:www.logicool.co.jp
コレ使ってるけど、斜め移動は普通に他のゲームではできます。

それとGetJoypadInputStateを使うとキー入力、ジョイスティック操作での斜め移動をしようとするとキャラがその場で止まってしまい。
GetHitKeyStateAll( Key );を使ってキー入力のみの場合だとちゃんと斜め移動が出来ます。

もしかしたらどっかのコードが違うのかなぁ
441: 2008/07/15(火)12:47 ID:hKPgrkB+(3/6) AAS
初心者とは言えコードが幼稚すぎて晒すの恥ずかしいけど、一通り晒してみます。
void player_move(){ //プレイヤーの移動
GetJoypadInputState( DX_INPUT_KEY_PAD1 ) ; //ジョイスティックの状態を監視
char Key[256]; //キー状態の取得。
GetHitKeyStateAll( Key ); //ループ、キーの状態を取得
if(GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_R ){ //低速移動
if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_RIGHT ) { //シフトと右が同時に押された場合。
省23
442: 2008/07/15(火)12:48 ID:hKPgrkB+(4/6) AAS
//ここから高速移動。
if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_RIGHT ) { //右ボタンが押されたら
plx++;
plx++;
plx++;
plx++;
if(plx >= 385){ //画面右端から左端へワープ。
省22
445: 2008/07/15(火)13:31 ID:hKPgrkB+(5/6) AAS
>>443-444
ありがとおおおお!
そうか、「==」で両方の条件を満たすモノかと思ってたけど検討違いだったみたいだ。

これで一つシューティングに近づけた!
敵移動ルーチンもがんばって作ります。
448
(1): 2008/07/15(火)13:52 ID:hKPgrkB+(6/6) AAS
>>446
リファレンス読んだんですけど、関数の使い方がまだ慣れていなくて。

>>447
そういう書き方もあったんですね、本当勉強になります。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.025s