SpriteKit和Tiles - 使用非正方形的瓷砖

时间:2014-06-20 00:08:08

标签: ios objective-c sprite-kit tiles jstilemap

我一直在使用JSTileMap在我的游戏中处理TMX平铺地图,到目前为止,自然而然 - 我只使用方形平铺(附图中的示例)。

然而,我想使用渐变式样式(也是图像中的示例),这是三角形,到目前为止 - 我没有找到一种方法让游戏将它们视为三角形(赋予图块的界限)平方,显然不适合斜坡式瓷砖。

我该怎么做?是否可以使用JSTileMap?任何其他外部图书馆?或者必须特别注意(如here中所描述的那样)

谢谢!

tile example

2 个答案:

答案 0 :(得分:2)

没有"三角形"任何基于tile的渲染器中的tile。图像中的灰色区域只需要是透明的。至于碰撞处理,你需要根据瓷砖GID在代码中处理这些事情。

答案 1 :(得分:0)

这是我的解决方案:

在Gid示例中:

             case 455: //example gid code
                    //slide to left
                    node!.name = "rampLeft1"
                    let path: CGMutablePathRef = CGPathCreateMutable()
                    CGPathMoveToPoint(path, nil, 0 , 0 )
                    CGPathAddLineToPoint(path, nil, 64 , 64 )//tilesize 64x64
                    CGPathAddLineToPoint(path, nil, 64 , 0 )
                    CGPathAddLineToPoint(path, nil, 0 , 0 )
                    CGPathCloseSubpath(path)

                    //example view
                    var llshape = SKShapeNode(path: path)
                    llshape.position = node!.position
                    llshape.zPosition = 30
                    addChild(llshape)


                    node.physicsBody = SKPhysicsBody(polygonFromPath: path)
                    node.physicsBody?.dynamic = false
                    node.physicsBody?.allowsRotation=false
                    node.physicsBody?.affectedByGravity = false
                    node.physicsBody?.friction = 0.1