所以,我创建了一个名为'Level1Class'的新类,并创建了一个名为'level1Layout'的方法。在那个方法中,我创建了一个名为'level1ButtonRed'的SKSprite,当我设置位置并尝试使用
添加它时[self addChild: level1ButtonRed]
它给了我错误
"No Known Class method for selector 'addChild'."
#import "Level1Class.h"
#import "GameScene.h"
@implementation Level1Class
+(void) level1Layout{
SKSpriteNode *level1ButtonRed;
level1ButtonRed = [SKSpriteNode spriteNodeWithImageNamed:@"LevelButton_Red"];
level1ButtonRed.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame));
[self addChild: level1ButtonRed];
}
@end
#import "GameScene.h"
static NSString *levelButtonRed = @"levelButtonRed";
@implementation GameScene
SKSpriteNode *trans;
-(void)didMoveToView:(SKView *)view {
/* Setup your scene here */
trans = [SKSpriteNode spriteNodeWithImageNamed:@"Transparent"];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
/* Called when a touch begins */
for (UITouch *touch in touches) {
CGPoint location = [touch locationInNode:self];
trans.position = location;
[self enumerateChildNodesWithName:@"levelButtonRed" usingBlock: ^(SKNode *node1, BOOL *stop1){
if( [trans intersectsNode:node1]){
[Level1Class level1Layout];
}
}];
} }
-(void)update:(CFTimeInterval)currentTime {
/* Called before each frame is rendered */ }
@end
Level1Class.h
#import <SpriteKit/SpriteKit.h>
#import <Foundation/Foundation.h>
@interface Level1Class : NSObject
-(void) level1Layout;
@end
任何帮助??
答案 0 :(得分:0)
您将该邮件发送至self
内的+level1Layout
。这是一种类方法。因此self
指向类对象。您不能将子项添加到类对象。您可以将子项添加到该类的实例对象。
要解决该问题,请先创建一个实例,然后将该子项添加到该实例。