C#

(C#) Timer, ImageList 이용해서 애니메이션 표현하기

코딩ABC 2023. 5. 27. 09:52
반응형

C#, 윈폼에서 타이머와 이미지리스트 컨트롤을 이용해서 애니메이션을 표현해 봤습니다.

이미지는 픽처박스 컨트롤에 출력했으며, Location 속성을 이용해서 앞으로만 이동하도록 만들었습니다.

 

1. 프로젝트 생성

Windows Forms 앱 또는 Windows Forms 앱(.NET Framework)

 

2. 폼에 컨트롤을 배치합니다.

PictureBox 1개

버튼 2개 - 시작, 종료 버튼

Timer 1개

ImageList 1개

 

3. ImageList에 이미지를 추가합니다.

Images 컬렉션 속성을 이용해서 추가합니다.

여기에서 사용하는 이미지는 아래 링크에서 받을 수 있습니다.

https://coding-abc.kr/87

 

Image의 Size 속성은 "64, 64"로 설정했습니다.

Timer의 Interval 속성은 "100"으로 설정했습니다.

ImageList, Timer를 이용한 애니메이션 표현하기

 

다음 코드를 작성합니다.

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApp_timer
{
    public partial class Form1 : Form
    {
        int n, x, y;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            n = 0;
            x = pictureBox1.Location.X;
            y = pictureBox1.Location.Y;

            pictureBox1.Image = imageList1.Images[0];
            timer1.Start();
        }

        private void btnStart_Click(object sender, EventArgs e)
        {
            timer1.Start();
        }

        private void btnStop_Click(object sender, EventArgs e)
        {
            timer1.Stop();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            n++;
            if (n > 7) n = 0;

            x++;
            pictureBox1.Location = new Point(x, y);
            pictureBox1.Image = imageList1.Images[n];
        }
    }
}

 

C#, Timer와 ImageList를 이용한 애니메이션 표현하기

 

 

반응형