トップページ > 過去ログ > 記事閲覧
DxLibDotNetでJoypadをXNAで使いたい
名前:レンタッカ 日時: 2009/09/11 23:46

なぜか画面の表示ができない。 DxLibDotNetでJoypadをXNAで正常に動かせた人がいましたら、動かすコツを教えてもらえないでしょうか。 protected override void Initialize() { // TODO: Add your initialization logic here DX.DxLib_Init(); base.Initialize(); } protected override void EndRun() { DX.DxLib_End(); // DXライブラリ使用の終了処理 base.EndRun(); } protected override void Update(GameTime gameTime) { gameStick(); // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); // TODO: Add your update logic here base.Update(gameTime); } void gameStick() { int PlayerX, PlayerY; //int PlayerGraph; int Key; // 画面モードのセット DX.SetGraphMode(640, 480, 16); // 描画先画面を裏画面にセット DX.SetDrawScreen(DX.DX_SCREEN_BACK); // グラフィックのロード //PlayerGraph = LoadGraph("Player.bmp"); // キャラクターの初期位置をセット PlayerX = 0; PlayerY = 0; // キー入力取得 Key = DX.GetJoypadInputState(DX.DX_INPUT_KEY_PAD1); // 上を押していたら上に進む if (Key == DX.PAD_INPUT_UP) PlayerY -= 3; // 下を押していたら下に進む if (Key == DX.PAD_INPUT_DOWN) PlayerY += 3; // 右を押していたら右に進む if (Key == DX.PAD_INPUT_RIGHT) PlayerX += 3; // 左を押していたら左に進む if (Key == DX.PAD_INPUT_LEFT) PlayerX -= 3; // 画面を初期化する DX.ClearDrawScreen(); // プレイヤーを描画する //DX.DrawGraph(PlayerX, PlayerY, PlayerGraph, TRUE); DX.DrawGraph(PlayerX, PlayerY, -1, 0); // 裏画面の内容を表画面に反映させる DX.ScreenFlip(); }

Page: 1 |

Re: DxLibDotNetでJoypadをXNAで使いたい ( No.1 )
名前:管理人 日時:2009/09/09 00:53

XNAのコントローラにはXbox360のコントローラ以外も使用できるのでしょうか? 時間に余裕があったら週末にでも試してみます。 ( その前に DotNet 用の DLL をなんとかしないとですが・・・ ) あ、因みにDXライブラリはWindows用のライブラリなのでDXライブラリを使用して作成した ソフトウエアはXbox360では動作しませんが、それでもXNA上でDXライブラリを 使用する意義があるのでしょうか?
Re: DxLibDotNetでJoypadをXNAで使いたい ( No.2 )
名前:Hima 日時:2009/09/09 23:31

DX.DrawGraph(PlayerX, PlayerY, -1, 0); 画面の表示ができないのは、-1 のせいでしょうか? DX.DrawGraph(PlayerX, PlayerY, PlayerGraph, TRUE); これは正しいです。どうしてコメントアウトですか?
Re: DxLibDotNetでJoypadをXNAで使いたい ( No.3 )
名前:レンタッカ 日時:2009/09/13 01:04

> 管理人様 「XNAのコントローラにはXbox360のコントローラ以外も使用できるのでしょうか?」 Web上で探すとできるという噂だけ流れていました。 「DXライブラリを使用して作成した ソフトウエアはXbox360では動作しませんが、それでもXNA上でDXライブラリを 使用する意義があるのでしょうか?」  Windows上でツール作成とかの開発はXNAよりもDXライブラリの方が速度的な面や、開発の手軽さから優れてると思います。  XNA上でDXライブラリを使用する意義は、もし、joypadが動いたら、個人的に嬉しいなあと思うところです。 > Hima様 「画面の表示ができないのは、-1 のせいでしょうか?」  そういうわけでもないです。デバッグすると、DX.GetJoypadInputState(DX.DX_INPUT_KEY_PAD1);でフリーズしていました。それで、gameStick()をコメントアウトしたら、とりあえず、画面だけは表示できました。 「DX.DrawGraph(PlayerX, PlayerY, PlayerGraph, TRUE); これは正しいです。どうしてコメントアウトですか?」 //PlayerGraph = LoadGraph("Player.bmp");  のPlayer.bmpを準備するのが面倒だったからです。
Re: DxLibDotNetでJoypadをXNAで使いたい ( No.4 )
名前:管理人 日時:2009/09/12 18:19

> Windows上でツール作成とかの開発はXNAよりもDXライブラリの方が速度的な面や、開発の手軽さから優れてると思います。 > XNA上でDXライブラリを使用する意義は、もし、joypadが動いたら、個人的に嬉しいなあと思うところです。 なるほど、了解しました 早速XNA上でDXライブラリを使用してみたのですが、ライブラリの初期化に失敗していました 失敗しないように修正したバージョンをアップしましたので、よろしければこちらをダウンロードしてください http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip DXライブラリは初期化するとDXライブラリのウインドウを作成してしまいますので、 もしパッドの入力だけDXライブラリの機能を使用したいという場合は、DX.DxLib_Init の前に DX.SetNotWinFlag(DX.TRUE); // DXライブラリのウインドウを使用しない DX.SetAlwaysRunFlag(DX.TRUE); // ウインドウがアクティブじゃなくても実行する の2行を追加してください
Re: DxLibDotNetでJoypadをXNAで使いたい ( No.5 )
名前:レンタッカ 日時:2009/09/13 01:03

管理人様ありがとうございます! 動きました! デバッグモードで確認しても、joypadが正常に動作していました!

Page: 1 |