如何对角线移动一个图片框
本文关键字:一个 对角线 移动 | 更新日期: 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;
如果这不是你想要的,请在你的问题中更清楚