使用SpriteKit缩放SkSpriteNodes

时间:2014-11-30 19:22:57

标签: ios swift sprite-kit scaling skspritenode

即将开发的游戏我有各种缩放节点。

取决于设备(ipad / iphone),它们的最大大小在50-128之间(println("\(size)")的输出),所以我认为最大大小应该是3x128,对吗?

当缩放以下情况时:

  • 初始尺寸(0,0)
  • 最终尺寸(最大,最大) - 这些是上面提到的尺寸

我正在使用SKAction进行缩放:

let imageName = NameGenerator.defaultGenerator.generateAssetName(properties: properties)
let texture = SKTexture(imageNamed: imageName)
let node = SKSpriteNode(texture: texture)

let initialSize = CGSizeMake(1, 1)
let scaleFactor = max / initialSize.width
let actionScale = SKAction.scaleTo(scale, duration: duration)

node.runAction(scale)
到目前为止一切顺利。该应用程序运行顺畅,一切正常,

  • 节点在缩放动画期间高度像素化

我的资源目前仅以@3x大小存储在300x300px

问题

  • 什么是最佳纹理格式(png,svg,...) - 有没有办法使用矢量图像?
  • 您觉得这个szenario的最佳纹理尺寸是什么?
  • 我正在进行缩放/初始化,还是应该做一些不同的事情来避免像素化?

1 个答案:

答案 0 :(得分:2)

如果使用png文件,你会没事的。不支持矢量格式。如果您想使用它们,则必须将其转换为位图图像格式,如png。

就最佳纹理尺寸而言,这实际上是一个试验和错误的问题,并且权衡了权衡。

放大时,您将看到像素化。究竟要取决于您使用的比例因子,实际纹理本身以及您拥有的任何其他变换(例如旋转)。在确定要使用的纹理大小时,您基本上平衡了内存与视觉质量。例如,如果您没有很多纹理,那么使用较大的图像可能会更有可能。另请注意,缩小也有其缺点,例如混叠效果。

您可能想要尝试做的是确定您认为“最佳”或最常用的尺寸。并使用该大小作为x1比例尺寸。

游戏开发是关于资源/性能的平衡行为以及用户体验的内容。您需要尝试为您的游戏找到最佳权衡。

顺便说一句,我发现这句话有点令人困惑:

  

取决于设备(ipad / iphone),它们之间的最大尺寸   50-128(println(“(size)”)的输出),所以我认为最大尺寸   应该是3x128,对吧?

我不太清楚你想说的是什么。