NSOperationQueueを使う
NSOperationQueue* queue = [[NSOperationQueue alloc] init];
[queue addOperationWithBlock:^{
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"bgm2.mp3"];
}];
NSOperationQueue* queue = [[NSOperationQueue alloc] init];
[queue addOperationWithBlock:^{
[[SimpleAudioEngine sharedEngine] playBackgroundMusic:@"bgm2.mp3"];
}];
//アンカーポイントを無視を無効化 layer.ignoreAnchorPointForPosition = NO; //アンカーポイントの変更 layer.anchorPoint = ccp(0.5, 0.5);
//選択前のボタン
CCSprite *nomalButton = [CCSprite spriteWithFile:@"button.png"];
//選択後のボタン(色を暗くした同じ画像)
CCSprite *selectedButton = [CCSprite spriteWithFile:@"button.png"];
selectedButton.color = ccc3(64, 64, 64);
CCMenuItemSprite *item = [CCMenuItemSprite itemWithNormalSprite:nomalButton selectedSprite:selectedButton target:self selector:@selector(tapButton)];
CCMenu* menu = [CCMenu menuWithItems:item, nil];
[self addChild:menu];
AppController *appDelegate = (AppController *)[[UIApplication sharedApplication] delegate];
//ポーズ [[CCDirector sharedDirector] pause]; //ポーズ解除 [[CCDirector sharedDirector] resume];
id fadeIn = [CCFadeIn actionWithDuration:1.0]; id jump = [CCJumpBy actionWithDuration:1.0 position:ccp(0, 50) height:50 jumps:1]; id spawn = [CCSpawn actions:fadeIn, jump, nil]; [sprite runAction:spawn];
#import "CCScrollLayer.h"
- (id) init {
if ((self = [super init])){
// シーンを複数作成
NSMutableArray *layerArray = [NSMutableArray array];
CCLayer* layer1 = [CCLayer node];
CCLayer* layer2 = [CCLayer node];
CCLayer* layer3 = [CCLayer node];
[layerArray addObject:layer1];
[layerArray addObject:layer2];
[layerArray addObject:layer3];
// CCScrollLayerに追加
CCScrollLayer *scroller = [[CCScrollLayer alloc] initWithLayers:layerArray widthOffset: 0];
//ページインジケーターのポジション
scroller.pagesIndicatorPosition = ccp(self.contentSize.width / 2, 60);
[self addChild:scroller];
}
}
//スタート [[[CCDirector sharedDirector] scheduler] scheduleSelector:@selector(hoge) forTarget:self interval:0.5 paused:NO]; //ストップ [[[CCDirector sharedDirector] scheduler] unscheduleSelector:@selector(hoge) forTarget:self]; //ポーズ [[[CCDirector sharedDirector] scheduler] pauseTarget:self]; //ポーズ解除 [[[CCDirector sharedDirector] scheduler] resumeTarget:self];
[[[[CCDirector sharedDirector] view] window] addSubview: uiItem];
//[[[CCDirector sharedDirector] openGLView] addSubview:uiItem];
/****************************************/
//if(!p.isRelativeAnchorPoint)
if(p.ignoreAnchorPointForPosition)
transform = CGAffineTransformTranslate(transform, p.anchorPoint.x, p.anchorPoint.y);
//transform = CGAffineTransformTranslate(transform, p.anchorPointInPixels.x, p.anchorPointInPixels.y);
/****************************************/
transform = CGAffineTransformTranslate(transform, -p.anchorPoint.x, -p.anchorPoint.y);
//transform = CGAffineTransformTranslate(transform, -p.anchorPointInPixels.x, -p.anchorPointInPixels.y);
@interface GameLayer : CCLayer <UITextFieldDelegate> {
CCUIViewWrapper *textFieldWrapper;
UITextField *textBox;
}
@end
- (void)addTextField {
textBox = [[[UITextField alloc] init] autorelease];
textBox.frame = CGRectMake(175, 120, 110, 25);
textBox.borderStyle = UITextBorderStyleRoundedRect;
textBox.placeholder = @"hogehoge";
textBox.returnKeyType = UIReturnKeyDone;
textBox.clearButtonMode = UITextFieldViewModeWhileEditing;
textBox.autocapitalizationType = UITextAutocapitalizationTypeNone;
textBox.enablesReturnKeyAutomatically = YES;
textBox.contentVerticalAlignment = UIControlContentHorizontalAlignmentCenter;
textBox.textAlignment = NSTextAlignmentCenter;
textFieldWrapper = [CCUIViewWrapper wrapperForUIView:textBox];
textBox.delegate = self;
[self addChild:textFieldWrapper];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
CCLOG(@"text->%@", textBox.text);
}
// GameCenter認証
[[GKLocalPlayer localPlayer] authenticateWithCompletionHandler:^(NSError *error) {
if (error != nil) {
//エラー処理
}
}];
//ヘッダーファイルにプロトコル追加 @interface TestLayer : CCLayer <GKLeaderboardViewControllerDelegate>
//iTunesConnectで設定したリーダーボードIDを設定
GKScore *scoreReporter = [[[GKScore alloc] initWithCategory:@"Leaderboard ID"] autorelease];
scoreReporter.value = HiScore;
[scoreReporter reportScoreWithCompletionHandler:^(NSError *error) {
if (error != nil) {
//エラー処理
}
}];
GKLeaderboardViewController *lbController = [[GKLeaderboardViewController alloc] init];
if (lbController != nil) {
lbController.leaderboardDelegate = self;
[[CCDirector sharedDirector] presentModalViewController:lbController animated:YES];
}
//リーダーボードを抜ける時の処理
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController {
[[CCDirector sharedDirector] dismissViewControllerAnimated:YES completion:^{
//
}];
}
//YESでアクションやスケジュールもクリーンアップ [self removeFromParentAndCleanup:YES]; //removeFromParentAndCleanup:YESと同じ [self removeFromParent]
[self removeChildByTag:101]
ccBezierConfig bezConf; bezConf.controlPoint_1 = ccp(0, 0); bezConf.controlPoint_2 = ccp(30, 0); bezConf.endPosition = ccp(30, 10); id move = [CCBezierBy actionWithDuration:1.0 bezier:bezConf]; [self runAction:move];
//時間調整 id delay = [CCDelayTime actionWithDuration:1.0]; CCSequence* seq = [CCSequence actions:delay, action ,nil]; [self runAction:seq];
//絶対値→相対値 CGPoint local = [sprite convertToNodeSpace:ccp(x, y)]; //相対値→絶対値 CGPoint world = [sprite convertToWorldSpace:ccp(x, y)];