Быть может кто-то из Вас знает игру Sims, к какому жанру она относиться? Жизненная симуляция, ролевая игра, там можно и дома строить..... |
Опубликован: 10.04.2009 | Доступ: свободный | Студентов: 3247 / 243 | Оценка: 4.49 / 4.39 | Длительность: 17:21:00
Темы: Компьютерная графика, Программирование, Игры
Специальности: Программист
Теги:
Самостоятельная работа 3:
Устройства ввода, перемещение объектов
Теперь перейдем к основному файлу игры – коду Game1. Для наглядности он приведен полностью (листинг 7.11.).
using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Net; using Microsoft.Xna.Framework.Storage; namespace P3_5 { /// <summary> /// This is the main type for your game /// </summary> public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; gameObj1 gameObject1; gameObj2 gameObject2; Texture2D texture; public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; } protected override void Initialize() { // TODO: Add your initialization logic here base.Initialize(); } protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); Services.AddService(typeof(SpriteBatch), spriteBatch); texture = Content.Load<Texture2D>("BallandBats"); CreateNewObject(); // TODO: use this.Content to load your game content here } protected void CreateNewObject() { gameObject1 = new gameObj1 (this, ref texture, new Rectangle(18, 9, 17, 88), new Vector2(100, 150)); Components.Add(gameObject1); gameObject2 = new gameObj2(this, ref texture, new Rectangle(17, 106, 17,88), new Vector2(200, 150)); Components.Add(gameObject2); } protected override void UnloadContent() { // TODO: Unload any non ContentManager content here } protected override void Update(GameTime gameTime) { // TODO: Add your update logic here base.Update(gameTime); } protected override void Draw(GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.CornflowerBlue); // TODO: Add your drawing code here spriteBatch.Begin(); base.Draw(gameTime); spriteBatch.End(); } } }Листинг 7.11. Код Game1
Для начала мы объявили пару объектных переменных – одну типа gameObj1, вторую – gameObj2. Далее, после загрузки игрового контента, мы выполнили метод CreateNewObject(), который содержит код для создания двух объектов. После создания мы регистрируем каждый из них в списке игровых компонентов.
Как видите, в коде основной программы мы лишь загружаем ресурсы и создаем игровые объекты, после чего вся работа по управлению ими ведется с помощью кода, находящегося в этих же объектах. На рис. 7.2. вы можете видеть игровое окно с двумя выведенными в нем объектами, которые управляются раздельно.