我一直在使用 JSTileMap 来处理我的游戏中的 TMX 瓦片地图,到目前为止,很自然 - 我只使用了方形瓦片(示例在所附图像中)。
但是,我想使用斜坡样式的瓷砖(也是图像中的示例),它们是三角形,到目前为止 - 我还没有找到一种方法让游戏将它们视为三角形(赋予瓷砖的边界是平方的,并且显然这不适合坡道式瓷砖)。
我该怎么做呢?JSTileMap 可以吗?任何其他外部库?或者它必须特别注意(如这里所述,有点)
谢谢!
我一直在使用 JSTileMap 来处理我的游戏中的 TMX 瓦片地图,到目前为止,很自然 - 我只使用了方形瓦片(示例在所附图像中)。
但是,我想使用斜坡样式的瓷砖(也是图像中的示例),它们是三角形,到目前为止 - 我还没有找到一种方法让游戏将它们视为三角形(赋予瓷砖的边界是平方的,并且显然这不适合坡道式瓷砖)。
我该怎么做呢?JSTileMap 可以吗?任何其他外部库?或者它必须特别注意(如这里所述,有点)
谢谢!
在任何基于瓷砖的渲染器中都没有“三角形”瓷砖。图像中的灰色区域只需要透明即可。至于碰撞处理,这是您需要在基于 tile GID 的代码中处理的事情。
这是我的解决方案:
在 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