SpriteKit을 처음 사용하고 MyScene.m에서 클래스에 만들어진 객체 (원)를 표시하려고합니다.iOS SpriteKit 다른 클래스에서 객체를 만들고 표시합니다.
가 CreateNewCircle.h에 내가 쓴 :
#import <SpriteKit/SpriteKit.h>
@interface CreateNewCircle : SKScene
-(void) addNewCircle;
@end
와하는 .m (CreateNewCircle.m)에서
가 :#import "CreateNewCircle.h"
@implementation CreateNewCircle
-(void) addNewCircle {
const CGSize size = self.frame.size;
const CGPoint center = CGPointMake(size.width * 0.5, size.height * 0.5);
CGRect box = CGRectMake(center.x - 40.0, center.y - 40.0, 80.0, 80.0);
SKShapeNode *shapeNode = [[SKShapeNode alloc] init];
shapeNode.path = [UIBezierPath bezierPathWithOvalInRect:box].CGPath;
shapeNode.fillColor = [SKColor redColor];
shapeNode.strokeColor = nil;
}
@end
지금이 전화를 시도하고 이것이 내가 무엇을 가지고 방법 (즉, 디스플레이 원 화면) 형태 MyScene.m :
MyScene.h :
#import <SpriteKit/SpriteKit.h>
@interface MyScene : SKScene
@end
MyScene.m :
#import "MyScene.h"
#import "CreateNewCircle.h"
@implementation MyScene {
}
-(id)initWithSize:(CGSize)size {
if (self = [super initWithSize:size]) {
/* Setup your scene here */
self.backgroundColor = [SKColor colorWithWhite:255 alpha:1.0];
CreateNewCircle *circle1 = [[CreateNewCircle alloc] init];
[circle1 addNewCircle];
[self.scene addChild:circle1];
}
return self;
}
빌드는 OK,하지만 난 실행할 때, 아무것도 표시되지 않습니다. 나는 다음과 같은 "addchild"라인을 변경하려고 시도했다 :
[circle1 setName:@"circleOne"];
[self childNodeWithName:@"circleOne"];
그러나 같은 결과 : 빈 화면. MyScene.m에서 직접 동일한 코드를 작성하면 원이 표시되므로 코드가 정확해야합니다. 누군가 나를 기쁘게 할 수 있습니까 ?-)?
감사합니다. 이 예에서
오히려 단지 코드를 많이 덤핑보다는 영업 이익은 데 문제를 설명하는 좋은 수 있습니다. –
@JesseRusak - 그럼 그 사람에게 설명해주십시오. 나는 항상 예를 통해 배우기를 더 좋아했습니다. – sangony
그래, 몇 가지 변경을 시도했지만 여전히 작동하지 않습니다. 예를 들어 다음과 같은 클래스가 있습니다 : '- (instancetype) init {' 'if (self = [super init]) {' '.............. ..' 그리고 내 CreateNewCircle 클래스의 하위 클래스를 SKSpriteNode로 변경했습니다. – aleciuf