Среда программирования:
Visual Studio 2015
Статья по теме:
В этом примере показана элементарная спрайтовая анимация на примере птички из Angry Birds. Меняются три спрайта птички и постепенно увеличивается скорость смены этих спрайтов.
В imageList1 добавляются спрайты.
imageList1.Draw(Graphics, Point, int): Graphics - задать графику, Point - точка(левый верхний угол спрайта), int - индекс спрайта в imageList1.
timer1.Interval = timer1.Interval - 10; уменьшаем интервал таймера на 10.
Код программы:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Sprite { public partial class Form1 : Form { Graphics g; Bitmap buf; public Form1() { InitializeComponent(); buf = new Bitmap(pictureBox1.Width, pictureBox1.Height);//Определение буфера g = Graphics.FromImage(buf);//Определение графики из буфера g.FillRectangle(new SolidBrush(Color.White), 0, 0, pictureBox1.Width, pictureBox1.Height); timer1.Enabled = true; } int stage = 0; private void timer1_Tick(object sender, EventArgs e) { if (stage < 1) { imageList1.Draw(g, new Point(5, 0), 0); stage++; } else if (stage < 2) { imageList1.Draw(g, new Point(5, 2), 1); stage++; } else if (stage < 3) { imageList1.Draw(g, new Point(0, 5), 2); stage++; } if (stage == 3) { stage = 0; timer1.Interval = timer1.Interval - 10; } if (timer1.Interval <= 10) timer1.Interval = 600; pictureBox1.Image = buf; } } }