任务单 #39802

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

开放日期: 2019-11-28 01:21 最后更新: 2019-11-30 11:47

报告人:
属主:
类型:
状态:
关闭
优先:
5 - Medium
严重性:
5 - Medium
处理结果:
Fixed
文件:

Details

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

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

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

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

L1/R1 ショルダーボタン

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

任务单历史 (3/7 Histories)

2019-11-28 01:21 Updated by: yknk
  • New Ticket "iOS版 ゲームコントローラー対応の再実装" created
2019-11-30 11:46 Updated by: yknk
评论

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

MTGamePadCtrl

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

2019-11-30 11:46 Updated by: 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 Updated by: yknk
评论

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

MTScene::SetGameController

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

MTScene::OnGameControllerChanged

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

MTScenePianoRoll3D::OnGameControllerChanged

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

2019-11-30 11:47 Updated by: yknk
评论

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

MTFirstPersonCam

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

MTFirstPersonCam::Initialize

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

MTFirstPersonCam::Transform

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

MTFirstPersonCam::_TransformCamPosition

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

MTFirstPersonCam::OnGameControllerChanged

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

2019-11-30 11:47 Updated by: yknk
评论

対策5:設定ビュー修正

MTSettingViewCtrl::makeGameControllerCellForIndexPath

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

2019-11-30 11:47 Updated by: yknk
  • 处理结果 Update from to Fixed
  • 状态 Update from 开启 to 关闭

Attachment File List

No attachments

编辑

Please login to add comment to this ticket » 登录名