SKCropNode를 사용하여 SKShapeNode에 마스크를 적용하려고했지만 지금까지 성공하지 못했습니다. SpriteKit 버그라고 생각합니다. 코드 예는 다음과 같습니다.SpriteKit에서 SKCropNode는 SKShapeNode에 아무런 영향을주지 않습니다.
SKNode* contentNode = [SKNode node];
// picture - use an image bigger than 50x50
SKSpriteNode *pictureNode = [SKSpriteNode spriteNodeWithImageNamed:@"tree"];
// triangle
SKShapeNode* triangleNode = [SKShapeNode node];
UIBezierPath* triangleNodeBezierPath = [[UIBezierPath alloc] init];
[triangleNodeBezierPath moveToPoint:CGPointMake(0.0, 0.0)];
[triangleNodeBezierPath addLineToPoint:CGPointMake(0.0, 100.0)];
[triangleNodeBezierPath addLineToPoint:CGPointMake(50.0, 100.0)];
[triangleNodeBezierPath closePath];
triangleNode.path = triangleNodeBezierPath.CGPath;
triangleNode.fillColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1];
// create a mask
SKSpriteNode *mask = [SKSpriteNode spriteNodeWithColor:[SKColor blackColor] size: CGSizeMake(50, 50)]; //50 by 50 is the size of the mask
// create a SKCropNode
SKCropNode *cropNode = [SKCropNode node];
[cropNode addChild: contentNode];
[cropNode setMaskNode: mask];
[self addChild: cropNode];
[contentNode addChild:pictureNode]; // pictureNode is being cropped
[contentNode addChild:triangleNode]; // triangleNode is not
cropNode.position = CGPointMake(CGRectGetMidX (self.frame), CGRectGetMidY (self.frame));
누구에게이 문제에 대한 해결책이 있습니까? 고마워요!
한숨, 나는 또한이 문제에 부딪쳤다. 나는 이것에 레이더를 제출했다. SKShapeNode를 SKCropNode와 함께 사용할 수 없다는 것은 꽤 불행한 일입니다. 다행히도 제 경우에는 사각형이 필요했기 때문에 SKSpriteNode를 사용할 수있었습니다. –
@MobileBen SKShapeNode와 CAShapeLayer 모두에서 선 편집과 같이 CGPath가 해당 속성을 편집 할 수 없다는 점은 선 편집과 같이 필자가 본 2D 드로잉 및 애니메이션 기술에서 가장 놀라운 부분 중 하나입니다. 그리고 그 수준을 놓치지 않는 수준은 SpriteKit의 2D 상호 작용, 렌더링, 조작 및 사용법에 대한 설계 방식의 많은 부분을 보완합니다. 내 요리를 떠올리게한다. Bubble-n-Squeak의 반죽, 반 굽고 종이 접시에 담아 낸다. 최고의 spork와 함께 먹었어요. – Confused
@Confused Apple은 대중이 제품을 생산할 수있는 일반적인 제품을 만듭니다. 불행히도 게임에서는 종종 특수한 경우가 있습니다. SK에 근무하는 팀은 게임을 제작하는 데이 게임을 사용하지 않고 데모만을 사용합니다. 그래서 그들은이 모든 항목들이 현장에서 어떻게 사용되는지 이해하지 못합니다. 그들은 단지 기능의 체크리스트를 가지고있는 것처럼 보입니다. 왜 내가 SK를 버렸을 까? SK 실적은 실제로 좋지 않습니다. 나는 또한 게임이 점점 커지면 규모가 커지지 않을 것이라고 생각합니다. 이제는 최신 엔진을 설치하고 실행 했으므로 게임 속도가 빨라졌으며 dev가 더 쉽습니다. –