我想从我的Enemy类的walk方法访问我的地图。我猜我可以创建一个GameScene实例,但这似乎不是一个好主意。
我还能怎么做?
GameScene.m
@interface GameScene : SKScene
@property (nonatomic) Map *map;
@end
@implementation GameScene
-(void)didMoveToView:(SKView *)view {
// map
self.map = [Map new];
self.map.level = 1;
[self.map generateMap];
[self addChild:self.map];
// enemy
Enemy *enemy = [Enemy new];
[self addChild:enemy];
}
Enemy.m
#import "Enemy.h"
@implementation Enemy
-(instancetype) init{
...
}
-(void)walk{
NSLog(@"enemy walk");
}
@end
答案 0 :(得分:1)
将Enemy
添加到GameScene
后,您可以使用scene
属性(Enemy
继承自SKNode
)来检索SKScene
{1}}他住在那里。
接下来,您需要将SKScene
转换为GameScene
指针。
以下代码进入
Enemy
类。
let gameScene = self.scene as? GameScene
GameScene * gameScene = (GameScene*) self.scene;
如果您在Enemy中调用此代码,然后将其添加到您的GameScene或删除之后,您的gameScene
将包含nil
值。