在 Gamemaker Studio 2 中进行水平碰撞时的反向控制

问题描述 投票:0回答:1

就像我尝试进行水平碰撞而按键不断倒置

// 步骤事件

> **# `
>  `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 程序员

collision game-maker-studio-2 game-maker-language
1个回答
0
投票

这是因为按左键时会执行

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;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.