とにかく、ここに私が良い結果を得た方法があります:
新しいプロジェクトを開いて、これを試してください:
viewDidLoadを使用する代わりに GameViewContrrler でviewWillLayoutSubviewsを使用します。
編集: これは、viewDidLoadやviewWillLayoutSubviewsなどのメソッドに関する Rob Mayoff による適切な説明です。
- (void)viewWillLayoutSubviews
{
[super viewWillLayoutSubviews];
// Configure the view.
SKView * skView = (SKView *)self.view;
skView.showsFPS = YES;
skView.showsNodeCount = YES;
/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = YES;
// Create and configure the scene.
if(!skView.scene){
GameScene *scene = [GameScene sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
// Present the scene.
[skView presentScene:scene];
}
}
したがって、シーン クラスの didMoveToView メソッドで、線を引くだけです。
SKShapeNode *yourline = [SKShapeNode node];
CGMutablePathRef pathToDraw = CGPathCreateMutable();
CGPathMoveToPoint(pathToDraw, NULL, 0.0, 0.0);
CGPathAddLineToPoint(pathToDraw, NULL, self.frame.size.width,self.frame.size.height);
yourline.path = pathToDraw;
[yourline setStrokeColor:[UIColor redColor]];
[self addChild:yourline];
CGPathRelease(pathToDraw);
init と didMoveToView についてはこちらをお読みください (LearnCocos2D が投稿したコメントをお読みください)。
これでほぼ終わりです。お役に立てば幸いです。