LOVE2D游戏引擎; 2D 平台碰撞系统

LOVE2D game engine ; 2D platformer collision systems

我在下面附上了 2 张照片。目前我正在开发简单的 2d 平台游戏;这个想法是玩家从屏幕的左角开始,如果玩家捕获屏幕右角的旗帜,玩家获胜并将玩家带到下一个级别。

所以我设置了我的播放器和地面,并对它们应用了重力和碰撞边界(图 1 反映了这种情况)。无论如何,这是棘手的部分,我如何将碰撞系统添加到平台 1、2 和 3? 我不想使用 "Tiled Map Editor" 之类的东西。目标是使用 Photoshop 和 Illustrator 创建关卡并将它们带到游戏世界中。

有什么想法和想法吗?或者有什么建议吗?

您可能想要为每个级别创建一个文件,指定平台的位置和大小以及背景图像开始位置等任何其他内容。然后编写逻辑代码以加载该数据文件并创建物理体等.从那里的水平。

示例数据文件可能如下所示

 return {platforms={
             {x=200, y=200, width=10, height=20},
             {x=200, y=200, width=10, height=20},
             {x=200, y=200, width=10, height=20, type="brick"},
         },
         size={width=300,height=200},
         start={x=100,y=200},
         goal={x=200,y=100, nextlevel="desert"},
         background={image="bluelevel.png"}
 }

然后处理这些文件以通用方式创建关卡:

function load_level(filename)
   data = dofile(filename)
    platforms = {}
    for i, p in ipairs(data.platforms) do
        body=love.physics.newBody(world, p.x, p.y, "static")
        shape=love.physics.newRectangle(p.width, p.height)
        fix=love.physics.newFixture(body, shape)
        platforms[i] = {body=body, shape=shape, fix=fix}
    end
    -- .... finish loading data
end