gpt4 book ai didi

c# - PictureBox 控件中的翻转图像(镜像)

转载 作者:行者123 更新时间:2023-12-04 16:49:58 25 4
gpt4 key购买 nike

首先,我是 C# 的初学者。我有一个图片框和一个计时器(已启用,间隔 = 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;
}
}

但是我要实现的是,当图片框触到右边边界和条件变为假,我想翻转鸟的形象图片框。现在这只鸟正在做迈克尔 jackson 的月球漫步!

我尝试使用以下代码翻转小鸟(镜像小鸟)。

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;
}
}

关于c# - PictureBox 控件中的翻转图像(镜像),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21762614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com