トップ «前の日記(2014-01-13) 最新 次の日記(2014-02-05)» 編集

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|

2014-02-04 [OSX][iOS]Sprite Kit(その2)

『Sprite Kit Programming Guide』を参考に、サンプルコードを拡張していきたいと思う。

インスタンス変数を使って保持していなくても取得できるように、最初に表示するラベルに名前を付ける。

@implementation MyScene
 
-(id)initWithSize:(CGSize)size
{
    if (self = [super initWithSize:size]) {
        self.backgroundColor = [SKColor colorWithRed:0.15 green:0.15 blue:0.3 alpha:1.0];
        
        SKLabelNode *myLabel = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];        
        myLabel.name = @"myLabel";  /* ノードに名前を付ける */
        myLabel.text = @"Hello, World!";
        myLabel.fontSize = 30;
        myLabel.position = CGPointMake(CGRectGetMidX(self.frame),
                                       CGRectGetMidY(self.frame));
        [self addChild:myLabel];
    }
    return self;
}
 
 ...
@end

名前を付けたノードをタッチされた際に取得して、アニメーションさせる。

@implementation MyScene
 ...
 
 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    SKNode *myLabel = [self childNodeWithName:@"myLabel"];  /* ノードを取得する */
    if (myLabel != nil) {
        myLabel.name = nil;
        SKAction    *moveUp = [SKAction moveByX: 0 y: 100.0 duration: 0.5]; /* 上昇 */
        SKAction    *zoom = [SKAction scaleTo: 2.0 duration: 0.25];         /* 拡大 */
        SKAction    *pause = [SKAction waitForDuration: 0.5];               /* 停止 */
        SKAction    *fadeAway = [SKAction fadeOutWithDuration: 0.25];       /* フェードアウト */
        SKAction    *remove = [SKAction removeFromParent];                  /* 消滅 */
        SKAction    *moveSequence = [SKAction sequence:@[moveUp, zoom, pause, fadeAway, remove]];
        [myLabel runAction:moveSequence];
    }
}
 
 ...
@end

_ ソースコード

GitHubからどうぞ。
https://github.com/murakami/workbook/tree/master/ios/Spiritus - GitHub

_ 【Cocoa練習帳】

http://www.bitz.co.jp/weblog/
http://ameblo.jp/bitz/(ミラー・サイト)

トップ «前の日記(2014-01-13) 最新 次の日記(2014-02-05)» 編集