就像我尝试进行水平碰撞而按键不断倒置
// 步骤事件
> **# `
> `if left key pressed`
if dleft = true
> > # {
> x += 2;
> `collsion left`
> if place_meeting(x + 12,y,Ground)
> > # {
> x += 3
> > # }
>
>
> > # }
> `if right key pressed`
> if dright = true
> > # {
> x -= 2;
> `collision right`
> if place_meeting(x + 12,y,Ground)
> > # {
> x -= 3;
> > # }
>
>
> > # }**
>
> > `
顺便说一句,我不是专业的 gml 程序员
这是因为按左键时会执行
x += 2
。这意味着您将 x 轴增加 2 个像素,将对象向右旋转。同样,减小 x 轴将使您向左旋转。
对于 y 轴,则相反,增加它会使你下降,减少它会使你上升。我认为这就是混乱所在。
想想是否中心点 (0,0) 位于左上角。 (类似于阅读一本书,从左上角开始)并且通过增加 x 和 y,您可以通过转到右下角来填充空间。
请参阅底部示例,了解其外观。我还修复了一些格式以使其更具可读性:
//if left key pressed
if dleft = true
{
x -= 2;
//collision left
if place_meeting(x - 12,y,Ground)
{
x -= 3
}
}
//if right key pressed
if dright = true
{
x += 2;
//collision right
if place_meeting(x + 12,y,Ground)
{
x += 3;
}
}