gpt4 book ai didi

ios - SpriteKit - SKSpriteNode 在 3.5 英寸和 4 英寸设备上的缩放比例不同

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:04:43 27 4
gpt4 key购买 nike

我也是游戏开发和 SpriteKit 的新手,正在使用它开发小游戏。不幸的是,我无法在两种设备上正确显示 SKSpriteNode - 3.5 英寸和 4 英寸。

我对 Cocos2d 有一点经验,所有定位的东西都是在非常方便的 SpriteBuilder 工具中完成的。在 SpriteKit 中,它应该以编程方式完成。问题是节点的规模在设备上不同,看一看:

enter image description here

这里是MyScene.m中的定位代码:

-(id)initWithSize:(CGSize)size {    
if (self = [super initWithSize:size]) {
_screenRect = [[UIScreen mainScreen] bounds];
_screenHeight = _screenRect.size.height;
_screenWidth = _screenRect.size.width;

SKSpriteNode *background = [SKSpriteNode spriteNodeWithImageNamed:@"background"];
[background setPosition:CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame))];
[self addChild:background];

_grid = [[DVGrid alloc] initGrid];
[_grid setScale:0.65f];
[_grid setAnchorPoint:CGPointMake(0.0f, 0.5f)];
[_grid setPosition:CGPointMake(10.0f, _screenHeight/2)];
[self addChild:_grid];
}

return self;
}

DVGrid.m 的初始化是 SKSpriteNode 的子类:

- (instancetype)initGrid {
self = [super initWithImageNamed:@"grid"];

if (self) {
[self setUserInteractionEnabled:YES];
}

return self;
}

这里有什么问题吗?

最佳答案

一直回到您创建场景的位置。看起来您可能将场景的 scaleMode 设置为纵横比填充,如果您针对 3.5 进行设计然后进行放大,这可能会导致此行为。

[scene setScaleMode:SKSceneScaleModeAspectFill];

我建议切换到不同的缩放模式,例如 SKSceneScaleModeResizeFill,这应该会产生预期的结果。

关于ios - SpriteKit - SKSpriteNode 在 3.5 英寸和 4 英寸设备上的缩放比例不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24079197/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com