Shoot’em up-игра “78

Автор работы: Пользователь скрыл имя, 09 Декабря 2010 в 17:27, курсовая работа

Описание

Подобные игры часто кажутся очень похожими друг на друга, что неудивительно — ведь жанр определяется довольно чёткими рамками — разновидностей их существует достаточно. С противоположных сторон жанра находятся «маниакальные» шмапы, где за успех отвечают рефлексы игрока, и «методические», где упор делается на память и стратегический подход.

Я выбрал именно этот жанр потому, что, на мой взгляд, игры этого жанра являются самыми увлекательными аркадными играми. В детстве я всегда любил играть именно в такие игры на своём стареньком Nintendo. Хотя реализаций «чистого» шмапа для Nintendo я так и не увидел, зато я играл в «чистые» шмапы позже, на ПК. И они доставляли мне много-много радости. Надеюсь, мой курсовой проект тоже кому-нибудь доставит радость.

Содержание

1.Введение 3
2.Обзор предметной области 4
1.XNA Framework 4
2.Платформа .NET Framework 6
3.C# 8
3.Описание игры 9
4.Диаграммы классов 10
5.Описание основных классов и методов 11
6.Заключение 19
7.Список использованной литературы

Работа состоит из  1 файл

отчёт по курсачу.docx

— 715.89 Кб (Скачать документ)

        {

            shootSpeed = 20;

            bulletSpeed = 15;

            bulletDamage = 1;

            Position = new Vector2(0, (Window.ClientBounds.Height - texture.Height) / 2);

        } 

        protected override void SetBB()

        {

            base.SetBB();

            BoundingBox temp = new BoundingBox(new Vector3(Position.X + 15, Position.Y + 15, 0),

                new Vector3(Position.X + 100, Position.Y + 85, 0));

            bb = temp;

        } 

        public BattleCruiser(Texture2D texture, GameWindow window)

        {

            this.texture = texture;

            timeFrame = (float)1 / 12;

            frame = 0;

            totalElapsed = 0;

            speed = 5;

            RestoreDefaults(window);

            SetBB();

        } 

        public void UpdateFrame(double elapsed)

        {

            totalElapsed += elapsed;

            if (totalElapsed > timeFrame)

            {

                frame++;

                frame = frame % (frameCount);

                totalElapsed -= timeFrame;

            }        

        } 

        public override void Draw(SpriteBatch spriteBatch)

        {

            int frameWidth = texture.Width / frameCount;

            Rectangle rectangle = new Rectangle(frameWidth * frame, 0, frameWidth, texture.Height);

            spriteBatch.Draw(texture, Position, rectangle, Color.White);

        } 

        public override void Move(int x, int y, GameWindow Window)

        {

            Position += new Vector2(x, y) * speed; 

            if (Position.Y < 0)

                Position = new Vector2(Position.X, 0);

            if (Position.Y > Window.ClientBounds.Height - texture.Height)

                Position = new Vector2(Position.X, Window.ClientBounds.Height - texture.Height);

            if (Position.X < 0)

                Position = new Vector2(0, Position.Y);

            if (Position.X > Window.ClientBounds.Width - texture.Width / frameCount)

                Position = new Vector2(Window.ClientBounds.Width - texture.Width / frameCount, Position.Y);

            SetBB();

        } 

        public Bullet[] Shoot(Texture2D bulletTexture)

        {

            return new Bullet[1] { new Bullet(Position + new Vector2(80, 45), bulletTexture, this.bulletSpeed) };

            

        }

    } 

    public sealed class Enemy : Moveable

    {

        private int dir = -1;

        private int counter = 0; 

        public int lives { get; set; }

        public int cost { get; set; } 

        protected override void SetBB()

        {

            BoundingBox temp = new BoundingBox(new Vector3(Position.X + 2, Position.Y + 3, 0),

                new Vector3(Position.X + 45, Position.Y + 46, 0));

            bb = temp;

        } 

        public Enemy(Vector2 pos, Texture2D texture, int speed, int lives, int cost)

        {

            Position = pos;

            this.speed = speed;

            this.texture = texture;

            this.lives = lives;

            this.cost = cost;

            SetBB();

        } 

        public override void Draw(SpriteBatch spriteBatch)

        {

            spriteBatch.Draw(texture, Position, Color.White);

        } 

        public override void Move(int x, int y, GameWindow Window)

        {          

            Position += new Vector2(-speed, dir * speed);

            SetBB();

            if (counter++ % 20 == 0)

                dir = -dir;

            if (Position.X <= -texture.Width)

                canBeDeleted = true;

        }

    } 

    public sealed class Bullet : Moveable

    {

        protected override void SetBB()

        {

            BoundingBox temp = new BoundingBox(new Vector3(Position.X + 1, Position.Y, 0),

                new Vector3(Position.X + 20, Position.Y + 10, 0));

            bb = temp;

        } 

        public Bullet(Vector2 pos, Texture2D texture, int speed)

        {

            Position = pos;

            this.speed = speed;

            this.texture = texture;

            SetBB();

        } 

        public override void Draw(SpriteBatch spriteBatch)

        {

            spriteBatch.Draw(texture, Position, Color.White);

        } 

        public override void Move(int x, int y, GameWindow Window)

Информация о работе Shoot’em up-игра “78