[[XcodeTips]] #sh(cpp){{ // ゲームコントローラーが接続されたメッセージ -(void)receiveGCConnect:(NSNotification*)center { self.myLabel3.text = @"Connected"; [GCController startWirelessControllerDiscoveryWithCompletionHandler:^{ NSArray * controllers = [GCController controllers]; for (GCController * c in controllers){ __weak typeof(self) weakSelf = self; c.controllerPausedHandler = ^(GCController *controller) { weakSelf.paused = !weakSelf.paused; weakSelf.myLabel.text = weakSelf.paused ? @"Pause" : @"Ready"; }; if(self.gamepad == nil && c.gamepad != nil) { self.gamepad = c.gamepad; self.myLabel.text = c.vendorName; self.gamepad.valueChangedHandler = ^(GCGamepad *gpad, GCControllerElement *element){ NSString* str = @""; if (gpad.buttonA.isPressed) str = [str stringByAppendingString: @"A"]; if (gpad.buttonB.isPressed) str = [str stringByAppendingString: @"B"]; if (gpad.buttonX.isPressed) str = [str stringByAppendingString: @"X"]; if (gpad.buttonY.isPressed) str = [str stringByAppendingString: @"Y"]; if (gpad.rightShoulder.isPressed) str = [str stringByAppendingString: @"sR"]; if (gpad.leftShoulder.isPressed) str = [str stringByAppendingString: @"sL"]; if (gpad.dpad.up.isPressed) str = [str stringByAppendingString: @"U"]; if (gpad.dpad.down.isPressed) str = [str stringByAppendingString: @"D"]; if (gpad.dpad.left.isPressed) str = [str stringByAppendingString: @"L"]; if (gpad.dpad.right.isPressed) str = [str stringByAppendingString: @"R"]; weakSelf.myLabel.text = [NSString stringWithFormat:@"%@(%.3f,%.3f)" , str , gpad.dpad.xAxis.value , gpad.dpad.yAxis.value]; }; } if (self.exgamepad == nil && c.extendedGamepad != nil) { self.myLabel2.text = c.vendorName; self.exgamepad = c.extendedGamepad; self.exgamepad.valueChangedHandler = ^(GCExtendedGamepad *gpad, GCControllerElement *element){ NSString* str = @""; if (gpad.buttonA.isPressed) str = [str stringByAppendingString: @"A"]; if (gpad.buttonB.isPressed) str = [str stringByAppendingString: @"B"]; if (gpad.buttonX.isPressed) str = [str stringByAppendingString: @"X"]; if (gpad.buttonY.isPressed) str = [str stringByAppendingString: @"Y"]; if (gpad.rightShoulder.isPressed) str = [str stringByAppendingString: @"sR"]; if (gpad.leftShoulder.isPressed) str = [str stringByAppendingString: @"sL"]; if (gpad.dpad.up.isPressed) str = [str stringByAppendingString: @"U"]; if (gpad.dpad.down.isPressed) str = [str stringByAppendingString: @"D"]; if (gpad.dpad.left.isPressed) str = [str stringByAppendingString: @"L"]; if (gpad.dpad.right.isPressed) str = [str stringByAppendingString: @"R"]; if (gpad.rightTrigger.isPressed) str = [str stringByAppendingString: @"tR"]; if (gpad.leftTrigger.isPressed) str = [str stringByAppendingString: @"tL"]; weakSelf.myLabel2.text = [NSString stringWithFormat:@"%@(%.2f,%.2f)-(%.2f,%.2f)" , str , gpad.rightThumbstick.xAxis.value , gpad.rightThumbstick.yAxis.value , gpad.leftThumbstick.xAxis.value , gpad.leftThumbstick.yAxis.value]; }; } }}]; } // ゲームコントローラーが切断されたメッセージ -(void)receiveGCDisConnect:(NSNotification*)center { self.myLabel3.text = @"DisConnected"; [GCController stopWirelessControllerDiscovery]; self.gamepad = nil; self.exgamepad = nil; } }}