두 개의 그림 개체가 있습니다. 둘 다 오른쪽에서 왼쪽으로 옮기길 바랍니다. 눈에 띄는 패널 밖으로 나가면 그 위치가 시작점으로 바뀝니다. 화면에는 항상 2 장의 그림이 움직입니다.새 위치 업데이트시 이미지가 깜박입니다.
타이머를 사용하지 않으면 2 장의 그림이 그려집니다. 그러나 틱 이벤트가있는 위치에서 타이머를 사용하여 움직이게하는 위치를 변경하면 그림이 1 개만 표시되며 계속 깜박입니다.
아래 코드는 지금까지입니다. 나는 C#에 익숙하지 않다. 어떤 도움을 주시면 감사하겠습니다. 고맙습니다.
타이머 간격 = 30; 양식 1 :
public partial class Form1 : Form
{
Background bg1 = new Background();
Background bg2 = new Background(800);
public Form1()
{
InitializeComponent();
}
private void flowLayoutPanel1_Paint(object sender, PaintEventArgs e)
{
bg1.paint(e);
bg2.paint(e);
}
private void Timer_Tick(object sender, EventArgs e)
{
bg1.updatePosition();
bg2.updatePosition();
this.Refresh();
}
}
배경 :
class Background
{
int bg_width = 800;
int bg_height = 500;
Image bg;
Rectangle wb;
private static int x = 0;
public Background()
{
bg = Properties.Resources.bg;
wb = new Rectangle(x, 0, bg_width, bg_height);
}
public Background(int custom_x)
{
x = custom_x;
bg = Properties.Resources.bg;
wb = new Rectangle(x, 0, bg_width, bg_height);
}
public void paint(PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawImage(bg, wb);
}
public void updatePosition()
{
x--;
if (x == -800)
{
x = 801;
}
wb.Location = new Point(x, 0);
}
}
타이머 간격은 0.03 초입니다. 실제로 원하는 것입니까? –
더블 버퍼링 FTW! –
대상 : Winforms, WPF, ASP ..? __Always__ 질문에 올바르게 태그를 답니다. - 당신의 _pictures_가 실제로 무엇인지 설명하십시오! – TaW