如何对角线移动一个图片框

本文关键字:一个 对角线 移动 | 更新日期: 2023-09-27 18:07:47

我正尝试着在我所创造的游戏中对角线移动PictureBox

private void movebulletupright()
{
    //this part is mainly for checking the action[![enter image description here][1]][1]
    for (int k = bulletlistupright.Count - 1; k >= 0; k--)
    {
        bulletlistupright[k].Location.X++;
        bulletlistupright[k].Location.Y++;
        //This part is just basically meant to get rid of the bullet
        //when it reaches the end of the screen
        if (bulletlistupright[k].Left >= this.ClientSize.Height)
        {
            this.Controls.Remove(bulletlistupright[k]);
            bulletlistupright.RemoveAt(k);
        }
    }
}

我正在使用计时器来移动子弹。我想做的是每一秒移动5个像素(也就是1毫秒)。如果你看附在下面的图片,我要做的是移动那些黄色的子弹形状在角落对角线。(我只把它们放在那里,所以我可以表示它们在哪里产卵)。[1]: https://i.stack.imgur.com/wQc5l.png

如何对角线移动一个图片框

尝试一次移动:

  bulletlistupright[k].Location = new Point(
    bulletlistupright[k].Location.X + 5,  // 5 is X step
    bulletlistupright[k].Location.Y + 5); // 5 is Y step 

为了防止抖动(即不必要的重绘制-在X坐标更改后先重绘制,而不是在Y坐标更改后重绘制)

我不确定我理解你的问题,但如果你在你的代码中移动它1像素,移动它5像素,你只需要做:

bulletlistupright[k].Location.X+=5;
bulletlistupright[k].Location.Y+=5;

如果这不是你想要的,请在你的问题中更清楚