У меня есть собственный объект SKSpriteNode и вы хотите вызвать в нем собственный метод «Установить значения по умолчанию».Вызов пользовательского метода внутри SKSpriteNode не работает
#import <SpriteKit/SpriteKit.h>
@interface Platform : SKSpriteNode
- (instancetype)initWithDynamicPlatform;
- (void)setDefaults;
@end
И в .m файл
#import "Platform.h"
@implementation Platform
- (instancetype)initWithImageNamed:(NSString *)name {
if (self == [super initWithImageNamed:name]) {
NSLog(@"Initiated Platform");
}
return self;
}
- (instancetype)initWithDynamicPlatform {
if (self == [super initWithImageNamed:@"Platform2"]) {
NSLog(@"Initiated Platform");
}
[self setDefaults];
return self;
}
- (void)setDefaults {
/**
* Set the name
*/
self.name = @"Platform";
/**
* Set the effect of gravity on the platform
*/
self.physicsBody.affectedByGravity = NO;
self.physicsBody.dynamic = NO;
}
@end
Проблема заключается в том, что из файла SKScene я не могу получить доступ к пользовательскому методу.
- (void)loadDynamicPlatform {
SKSpriteNode *spritePlatform = [[Platform alloc] initWithDynamicPlatform];
[spritePlatform setDefaults];
[self addChild:spritePlatform];
[self movePlatform:spritePlatform];
}
Я получаю сообщение об ошибке
«/Users/****/Desktop/Apps/****/****/GameScene.m:142:21: нет видимых @interface для «SKSpriteNode» заявляет селектор «SetDefaults»»
Любая идея, почему я не могу получить доступ к этому. Я уверен, что правильно настроил его.
ли вы '#import "Platform.h"' в 'GameScene.m'? – NobodyNada
Да, это там, в файле GameScene.m – ORStudios