SpriteKit: sks ファイルの謎(3)

sks とはほとんど関係ないけれども、自作した class の class method の場合はどうやって定義するのかについて、備忘のため記しておこう。

SKSpriteNode を元にした class を生成し、class method は次のように定義した。

+ (instancetype) spliteNodeWithColor:(SKColor*)color name:(NSString*)name position:(CGPoint)pos

{

    GroundBlock* Iam = [GroundBlock spriteNodeWithColor:color

                                                   size:CGSizeMake(50, 50)];

    Iam.position = pos;

    Iam.name = name;

    Iam.userInteractionEnabled = YES;

    return Iam;

}

spriteNodeWithColor で四角形を生成し、ついでに position と名前を規定する method を作成。Class の名前は GroundBlock で、class method にするなら self が使えないので自身で object 名を規定する必要がある点が着目点。さらに、自身の class 名である GroundBlock の instance として生成し return するのが慣れないとなんとも珍妙に思えるのですが class method の場合、独立性が高いためこうすると理解しています。