因为我太久沒编码了,我想可能通过Game Maker 来再次開始。 我尝试制作一个非常简单的使箱子推动的机制,我不是特别需要反馈或者任何东西,因为我还在学习,所以实际上我也不会介意。我只是想分享我已经取得的进展。 这是我的一个事件,当推动物体与玩家相撞时会执行的。
`//target_x & target_y 被定义在create事件中,分别代表x & y`
` if (pushed == false)`
`{`
`pushed = true;`
`if (obj_player._ver > 0)`
`{`
`target_y = y + 32;`
`}`
`else if (obj_player._ver < 0)`
`{`
`target_y = y - 32;`
`}`
`else if (obj_player._hor < 0)`
`{`
`target_x = x - 32;`
`}`
`else if (obj_player._hor > 0)`
`{`
`target_x = x + 32;`
`}`
`}`
`else if (pushed == true)`
`{`
`exit;`
`}`
我也设定一个在玩家上方,为了阻止他们通过箱子,因为这个方法使用中出现了一个问题。 _hor & _ver 是检查玩家方向的,为了让玩家能够触发推动物体的碰撞事件,因此推动动物体被设为offset的1。
` if instance_exists(obj_pushable_parent) && obj_pushable_parent.pushed == true
{
if (_hor < 0) && place_meeting(x + 1, y, obj_pushable_parent)
{xspd = 0;}
else if (_ver < 0) && place_meeting(x, y + 1, obj_pushable_parent)
{yspd = 0;}
else if (_hor > 0) && place_meeting(x - 1, y, obj_pushable_parent)
{xspd = 0;}
else if (_ver > 0) && place_meeting(x, y - 1, obj_pushable_parent)
{yspd = 0;}
};`
我试玩了它,表现一般,但存在自己的问题。可能是有点低效,但是我很高兴我能够自己想出这个方法来。
评论 (0)