PSP xvi

PSPプログラミングを教えるブログ(本気で頑張る人アクセス大歓迎サイト)

PSP-X.gif

記事の間違いを報告  新アップローダー
記事修正情報 PSPプログラミング資料 自作ゲーム PSP用エミュレータ リンク

公認リンク
公式PSP専科 公式PSVita専科 はじめるPSPSDK PSP EXEC GAME M@STER PSP 猫山のYouTubeチャンネル

TAG
全記事にタグをつけています  http://nekoyama2gillien.blog36.fc2.com/?tag=タグ
PSP PSPプログラミング DXライブラリPortable OSLib ショートプログラム ハローワールド
PSP自作ゲーム PSP自作ソフト エミュレータ ゲームアーカイブス PSP動画
動画 初音ミク ミクミクダンス MMDドラマ ゲーム 魔法少女まどか☆マギカ 侵略!イカ娘
アイドルマスター

このブログについて

このブログでは、非公式のPSPソフト、いわゆる自作ソフト( PSP Homebrew )を作る事を目的とします。

著作権などの こまかい利用規約については、こちらを開いてお読み下さい

このブログについて知りたい方、初めて来訪された方はこちらを開いてお読みください
お問い合わせは 猫山猫宗(nekomune@gmail.com)までどうぞ


当ブログはリンクフリーです。ブログ名は、アルファベットで「PSP xvi」と書いて『ピーエスピー・エクシビ』とお読みください。
相互リンクを希望されるブログ運営者様は、ココで申請して下さい。


このブログで全記事から探し物の方は、ここをクリックして下さい。
http://nekoyama2gillien.blog36.fc2.com/?all

スポンサーサイト 

--/--/--
--. --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[edit]

CM: --
TB: --

page top

さて、いよいよ DXライブラリPortable を使ったパッド入力を解説する時が来ました.

DXライブラリPortable でのPSPパッド操作では、パッド入力にキーボードの指定キー押し割り当てが出来たり、キー入力に指定パッド入力割り当て(複数ボタン同時押し割り当て可能)や、OSKによる文字列の取得などをする事が可能です.

×ボタンにスペースキーを割り当てておくと、
×ボタンを押した時にスペースキーが押されたという情報を得る事が出来ます.

また、キー押下には複数のPSPパッド入力を割り当てることも可能なので
ZキーにLトリガーと×ボタンの2つを割り当てておくこともできます.

でも実際PSPにはキーボードが無いのでLトリガーと×ボタンの同時押しで
Zキーが押されたという情報になるみたいです.


まず、基本のパッド入力から

GetInputState(); という関数により、PSPSDK の sceCtrlReadBufferPositive(&pad, 1); と互換なパッド入力値を得ることが出来ます.

【 記述例 】
    int pad_states;       // パッド値を入れる変数

ProcessMessage(); // パッド読み取り本体
pad_states = GetInputState(); // パッド値を得る

これで得られる値の判定には、dxlibp.h での54行目からの定義値 を使います.
もちろん、pspctrl.h の定義値を使っても良いです(ユーザーモードのん限定).
コピペ用に書いておきます.
DXP_INPUT_UP        DXP_INPUT_RIGHT     DXP_INPUT_DOWN   DXP_INPUT_LEFT
DXP_INPUT_TRIANGLE DXP_INPUT_CIRCLE DXP_INPUT_CROSS DXP_INPUT_SQUARE
DXP_INPUT_LTRIGGER DXP_INPUT_RTRIGGER DXP_INPUT_START DXP_INPUT_SELECT

[ ちゅうい ]
GetInputState(); 単体には パッドの読み取り機能は無いので、ProcessMessage(); を実行してパッド読み取りを行なう必要があります.ちょっと不便.


次に、DXライブリラリ互換なパッド読み取りの関数を紹介します.

【 記述例 】
    int pad_Buttons;     // パッド値を入れる変数

ProcessMessage(); // パッド読み取り本体
pad_Buttons = GetJoypadInputState(DX_INPUT_PAD1); // DXライブラリ用に変換されたパッド値を得る

これで得られる値の判定には、dxlibp.h での80行目からの定義値 を使います.
コピペ用に書いておきます.
PAD_INPUT_DOWN    PAD_INPUT_LEFT  PAD_INPUT_RIGHT  PAD_INPUT_UP
PAD_INPUT_A PAD_INPUT_B PAD_INPUT_C
PAD_INPUT_X PAD_INPUT_Y PAD_INPUT_Z
PAD_INPUT_L PAD_INPUT_R
PAD_INPUT_START
PAD_INPUT_M PAD_INPUT_D PAD_INPUT_F PAD_INPUT_G
PAD_INPUT_H PAD_INPUT_I PAD_INPUT_J PAD_INPUT_K
PAD_INPUT_LL PAD_INPUT_N PAD_INPUT_O PAD_INPUT_P
PAD_INPUT_RR PAD_INPUT_S PAD_INPUT_T PAD_INPUT_U
PAD_INPUT_V PAD_INPUT_W PAD_INPUT_XX

DXライブラリは Windows用のライブラリです.パソコンの特殊パッドにも対応する為に沢山の入力値が用意されているのだと思います.


パッド押下にキー押下を割り当てるには?

【 記述例 】○ボタンにリターンキーを割り当てる
SetJoypadInputToKeyInput( DX_INPUT_PAD1, PAD_INPUT_A, KEY_INPUT_RETURN, -1, -1, -1 ) ;

パッドの入力値には、GetJoypadInputState(); で得られる値を記述します

