尝试使用图片框制作重力和跳跃功能和平台

try to make a gravity and jump function and platforms using picture boxes

嗨,我正在尝试为大学项目制作大金刚,我们必须使用 c# 和 visual studio。我为我的对象使用图片框,所以马里奥是一个图片框,平台也是。我正在尝试制作重力函数,但我可以控制马里奥的位置。它一直报错,我已经寻求帮助,但没有任何帮助。

    bool right;
    bool left;
    int m_x, m_y, m_w, m_h;
    int gravity = 5;
    int speed = 5;


    private void timer1_Tick(object sender, EventArgs e)
    {

        m_x = mario.Location.X;
        m_y = mario.Location.Y;
        m_w = mario.Size.Width;
        m_h = mario.Size.Height;

        Gravity();

        if (right == true){ mario.Left += speed; }
        if (left == true) { mario.Left -= speed; }
    }

    public void Gravity()
    {
        m_y += gravity;
        mario.Location.Y = m_y;      
    }

我收到错误:

Error 1 Cannot modify the return value of 'System.Windows.Forms.Control.Location' because it is not a variable C:\Users\Albert\documents\visual studio 2013\Projects\DonkeyKongPB\DonkeyKongPB\Form1.cs 56 13 DonkeyKongPB

您可以改为 mario.Top = m_y 以获得相同的效果,因为您只修改 y.


或者,如果您坚持按照自己的方式进行:

因为 Location returns 一个 Point 结构你需要做:

Location = new Point(mario.Location.X, m_y);