SKShapeNode のサブクラスである Tile クラスがあります
@interface Tile : SKShapeNode
そして、次のようにクラスをインスタンス化します。
// Tile.h
-(instancetype) addHiddenTileToSpace:(NSString *)letter withIndex:(int)i withPositionInWord:(int)p;
私の実装ファイルには
// Tile.m
-(instancetype) addHiddenTileToSpace:(NSString *)letter withIndex:(int)i withPositionInWord:(int)p{
if(self == [super init] ){
self.name = @"Tile";
// self.hidden = YES;
if (p == 0) {
self.firstLetter = YES;
}
else{
self.firstLetter = NO;
}
self.positionInAnswer = i;
self.character = letter;
[self setPath:CGPathCreateWithRoundedRect(CGRectMake(0, 0, 60, 60), 4, 4, nil)];
self.strokeColor = self.fillColor = [UIColor colorWithRed:66.0f/255.0f
green:74.0f/255.0f
blue:84.0f/255.0f
alpha:1];
SKLabelNode *characterNode = [[SKLabelNode alloc] initWithFontNamed:@"Avenir-Medium"];
characterNode.text = [letter uppercaseString];
characterNode.fontSize = 40;
characterNode.fontColor = [UIColor colorWithRed:216.0f/255.0f
green:216.0f/255.0f
blue:216.0f/255.0f
alpha:1];
characterNode.position = CGPointMake(30, 15);
[self addChild:characterNode];
}
return self;
}
問題は、そのノードをアニメーション化/スケーリングしたいが、ノードの中心からスケーリングするのではなく、ノードの座標 (0,0) からスケーリングすることです。+ (instancetype)shapeNodeWithPath:(CGPathRef)path
centered:(BOOL)centered
メソッドを使用し、中心をYESに設定する必要があることを他の場所で読みました
ただし、上記のインスタンス化の方法では、shapeNodeWithPath メソッドを使用して SKSHapeNode を初期化する方法がわかりません。または、Tile.center = YES; を設定できる他の方法がありますか?