[過去ログ]
DXライブラリ 総合スレッド (865レス)
DXライブラリ 総合スレッド http://mevius.5ch.net/test/read.cgi/gamedev/1197468399/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
435: 名前は開発中のものです。 [sage] 2008/07/15(火) 12:06:52 ID:hKPgrkB+ 誰かジョイスティック対応した斜め移動のコードを教えてください。 シューティング作ろうとプログラムを始めたばっかりの初心者なんでなかなか上手くいかないです。 keyでのキー入力の場合だとちゃんと斜め移動するんですが、GetJoypadInputStateを使うと上下左右移動しか出来ず、斜め移動を入力するととまってしまいます。 int plx = 200; int ply = 400; //プレイヤー初期x.y座標の取得。 if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_RIGHT ) { //右ボタンが押されたら plx++; plx++; plx++; plx++; if(plx >= 385){ //画面右端から左端へワープ。 plx=0; } } こんな感じのコードを上下左右分作っています、これだと斜め移動は実装できないんですか? こんな初歩的な事でつまずいてるとか完成まで物凄い時間かかりそう。 http://mevius.5ch.net/test/read.cgi/gamedev/1197468399/435
438: 名前は開発中のものです。 [sage] 2008/07/15(火) 12:41:35 ID:hKPgrkB+ >>436 logicoolの ttp://www.logicool.co.jp/index.cfm/gaming/pc_gaming/gamepads/devices/4627&cl=jp,ja コレ使ってるけど、斜め移動は普通に他のゲームではできます。 それとGetJoypadInputStateを使うとキー入力、ジョイスティック操作での斜め移動をしようとするとキャラがその場で止まってしまい。 GetHitKeyStateAll( Key );を使ってキー入力のみの場合だとちゃんと斜め移動が出来ます。 もしかしたらどっかのコードが違うのかなぁ http://mevius.5ch.net/test/read.cgi/gamedev/1197468399/438
441: 名前は開発中のものです。 [sage] 2008/07/15(火) 12:47:35 ID:hKPgrkB+ 初心者とは言えコードが幼稚すぎて晒すの恥ずかしいけど、一通り晒してみます。 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 ) { //シフトと右が同時に押された場合。 plx--; plx--; } if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_LEFT ) { //シフトと左が同時に押された場合。 plx++; plx++; } if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_UP) { //シフトと上が同時に押された場合。 ply++; ply++; } if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_DOWN ) { //シフトと下が同時に押された場合。 ply--; ply--; } } ply++; ply++; ply++; if(ply >= 430){ //画面下部へ戻す(ハミ出ないようにする。) ply=430; } } http://mevius.5ch.net/test/read.cgi/gamedev/1197468399/441
442: 名前は開発中のものです。 [sage] 2008/07/15(火) 12:48:45 ID:hKPgrkB+ //ここから高速移動。 if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_RIGHT ) { //右ボタンが押されたら plx++; plx++; plx++; plx++; if(plx >= 385){ //画面右端から左端へワープ。 plx=0; } } if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_LEFT ) { //左ボタンが押されたら。 plx--; plx--; plx--; plx--; if(plx <= 0){ //画面左端から右端へワープ。 plx=385; } } if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_UP) { //上ボタンが押されたら。 ply--; ply--; ply--; ply--; if(ply <= 0){ //画面上部へ戻す(ハミ出ないようにする。) ply=0; } } 文字制限があり、下ボタンが書けないですが、上記のコードと同じ感じです。 http://mevius.5ch.net/test/read.cgi/gamedev/1197468399/442
445: 名前は開発中のものです。 [sage] 2008/07/15(火) 13:31:28 ID:hKPgrkB+ >>443-444 ありがとおおおお! そうか、「==」で両方の条件を満たすモノかと思ってたけど検討違いだったみたいだ。 これで一つシューティングに近づけた! 敵移動ルーチンもがんばって作ります。 http://mevius.5ch.net/test/read.cgi/gamedev/1197468399/445
448: 名前は開発中のものです。 [sage] 2008/07/15(火) 13:52:26 ID:hKPgrkB+ >>446 リファレンス読んだんですけど、関数の使い方がまだ慣れていなくて。 >>447 そういう書き方もあったんですね、本当勉強になります。 http://mevius.5ch.net/test/read.cgi/gamedev/1197468399/448
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.025s