Разработка игры, реализующей алгоритмы искусственного интеллекта, позволяющие играть в одиночку. Анализ обрабатываемой информации и структур данных для ее хранения. Разработка интерфейса пользователя, форм вывода данных. Выбор стратегии тестирования.
1. Анализ требований и уточнение спецификаций 1.1 Анализ задания, выбор технологии, языка и среды программирования 1.2 Конструкции, реализованные в программе 1.3 Анализ обрабатываемой информации и выбор структур данных для ее хранения 1.4 Анализ структуры программы 2. В процессе разработки должны быть усвоены некоторые новые возможности Visual Studio. Анализ технических требований и уточнение спецификаций 1.1 Анализ задания, выбор технологии, языка и среды С# - это новый язык программирования, в котором, по замыслу создателей, должны сочетаться выразительность и простота. Более того, С# полностью зависит от .NET. Приложение Windows Forms представляет собой событийно-ориентированное приложение creeps = new List(); //Список Монстров игрока private MouseState mouseState;//состояние мыши для данного фрейма private MouseState oldState;//состояние мыши для предыдущего фрейма //Расположение Монстров игрока private int cellX; private int cellY; private int tileX; private int tileY; private string newCreepType;//тип монстра длядобавления private int newCreepIndex;//показатель новой текстурымонстра private Level level;//справка об уровне public int Money { get { return money; } set { money = value; } } public int Lives { get { return lives; } set { lives = value; } } public string NewCreepType { set { newCreepType = value; } } public int NewCreepIndex { set { newCreepIndex = value; } } /// /// Создание новго игрока /// public Player(Level level, Texture2D[] creepTextures, Texture2D bulletTexture) { this.level = level; this.creepTextures = creepTextures; this.bulletTexture = bulletTexture; } /// /// Returns wether the current cell is clear /// private bool IsCellClear() { bool inBounds = cellX >= 0 && cellY >= 0 && cellX /// Adds a creep to the players collection. /// public void AddCreep() { Creep creepToAdd = null; switch (newCreepType) { case Car Creep: { creepToAdd = new CarCreep(creepTextures[0], bulletTexture, new Vector2(tileX, tileY)); break; } case Tank Creep: { creepToAdd = new TankCreep(creepTextures[1], bulletTexture, new Vector2(tileX, tileY)); break; } } // Only add the tower if there is a space and if the player can afford it. if (IsCellClear() == true && creepToAdd.Cost /// Updates the player. /// public void Update(GameTime gameTime, List enemies) { mouseState = Mouse.GetState(); cellX = (int)(mouseState.X / 32); // Convert the position of the mouse cellY = (int)(mouseState.Y / 32); // from array space to level space tileX = cellX * 32; // Convert from array space to level space tileY = cellY * 32; // Convert from array space to level space if (mouseState.LeftButton == ButtonState.Released && oldState.LeftButton == ButtonState.Pressed) { if (string.IsNullOrEmpty(newCreepType) == false) { AddCreep(); } } foreach (Creep creep in creeps) { // Make sure the creep has no targets. if (creep.HasTarget == false) { creep.GetClosestEnemy(enemies); } creep.Update(gameTime); } oldState = mouseState; // Set the oldState so it becomes the state of the previous frame. } public void Draw(SpriteBatch spriteBatch) { foreach (Creep creep in creeps) { creep.Draw(spriteBatch); } } public void DrawPreview(SpriteBatch spriteBatch) { // Draw the creep preview. if (string.IsNullOrEmpty(newCreepType) == false) { int cellX = (int)(mouseState.X / 32); // Convert the position of the mouse int cellY = (int)(mouseState.Y / 32); // from array space to level space int tileX = cellX * 32; // Convert from array space to level space int tileY = cellY * 32; // Convert from array space to level space Texture2D previewTexture = creepTextures[newCreepIndex]; spriteBatch.Draw(previewTexture, new Rectangle(tileX, tileY, previewTexture.Width, previewTexture.Height), Color.White); } } Класс меню using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; namespace WoW2 { public enum ButtonStatus//Описываем состояние кнопки { Normal, MouseOver, Pressed, } public class Button : Sprite //Хранит внешний вид и функциональность кнопки.
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы