有没有人知道如何使用Swift以编程方式创建SKTileMapNode?(注意:我不想使用编辑器执行此操作,我只想以编程方式实现此操作)
我尝试了以下但不渲染我的瓷砖地图
let bgTexture = SKTexture(imageNamed: "background")
let bgDefinition = SKTileDefinition(texture: bgTexture, size: bgTexture.size())
let bgGroup = SKTileGroup(tileDefinition: bgDefinition)
let tileSet = SKTileSet(tileGroups: [bgGroup])
let bgNode = SKTileMapNode(tileSet: tileSet, columns: 5, rows: 5, tileSize: bgTexture.size())
bgNode.position = CGPoint(x: self.frame.size.width / 2, y: self.frame.size.height / 2)
bgNode.setScale(1)
self.addChild(bgNode)
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢
我正在学习Swift,作为一个项目,我正在开发一个类似于超级马里奥的基于平铺的2D游戏,我的角色会走路并跳上瓷砖.
最新版本的Xcode和Sprite Kit可以直接在Xcode中创建Tile Map.
在新的Xcode和Sprite工具包的演示中,这个人展示了一个类似于我正在做的游戏.
https://developer.apple.com/videos/play/wwdc2016/610/ (大约20分钟).
他提到我给Tiles用户数据属性,并且在代码中我们搜索具有该用户数据的所有tile并给它们一些物理属性,以便角色可以碰撞或与它们交互(在我的情况下,我的角色不会掉落)或者穿过瓷砖).
所以基本上,这个想法是给那些瓦片一个物理体,但这不能用SKphysicsBody来完成.所以必须有另一种方式,因为我是Swift的新手,我很想念它.
如果有人知道这一点,我将非常感谢帮助.
如果问题不清楚,请告诉我,因为我也是堆栈溢出的新手.
我一直在GKNoiseMaps上关注Apple Docs,我设法得到一个图像产生,它看起来非常好
在这里使用此代码
class GameScene: SKScene {
class Noise: GKNoise {
var NoiseSource = GKPerlinNoiseSource(frequency: 0.05, octaveCount: 3, persistence: 1, lacunarity: 1, seed: Int32(arc4random_uniform(UInt32(500 - 1))))
override init(_ noiseSource: GKNoiseSource, gradientColors: [NSNumber : UIColor]) {
super.init(NoiseSource, gradientColors: [ (+1.0 as NSNumber): UIColor.red, (-1.0 as NSNumber) : UIColor.black])
}
}
let noise = Noise()
let Vector1 = vector_double2(1.0, 1.0)
override func didMove(to view: SKView) {
let NoiseMap = GKNoiseMap(noise, size: vector_double2(300.0, 300.0),
origin: vector_double2(0.0, 0.0),
sampleCount: vector_int2(100),
seamless: true) …Run Code Online (Sandbox Code Playgroud) 我正在为我正在制作的iOS游戏创建一个平铺地图.该地图是岛屿的俯视图.大多数瓷砖都是水,但有些是土地.水瓦被重新用于创造水,但是没有一块地砖被使用不止一次,因为所有的地砖都是独一无二的.我查看了SKTileDefinition,SKTileGroup,SKTileGroupRule,SKTileSet和SKTileMap的文档,这就是我提出的:
func createTileMap() {
let waterTile = SKTileDefinition(texture: SKTexture(imageNamed: "map-tile-1"))
let waterTileGroup = SKTileGroup(tileDefinition: waterTile)
let landTile64 = SKTileDefinition(texture: SKTexture(imageNamed: "map-tile-64"))
let landTile63 = SKTileDefinition(texture: SKTexture(imageNamed: "map-tile-63"))
let landTile56 = SKTileDefinition(texture: SKTexture(imageNamed: "map-tile-56"))
let landTile55 = SKTileDefinition(texture: SKTexture(imageNamed: "map-tile-55"))
let landTile54 = SKTileDefinition(texture: SKTexture(imageNamed: "map-tile-54"))
let landTile53 = SKTileDefinition(texture: SKTexture(imageNamed: "map-tile-53"))
let landTile48 = SKTileDefinition(texture: SKTexture(imageNamed: "map-tile-48"))
let landTile47 = SKTileDefinition(texture: SKTexture(imageNamed: "map-tile-47"))
let landTile46 = SKTileDefinition(texture: SKTexture(imageNamed: "map-tile-46"))
let landTile45 = SKTileDefinition(texture: SKTexture(imageNamed: "map-tile-45"))
let landTile44 = SKTileDefinition(texture: SKTexture(imageNamed: …Run Code Online (Sandbox Code Playgroud) 我不能为我的生活弄清楚如何在Xcode 8 GM中编辑我的瓷砖地图.双击不执行任何操作,并在编辑器下拉列表中"编辑平铺图"显示为灰色.
我所做的就是将瓷砖地图拖放到场景中,甚至创建一个新项目并重新开始并没有帮助.我见过的每一个视频/教程都刚刚显示添加它并双击编辑......有什么东西真的很简单吗?
我正在使用SKTilemapNode。如何在GameplayKit中正确使用寻路?
一些信息:墙壁都是瓷砖,没有瓷砖是“路”
sprite-kit ×6
ios ×3
swift ×3
ios10 ×1
path-finding ×1
perlin-noise ×1
swift3 ×1
tiled ×1
xcode ×1
xcode8 ×1