Nanashi-soft○プログラマ専用○PSSuite開発○
public static void Update () { // Query gamepad for current state var gamePadData = GamePad.GetData(0); }リファレンスの GamePadData構造体を見れば,取得できる全状態が分かります
if((gamePadData.Buttons & GamePadButtons.Left) != 0){ //方向キーの左が押されている }else{ //方向キーの左は離されている }
switch(gamePadData.Buttons){ // x case GamePadButtons.Left: // x break; // x } // xビット列なので,AND演算をしなければなりません
//Left, //方向キーの左 if((gamePadData.Buttons & GamePadButtons.Left) != 0){ //ON }else{ //OFF } //Up, //方向キーの上 if((gamePadData.Buttons & GamePadButtons.Up) != 0){ //ON }else{ //OFF } //Right, //方向キーの右 if((gamePadData.Buttons & GamePadButtons.Right) != 0){ //ON }else{ //OFF } //Down, //方向キーの下 if((gamePadData.Buttons & GamePadButtons.Down) != 0){ //ON }else{ //OFF } //Square, //□ ボタン if((gamePadData.Buttons & GamePadButtons.Square) != 0){ //ON }else{ //OFF } //Triangle, //△ ボタン if((gamePadData.Buttons & GamePadButtons.Triangle) != 0){ //ON }else{ //OFF } //Circle, //○ ボタン if((gamePadData.Buttons & GamePadButtons.Circle) != 0){ //ON }else{ //OFF } //Cross, //× ボタン if((gamePadData.Buttons & GamePadButtons.Cross) != 0){ //ON }else{ //OFF } //Start, //STARTボタン if((gamePadData.Buttons & GamePadButtons.Start) != 0){ //ON }else{ //OFF } //Select, //SELECTボタン if((gamePadData.Buttons & GamePadButtons.Select) != 0){ //ON }else{ //OFF } //L, //L ボタン if((gamePadData.Buttons & GamePadButtons.L) != 0){ //ON }else{ //OFF } //R, //R ボタン if((gamePadData.Buttons & GamePadButtons.R) != 0){ //ON }else{ //OFF }
//AnalogLeft, //左スティック float left_x = gamePadData.AnalogLeftX; float left_y = gamePadData.AnalogLeftY; if(-0.01f < left_x && left_x < 0.01f && -0.01f < left_y && left_y < 0.01f){ //アイドル状態 }else{ //左スティックが操作されている } //AnalogRight, //右スティック float right_x = gamePadData.AnalogRightX; float right_y = gamePadData.AnalogRightY; if(-0.01f < right_x && right_x < 0.01f && -0.01f < right_y && right_y < 0.01f){ //アイドル状態 }else{ //右スティックが操作されている }なぜ,アイドル状態を判定するのに 0.0fと行わないのかと言うと,