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 の場合、独立性が高いためこうすると理解しています。