我正在开发一个小应用程序,在其中将tilemap(JSTilemap)加载到Sprite Kit中。

除了瓷砖 map 看起来正常且人像精细外,所有其他功能都可以正常工作,但是当我翻转到风景时,它似乎爆炸了。我没有添加任何代码,而只是导入了JSTilemap标头和此代码initwithsize。

self.map = [JSTileMap mapNamed:@"tilemap.tmx"];
[self addChild:self.map];

我还下载了一个带有磁贴图的简单项目,旋转时尺寸保持不变,只有当我尝试模仿代码时,旋转磁贴时,我的磁贴图仍会爆炸。

有什么设置可以限制我所缺少的吗?

最佳答案

您应该使用-(id)initWithSize:(CGSize)size而不是-(void)didMoveToView:(SKView *)view

 -(id)initWithSize:(CGSize)size {
        if (self = [super initWithSize:size]) {
     JSTileMap* tiledMap = [JSTileMap mapNamed:@"level1.tmx"];
            if (tiledMap)
                [self addChild:tiledMap];
            self.userInteractionEnabled = YES;
        }
        return self;
    }

同样在GameViewController中(如果您使用的是默认模板类),则应使用sceneWithSize更改场景初始化
    /*
    // Create and configure the scene.
    GameScene *scene = [GameScene unarchiveFromFile:@"GameScene"];
    scene.scaleMode = SKSceneScaleModeAspectFill;
    */

   // Create and configure the scene.
    SKScene * scene = [GameScene sceneWithSize:skView.bounds.size];
    scene.scaleMode = SKSceneScaleModeAspectFill;

07-27 16:39