首先,我是C#的初学者。 我有一个picturebox和一个计时器(启用,间隔= 25)。 我在图片框中插入了一张鸟的gif图像。 在我写过的Timer事件中,
bool positionBird = true;
private void timer1_Tick(object sender, EventArgs e)
{
if (PictureBox1.Location.X == Screen.PrimaryScreen.Bounds.Width)
{
positionBird = false;
}
else if (PictureBox1.Location.X == 0)
{
positionBird = true;
}
if(positionBird)
{
PictureBox1.Left += 1;
}
else
{
PictureBox1.Left += -1;
}
}
但我想要实现的是,当图片框触及右侧时 边界和条件变得虚假,我想翻转鸟的形象 图片框。现在这只鸟正在迈克尔杰克逊的月球漫步!
我尝试使用下面的代码翻转鸟(镜像鸟)。
else
{
PictureBox pict = new PictureBox();
pict = PictureBox1;
pict.Image.RotateFlip(RotateFlipType.RotateNoneFlipX);
pict.Left += -1;
}
但它看起来很奇怪。它显示了翻转图像和正常图像。能够 有人帮我这个吗?正如我已经说过的,我是初学者。有些简单 带解释的代码会非常有用。还有人可以告诉我 我做错了什么?
答案 0 :(得分:2)
不要创建另一个图片框。您正在查看原始图片,因为您尚未修改原始图片,而是修改了新图片。
所以修改后的代码如下:
bool positionBird = true;
private void timer1_Tick(object sender, EventArgs e)
{
if (PictureBox1.Location.X == Screen.PrimaryScreen.Bounds.Width)
{
positionBird = false;
PictureBox1.Image.RotateFlip(RotateFlipType.RotateNoneFlipX); // picture flips only once when touches boundary
}
else if (PictureBox1.Location.X == 0)
{
positionBird = true;
PictureBox1.Image.RotateFlip(RotateFlipType.RotateNoneFlipX); // picture flips only once when touches boundary
}
if(positionBird)
{
PictureBox1.Left += 1;
}
else
{
PictureBox1.Left += -1;
}
}