();// Пульки
int countFrames;// Кількість кадрів анімації
public int Width;// Шірінаint Height;// ВисотаVector2 Move;// Вектор направленіеVector2 View;// Вектор погляду
int Speed;// швидкість
Vector4 StopMove;// Зупинених напрямки
Rectangle sourceRect;// Прямокутник одного фрейма
float elapsed; float delay=200f; int frame=0;// номер фреймаint hp;
content; gamePhysics;
Rectangle zBounds//Z - Межі обьекта
{{return new Rectangle ((int) Position.X, (int) Position.Y, Width, Height); }
}
Rectangle shadow//Межі кроку обьекта
{get {return new Rectangle ((int) Position.X, (int) Position.Y + Height/2, Width, Height/2); }}
Point pointN
{get {return new Point (shadow.Center.X, shadow.Top); }}
Point pointS
{get {return new Point (shadow.Center.X, shadow.Bottom); }}
Point pointW
{get {return new Point (shadow.Left, shadow.Center.Y); }}
Point pointE
{get {return new Point (shadow.Right, shadow.Center.Y); }}
Point pointNE
{get {return new Point (shadow.Right, shadow.Top); }}
Point pointNW
{get {return new Point (shadow.Left, shadow.Top); }}
Point pointSE
{get {return new Point (shadow.Right, shadow.Bottom); }}
Point pointSW
{get {return new Point (shadow.Left, shadow.Bottom); }}
Actor (string textureFolder, ContentManager cont, int countFrames, int hp, int speed, Physics gamePhysics)
{. content=cont; .DownWalk=cont.Load lt; Texture2D gt; (textureFolder + @ /downMove ) ;. UpWalk=cont.Load lt; Texture2D gt; (textureFolder + @ / upMove ) ;. LeftWalk=cont.Load lt; Texture2D gt; (textureFolder + @ /leftMove ) ;. RightWalk=cont.Load lt; Texture2D gt; (textureFolder + @ /rightMove );
. countFrames=countFrames;=DownWalk.Width/countFrames;// Ширина=DownWalk.Height;// Висота
=Vector2.Zero;=Vector2.Zero;=new Rectangle (0, 0, Width, Height) ;. hp=hp; .Speed ??= speed; .gamePhysics=gamePhysics;
//Ні з чим не перетинається
StopMove=Vector4.Zero;
}
public void heroAnimation (float elapsedTime)//Переміщення прямокутника фрейма
{
elapsed +=elapsedTime;// Дивимося на секундомір
if (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...