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
我在下面附上了 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