相关疑难解决方法(0)

Spritekit - 不从SKTextureAtlas加载@ 3x图像

由于我的示例项目被删除(我认为这将更容易测试),我将发布一些代码和图像来说明我的观点.

这是样本图像

2x图像

我的3x图像

我的地图册设置:

在此输入图像描述

我的启动图像设置:

在此输入图像描述

我将这些精灵添加到场景中的代码

override func didMoveToView(view: SKView) {
    let texture = SKTextureAtlas(named: "scenery")
    let test = SKSpriteNode(texture: texture.textureNamed("test"))
    test.position = CGPoint(x: self.size.width/2, y: self.size.height/2)
    self.addChild(test)

}
Run Code Online (Sandbox Code Playgroud)

这些是我的结果:

iPhone 5模拟器:

在此输入图像描述

iPhone 6 plus模拟器:

在此输入图像描述

我已经尝试更改启动图像以使用资产目录.然后iPhone 6 plus似乎升级了2倍的屏幕.它仍在加载2x图像,但会将其放大.

我需要它来加载我的3x图像并使用我的2x图像进行缩放.

Gabuh在下面的回答指出了我正确的方向.适用于新项目.但是,如果我将他的解决方案用于我真正的SpriteKit项目,我的3x图像不会缩小.它们比它们应该大3倍.

objective-c ios sprite-kit sktextureatlas swift

12
推荐指数
2
解决办法
2643
查看次数

通用2D游戏资产和绝对节点定位

我有一个关于通用游戏资产和in (iOS 8+)绝对定位的问题.SKNodesSprite Kit

我将通过以下示例尝试提出我的问题:

想象一下,一个2D自上而下的游戏SKSpriteNode它代表的房子.一所房子有多个孩子SKSpriteNode,代表椅子,书桌,沙发等.

我有3个版本的房屋资产:

  • 1x - 200 x 200px (非视网膜iPad),
  • 2x - 400 x 400px (Retina iPhone和iPad),
  • 3x - 600 x 600px (iPhone 6 Plus).

重要:子节点(椅子,桌子等)位置在.plist文件中定义.像这样的东西(JSON表示):

children: [
    {
        position = {20,20};
    },
    ...
]
Run Code Online (Sandbox Code Playgroud)

由于位置是以点而非像素定义的,因此根据设备屏幕比例,所有内容都会按预期定位.对于1x设备,位置保持不变{20,20},对于2x位置是{40,40},对于3x位置是{60,60}.

问题:

问题是,为了在所有设备上实现类似的外观和感觉200x200px,400x400px资产对于iPad设备来说小的.

问题: …

iphone objective-c ipad ios sprite-kit

12
推荐指数
1
解决办法
2248
查看次数

标签 统计

ios ×2

objective-c ×2

sprite-kit ×2

ipad ×1

iphone ×1

sktextureatlas ×1

swift ×1