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

我已经附上了2张照片。目前,我正在制作一个简单的2D平台游戏。游戏的设想是玩家从屏幕的左上角开始,如果玩家在屏幕的右上角捕获了旗帜,玩家就赢了,并将带玩家进入下一关卡。

所以我已经设置了角色和地面,并对它们应用了重力和碰撞边界(图片1反映了这种情况)。无论如何,这里是棘手的部分,如何将碰撞系统添加到平台1,2和3上?我不想使用“Tiled Map Editor”或类似的工具。目标是使用Photoshop和Illustrator创建关卡,并将这些关卡带到游戏世界中。

有任何想法和建议吗?或有任何建议?

输入图像说明

输入图像说明

点赞
用户2726734
用户2726734

你可能需要为每个级别创建一个文件,指定平台的位置和大小以及背景图像的起始位置等信息。然后编写代码加载数据文件并从中创建级别的物理体等。

一个示例数据文件可能如下所示:

 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
    -- ....完成加载数据
end
2015-03-18 16:41:52