mfi controller〜それは忘れられたios7新機能〜

34
ワンダープラネット株式会社 取締役 CTO 村田 知常 MFi Controller ~それは忘れられたiOS7新機能~ 第1回 岐阜iPhoneアプリ開発勉強会 2014.5.24

Upload: tomotsune-murata

Post on 11-Aug-2015

135 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: MFi Controller〜それは忘れられたiOS7新機能〜

ワンダープラネット株式会社  取締役    CTO  村田  知常  

MFi Controller ~それは忘れられたiOS7新機能~

第1回 岐阜iPhoneアプリ開発勉強会 2014.5.24

Page 2: MFi Controller〜それは忘れられたiOS7新機能〜

自己紹介 

村田 知常(むらた ともつね)

ワンダープラネット株式会社 取締役 CTO

名古屋iPhone開発者勉強会では運営(っぽい?)人(〃▽〃)

https://www.facebook.com/tomotsune.murata

本日は懇親会の会場まで誘導します!

ソフトピアではおなじみの龍香苑

ベテランさんも誘導手伝って!!

Page 3: MFi Controller〜それは忘れられたiOS7新機能〜

事業内容タブレット・スマートフォン向けアプリーション・ゲームの企画・開発・運営・販売

設立 2012年9月3日(10月1日創業)

ホームページ http://wonderpla.net

Facebookページ https://www.facebook.com/wonderplanet.nagoya

ワンダープラネット株式会社

Page 4: MFi Controller〜それは忘れられたiOS7新機能〜

くるるファンタズマ

プロダクト

■iPhone/iPad/Android

スラッシュオブドラグーン

■iPhone/iPad/Android

Panic  Farm

■iPhone/iPad/Android

Page 5: MFi Controller〜それは忘れられたiOS7新機能〜

昨年2013のWWDC キーノートでの1シーン

Page 6: MFi Controller〜それは忘れられたiOS7新機能〜

iOS7  SDKで追加された機能

Page 7: MFi Controller〜それは忘れられたiOS7新機能〜

MFi game controllers(・_・?)

Page 8: MFi Controller〜それは忘れられたiOS7新機能〜

MFi (・_・??

Wi-Fiの仲間?

Page 9: MFi Controller〜それは忘れられたiOS7新機能〜
Page 10: MFi Controller〜それは忘れられたiOS7新機能〜

Made for iPod/iPhone/iPadMade for iPod/iPhone/iPad

MFi

Page 11: MFi Controller〜それは忘れられたiOS7新機能〜

MFi game controllersって…売っているの?

ところで…

Page 12: MFi Controller〜それは忘れられたiOS7新機能〜

発売開始時は9,980円でした

Page 13: MFi Controller〜それは忘れられたiOS7新機能〜

対応ゲームってあるの?

でも…

Page 14: MFi Controller〜それは忘れられたiOS7新機能〜

最近、続々とリリース!!

Page 15: MFi Controller〜それは忘れられたiOS7新機能〜

最近対応ゲームが増えてきて熱くなってきた!

Page 16: MFi Controller〜それは忘れられたiOS7新機能〜

触るしかない!!

Page 17: MFi Controller〜それは忘れられたiOS7新機能〜

2つのProfile

Page 18: MFi Controller〜それは忘れられたiOS7新機能〜

Standard  Gamepad  Profile

D-pad ABXY

Shoulder

Page 19: MFi Controller〜それは忘れられたiOS7新機能〜

Extended  Gamepad  Profile

Thumbsticks

Triggers

Page 20: MFi Controller〜それは忘れられたiOS7新機能〜

実装に必要なのは…

GameController.frameworkを追加するのみ!!

#import <GameController/GameController.h>

必要なところで#importしよう!

Page 21: MFi Controller〜それは忘れられたiOS7新機能〜

接続されたかどうかの通知

NSNotificationCenter* center = [NSNotificationCenter defaultCenter];

// 接続されたときの通知を登録 [ center addObserver:self selector:@selector(setupControllers:) name:GCControllerDidConnectNotification object:nil];

// 切断されたときの通知を登録 [ center addObserver:self selector:@selector(setupControllers:) name:GCControllerDidDisconnectNotification object:nil];

delegateの実装は不要

-application:didFinishLaunchingWithOptions: での登録がApple推奨

Wirelessの場合は違う方法だよ

Page 22: MFi Controller〜それは忘れられたiOS7新機能〜

Main  Entry  Point

現在接続されているControllerがリストで取得

リストの中身は、GCController

@interface GCController : NSObject + (NSArray *)controllers ...

Page 23: MFi Controller〜それは忘れられたiOS7新機能〜

使用例

- (void)setupControllers:(NSNotification *)notification { // Controllersを取得 self.controllerArray = [GCController controllers]; if ([self.controllerArray count] > 0) { // 接続されたControllersがある場合 } else { // 接続されたControllerが無い場合 } }

Page 24: MFi Controller〜それは忘れられたiOS7新機能〜

ボタンなどからの入力値

Page 25: MFi Controller〜それは忘れられたiOS7新機能〜

self.myController.gamepadControl Property Name Type

Face buttons

buttonA

Button InputbuttonBbuttonXbuttonY

Shoulder Buttons

leftShoulderButton Input

rightShoulderD-pad dpad DirectionPad

Page 26: MFi Controller〜それは忘れられたiOS7新機能〜

self.myController.extendedGamepadControl Property Name Type

Face buttons

buttonA

Button InputbuttonBbuttonXbuttonY

Shoulder Buttons

leftShoulderButton Input

rightShoulderD-pad dpad DirectionPad

ThumbsticksleftThumbstick

DirectionPadrightThumbstick

TriggersleftTrigger

Button InputrightTrigger

Page 27: MFi Controller〜それは忘れられたiOS7新機能〜

Button  Input

ボタンが押されたかどうかBOOL pressed;

ボタンがどのくらい押し込まれているかfloat value;値の範囲は 0.0 ~ 1.0

Page 28: MFi Controller〜それは忘れられたiOS7新機能〜

Direction  Pad

上下左右のボタンに対してGCControllerButtonInput *up, *down, *left, *right;

ボタンが押されたかどうかBOOL pressed;

ボタンがどこくらい押し込まれているかfloat value; // 値の範囲は 0.0 ~ 1.0

2軸の方向に対して GCControllerAxisInput *xAxis, *yAxis;

ボタンがどこくらい押し込まれているかfloat value; // 値の範囲は -1.0 ~ 1.0

Page 29: MFi Controller〜それは忘れられたiOS7新機能〜

GCControllerAxisInput

Page 30: MFi Controller〜それは忘れられたiOS7新機能〜

使用例

// Face buttons self.myController.gamepad.buttonY.pressed; self.myController.gamepad.buttonY.value;

// Thumbsticks self.myController.extendedGamepad.leftThumbstick.yAxis.value; self.myController.extendedGamepad.leftThumbstick.up.value; self.myController.extendedGamepad.leftThumbstick.up.pressed;

Page 31: MFi Controller〜それは忘れられたiOS7新機能〜

どこで使うの?

Sprite Kitを使っている場合- (void)update:(CFTimeInterval)currentTime

Page 32: MFi Controller〜それは忘れられたiOS7新機能〜

Demo

Page 33: MFi Controller〜それは忘れられたiOS7新機能〜

まとめ

MFi game controllerは、まだまだ少ない

でもこれから発売予定あり!!

シミュレーターで確認できないのが難点

特にG550は接続が面倒

Wireless接続ものに期待!

Page 34: MFi Controller〜それは忘れられたiOS7新機能〜

ご清聴ありがとうございました

 d