早見対応表
[↓] PAD_INPUT_DOWN    [○] PAD_INPUT_A   [L]  PAD_INPUT_L
[←] PAD_INPUT_LEFT [×] PAD_INPUT_B [R]  PAD_INPUT_R
[→] PAD_INPUT_RIGHT [△] PAD_INPUT_X [スタート] PAD_INPUT_START
[↑] PAD_INPUT_UP [□] PAD_INPUT_Y [セレクト] PAD_INPUT_M

キーの入力値には、dxlibp.h での118行目からの定義値 を使います.

KEY_INPUT_BACK    KEY_INPUT_TAB     KEY_INPUT_RETURN
KEY_INPUT_LSHIFT   KEY_INPUT_RSHIFT   KEY_INPUT_LCONTROL
KEY_INPUT_RCONTROL  KEY_INPUT_ESCAPE   KEY_INPUT_SPACE
KEY_INPUT_PGUP    KEY_INPUT_PGDN    KEY_INPUT_END
KEY_INPUT_HOME    KEY_INPUT_LEFT    KEY_INPUT_UP
KEY_INPUT_RIGHT   KEY_INPUT_DOWN    KEY_INPUT_INSERT
KEY_INPUT_DELETE   KEY_INPUT_MINUS    KEY_INPUT_YEN
KEY_INPUT_PREVTRACK KEY_INPUT_PERIOD   KEY_INPUT_SLASH
KEY_INPUT_LALT    KEY_INPUT_RALT    KEY_INPUT_SCROLL
KEY_INPUT_SEMICOLON KEY_INPUT_COLON    KEY_INPUT_LBRACKET
KEY_INPUT_RBRACKET  KEY_INPUT_AT     KEY_INPUT_BACKSLASH
KEY_INPUT_COMMA   KEY_INPUT_CAPSLOCK  KEY_INPUT_SYSRQ
KEY_INPUT_PAUSE
KEY_INPUT_NUMPAD0  KEY_INPUT_NUMPAD1  KEY_INPUT_NUMPAD2
KEY_INPUT_NUMPAD3  KEY_INPUT_NUMPAD4  KEY_INPUT_NUMPAD5
KEY_INPUT_NUMPAD6  KEY_INPUT_NUMPAD7  KEY_INPUT_NUMPAD8
KEY_INPUT_NUMPAD9
KEY_INPUT_MULTIPLY  KEY_INPUT_ADD   KEY_INPUT_SUBTRACT
KEY_INPUT_DECIMAL  KEY_INPUT_DIVIDE  KEY_INPUT_NUMPADENTER
KEY_INPUT_F1  KEY_INPUT_F2  KEY_INPUT_F3
KEY_INPUT_F4  KEY_INPUT_F5  KEY_INPUT_F6
KEY_INPUT_F7  KEY_INPUT_F8  KEY_INPUT_F9
KEY_INPUT_F10 KEY_INPUT_F11 KEY_INPUT_F12
KEY_INPUT_A KEY_INPUT_B KEY_INPUT_C KEY_INPUT_D
KEY_INPUT_E KEY_INPUT_F KEY_INPUT_G KEY_INPUT_H
KEY_INPUT_I KEY_INPUT_J KEY_INPUT_K KEY_INPUT_L
KEY_INPUT_M KEY_INPUT_N KEY_INPUT_O KEY_INPUT_P
KEY_INPUT_Q KEY_INPUT_R KEY_INPUT_S KEY_INPUT_T
KEY_INPUT_U KEY_INPUT_V KEY_INPUT_W KEY_INPUT_X
KEY_INPUT_Y KEY_INPUT_Z
KEY_INPUT_0 KEY_INPUT_1 KEY_INPUT_2 KEY_INPUT_3
KEY_INPUT_4 KEY_INPUT_5 KEY_INPUT_6 KEY_INPUT_7 
KEY_INPUT_8 KEY_INPUT_9 



複数のパッド押下にキー押下を割り当てるには?

【 記述例 】十字キー[↑]と□ボタンの同時押下に [F10]キーを割り当てる

SetKeyInputToPspInput( KEY_INPUT_F10, (DXP_INPUT_UP|DXP_INPUT_SQUARE) );

[ ちゅうい ]
パッドの入力値は GetInputState(); で得られる値でっす.DXP_INPUT_ナントカ



その2に続きますぅ~

【 関連記事 】
PSPプログラミング PSPパッドの読み取り(デジタル部分)
PSPプログラミング PSPパッドの読み取り(アナログパッド部分) 戦車ゲーム紹介
PSPプログラミング DXライブラリPortable でのパッド入力 その1
PSPプログラミング DXライブラリPortable でのパッド入力 その2
PSPプログラミング DXライブラリPortable でのパッド入力 その3 OSK
PSPプログラミング DXライブラリPortable でのパッド入力 その4 アナログ系



関連記事
スポンサーサイト

[edit]

CM: 1
TB: 0

page top

この記事に対するコメント

SetKeyInputToPspInput( KEY_INPUT_F10, (DXP_INPUT_UP|DXP_INPUT_SQUARE) );

と書いた場合、↑キーと□キーのどちらか片方だけで反応するようになってたと思います。

憂煉 #- | URL | 2010/04/25 17:17 * edit *

page top

コメントの投稿

Secret

page top

トラックバック

トラックバックURL
→http://nekoyama2gillien.blog36.fc2.com/tb.php/258-ed48f8f5
この記事にトラックバックする(FC2ブログユーザー)

page top


h o m e |


 

2017-04