我正在制作一个简单的基于平铺的游戏,其中包含:
- 带有碰撞层的平铺贴图(由 Tiled 制作,加载有Ceramic Tile Engine)
- 在地图内移动的角色
我想做的事:在 Tile Map 中移动角色,同时尊重 Tile Map 中的碰撞层。
这是代码:
-- 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 层:背景、世界、门、碰撞,我希望玩家不要走进碰撞层的区域。