Lua 科罗纳SDK&x2B;平铺+;瓷砖引擎:创建碰撞贴图?

Lua 科罗纳SDK&x2B;平铺+;瓷砖引擎:创建碰撞贴图?,lua,coronasdk,ceramic-tile-engine,Lua,Coronasdk,Ceramic Tile Engine,我正在制作一个简单的基于平铺的游戏,带有: 带碰撞层的平铺贴图(由平铺制作,加载) 在地图中移动的角色 我想做的是:在平铺贴图中移动角色,在平铺贴图中考虑碰撞层 代码如下: -- Load Map local ceramic = require("Ceramic") local map = ceramic.buildMap("maps/map.lua") -- Create Character hero = display.newImage("images/man.png") hero.

我正在制作一个简单的基于平铺的游戏,带有:

  • 带碰撞层的平铺贴图(由平铺制作,加载)
  • 在地图中移动的角色
我想做的是:在平铺贴图中移动角色,在平铺贴图中考虑碰撞层

代码如下:

-- Load Map
local ceramic = require("Ceramic")
local map = ceramic.buildMap("maps/map.lua")


-- Create Character
hero = display.newImage("images/man.png")
hero.x = 0
hero.y = 0
map.layer['World']:insert(hero)

-- Create buttons
btnLeft = display.newImage("images/btnLeft.png", 10, 10)
btnRight = display.newImage("images/btnRight.png", 150, 10)

-- Button Event Listeners
btnLeft:addEventListener("tap", moveLeft)
btnRight:addEventListener("tap", moveRight)

-- Button functions
function moveLeft()
    hero.x = hero.x - 50
end

function moveRight()
    hero.x = hero.x + 50
end
问题是,地图与角色是分开的。我怎样才能把这个角色放在地图上?我错过了什么

注意:平铺贴图是自上而下的角度


注意:地图有4个层:背景、世界、门、碰撞,我希望玩家不要进入碰撞层的区域。

为了让玩家碰撞,你需要实现某种类型的碰撞检测-无论是有物理还是没有物理

这意味着你可以

  • 创建一个非物理碰撞系统,检查附近的“可碰撞”瓷砖
  • 在地图上实现电晕的Box2D物理
  • 注:当使用陶瓷时,Box2D更容易使用,但一旦暮光之城引擎出现,非物理碰撞应该更容易使用

    这里我只给出Box2D的过程。它的实现非常简单,要么使单个瓷砖物理化,要么使整个层的瓷砖物理化。通过编辑平铺属性并在其中添加physical:enabled=true,可以使单个平铺成为物理平铺。要了解关于物理学的更深入的解释,您可以查看。它也适用于单个瓷砖


    通过将该特性添加到图层的特性列表中,可以使整个图层成为物理图层;要更改单个磁贴的物理实体,请编辑磁贴的特定属性。

    你的意思是右键单击磁贴中的图层,选择“图层属性”并添加
    物理:启用
    为true
    是:)与磁贴属性相同-右键单击磁贴集中的单个磁贴并执行相同的操作。我发布了另一个,请查看