OSDN Ticket Archive


Ticket #39802

iOS版 ゲームコントローラー対応の再実装

登録: 2019-11-28 01:21 最終更新: 2019-11-30 11:47

報告者:
yknk
担当者:
yknk
チケットの種類:
サポートリクエスト
状況:
完了
コンポーネント:
MIDITrail Ver.1.3.x for iOS
マイルストーン:
Version 1.3.1 for iOS (完了済み)
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

iOS版においてゲームコントローラーに対応し、その後macOS版にゲームコントローラ対応をマージする際、クラス設計を見直した。

  • #39085 iOS版 ゲームコントローラー対応
  • #39277 macOS版 ゲームコントローラー対応

macOS版の実装をiOS版に取り込み直し、実装方式を統一する。

なお本対応に伴い、ゲームパッドの操作方法を一部変更してmacOS版,Windows版に合わせる。 具体的にはボタンに割り当てる機能を以下のように変更する。

L1/R1 ショルダーボタン

  • 変更前:再生速度変更
  • 変更後:視点切り替え

チケットの履歴

2019-11-28 01:21 更新者: yknk
  • 新しいチケット "iOS版 ゲームコントローラー対応の再実装" が作成されました
2019-11-30 11:46 更新者: yknk
コメント

対策1:ゲームパッド制御クラスの追加

MTGamePadCtrl

ゲームパッド制御クラスを新規追加。

2019-11-30 11:46 更新者: yknk
コメント

対策2:メインビュー制御クラスの修正

MTMainViewCtrl

#39085 で追加したメンバとメソッドをすべて削除。 メンバにゲームパッド制御オブジェクト(m_GamePadCtrl)とゲームパッド用視点番号(m_GamePadViewPointNo)を追加。

MTMainViewCtrl::initialize

#39085 で追加した処理を全て削除。 ゲームパッド制御オブジェクトの初期化処理を追加。 ゲームパッド用視点番号の初期化処理を追加。 ゲームコントローラー接続/切断通知先登録処理を追加。

MTMainViewCtrl::startScene

#39085 で追加した処理を削除。 ゲームコントローラー初期化メソッド呼び出し処理を追加。

MTMainViewCtrl::stopScene

#39085 で追加した処理を削除。

MTMainViewCtrl::scene_OnGameControllerChanged

ゲームコントローラー更新イベント通知メソッドを追加。

MTMainViewCtrl::drawScene

#39085 で追加した処理を削除。

MTMainViewCtrl::onGameControllerDidConnect

ゲームコントローラー接続通知イベントハンドラを追加。

MTMainViewCtrl::onGameControllerDidDisconnect

ゲームコントローラー切断通知イベントハンドラを追加。

MTMainViewCtrl::initializeGameController

ゲームコントローラー初期化メソッドを追加。 ゲームパッド制御オブジェクトの初期化と、ボタン押下時のイベントハンドラを登録。

MTMainViewCtrl::changeViewPoint

ゲームパッド用の視点切り替えメソッドを追加。

2019-11-30 11:47 更新者: yknk
コメント

対策3:シーンクラス修正

MTScene::SetGameController

#39085 で追加したメソッドを削除。

MTScene::OnGameControllerChanged

ゲームコントローラー更新メソッドを追加。

MTScenePianoRoll3D::OnGameControllerChanged

ゲームコントローラー更新メソッドを追加。 同じメソッドをMTScenePianoRoll3DLive MTScenePianoRollRain, MTScenePianoRollRainLive クラスに追加。

2019-11-30 11:47 更新者: yknk
コメント

対策4:一人称カメラクラス修正

MTFirstPersonCam

一人称カメラクラスのメンバにゲームパッド制御オブジェクトm_GamePadCtrlを追加。

MTFirstPersonCam::Initialize

ゲームパッド制御オブジェクトの初期化処理を追加。

MTFirstPersonCam::Transform

ゲームパッドの右スティックの状態を取得して視線方向に反映する処理を追加。

MTFirstPersonCam::_TransformCamPosition

ゲームパッドの十字キー、左スティック、X/Yボタンの状態を取得して、カメラ位置に反映する処理を追加。

MTFirstPersonCam::OnGameControllerChanged

ゲームコントローラー更新メソッドを追加。 ゲームコントローラーの接続/切断が発生したときに教えてもらうために用意したもの。

2019-11-30 11:47 更新者: yknk
コメント

対策5:設定ビュー修正

MTSettingViewCtrl::makeGameControllerCellForIndexPath

設定項目名を"Device"から"Gamepad"に変更。

2019-11-30 11:47 更新者: yknk
  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

添付ファイルはありません