#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];
};
}
}}];
}
self.myLabel3.text = @"DisConnected"; [GCController stopWirelessControllerDiscovery]; self.gamepad = nil; self.exgamepad = nil;} }}