[英]Flip Image(Mirror) in a PictureBox Control
首先,我是C#的初学者。 我有一个图片框和一个计时器(启用,间隔= 25)。 我在图片框中插入了一只小鸟的gif图像。 在计时器事件中,我写了
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;
}
但这看起来很奇怪。 它同时显示了翻转图像和正常图像。 有人可以帮我吗? 正如我已经说过的,我是一个初学者。 一些带有解释的简单代码将非常有帮助。 也有人可以告诉我我做错了吗?
请勿创建其他图片框。 您看到的是原始图片,因为您没有修改原始图片,而是新创建的图片。
因此,修改后的代码如下:
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;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.