e)//Переміщення прямокутника фрейма
{+=elapsedTime;// Дивимося на секундомір (elapsed gt;=delay)//Якщо пройшов час
{(frame == countFrames - 1)=0; ++;// Міняємо фрейм
=0;// Скидаємо секундомір
}. X=frame * Width;// Переміщаємо прямокутник фрейма
}
void MoveUp ()
{. Y=- 1;// Рух вверх.X=0;// Міняємо від.Y=- 1; (StopMove.Z == 0)
{. Y=0; .Y -=Speed;// Міняємо позицію
}
} void MoveDown ()
{. Y=1;// Рух вніз.X=0;// Міняємо від.Y=1; (StopMove.Y == 0)
{. Z=0; .Y +=Speed;// Міняємо позицію
}
} void MoveLeft ()
{. X=- 1;// Рух влево.X=- 1;// Міняємо від.Y=0; (StopMove.W == 0)
{. X=0; .X -=Speed;// Міняємо позицію
}
} void MoveRight ()
{. X=1;// Рух вверх.X=1;// Міняємо від.Y=0; (StopMove.X == 0)
{. W=0; .X +=Speed;// Міняємо позицію
}
}
void DrawMotion (SpriteBatch spriteBatch)
{layer=0.8f + (Position.Y + Height)/5400; scale=1; zeroRec=new Rectangle (0, 0, Width, Height); (Move.Y lt; 0)// Йде вверх.Draw (UpWalk, Position, sourceRect, Color.White, 0, Vector2.Zero, scale, SpriteEffects.None, layer); if (Move.Y == 0 amp; amp; View.Y lt; 0 )//Дивиться вверх.Draw (UpWalk, Position, zeroRec, Color.White, 0, Vector2.Zero, scale, SpriteEffects.None, layer);
if (Move.Y gt; 0)//Йде вніз.Draw (DownWalk, Position, sourceRect, Color.White, 0, Vector2.Zero, scale, SpriteEffects.None, layer); if ((Move.Y == 0 amp; amp; View.Y gt; 0) || (View.X == 0 amp; amp; View.Y == 0))//Дивиться вніз.Draw (DownWalk, Position , zeroRec, Color.White, 0f, Vector2.Zero, scale, SpriteEffects.None, layer);
else if (Move.X gt; 0)//Якщо рухається вправо
spriteBatch.Draw (RightWalk, Position, sourceRect, Color.White, 0, Vector2.Zero, scale, SpriteEffects.None, layer); if (Move.X == 0 amp; amp; View.X gt; 0)//Дивиться вправо.Draw (RightWalk, Position, zeroRec, Color.White, 0f, Vector2.Zero, scale, SpriteEffects.None, layer);
else if (Move.X lt; 0)//Якщо рухається вліво
spriteBatch.Draw (LeftWalk, Position, sourceRect, Color.White, 0, Vector2.Zero, scale, SpriteEffects.None, layer); if (Move.X == 0 amp; amp; View.X lt; 0)//Дивиться влево.Draw (LeftWalk, Position, zeroRec, Color.White, 0f, Vector2.Zero, scale, SpriteEffects.None, layer); (Bullet b in listBullet)//Малюємо кулі
{b.DrawBullet (spriteBatch); }
}
Для створення ігрового вікна використовується клас Game1. Лістинг класу представлений у Додатку Б. На малюнку 6 представлено ігрове вікно.
Рис. 6 Запущена гра
ВИСНОВОК
Анімація в іграх дуже важливий елемент без якого не обходиться жодна гра. Вона відповідає за пересування персонажів, взаємодія їх з навколишнім світом. Також комп'ютерна анімація (послідовний показ слайд-шоу із заздалегідь підготовлених графічних файлів, а також комп'ютерна імітація руху за допомогою зміни і перемальовування форми об'єктів або показу послідовних зображень з ф?? зами руху, підготовлених заздалегідь або породжуваних під час анімації) може застосовуватися в мультимедійних додатках (наприклад, енциклопедіях), а також для «оживлення» окремих елементів оформлення, наприклад, веб-сторінок і реклами (анімовані банери lt; # justify gt; Список використаних джерел
1. Бубнов А.Є. Комп'ютерний дизайн. Основи, Мн: Знання, 2008
2. Крічалов А.А. Комп'ютерний дизайн. Навчальний посібник, Мн .: СТУ МГМУ, 2008
. Стоянов П.Г. Робота з кольором і графікою, Мн .: БДУІР, 2008
ДОДАТОК A
Клас Actor
System.Collections.Generic;Microsoft.Xna.Framework;Microsoft.Xna.Framework.Content;Microsoft.Xna.Framework.Graphics;Microsoft.Xna.Framework.Input;
Game1
{Actor
{Texture2D DownWalk {get; set; } Texture2D RightWalk {get; set; } Texture2D LeftWalk {get; set; } Texture2D UpWalk {get; set; }
int intersect;
Vector2 Position;// Положення в просторі
List lt; Bullet gt; listBullet=new List lt; Bullet gt; ...