Быть может кто-то из Вас знает игру Sims, к какому жанру она относиться? Жизненная симуляция, ролевая игра, там можно и дома строить..... |
Опубликован: 10.04.2009 | Уровень: специалист | Доступ: платный
Самостоятельная работа 9:
Оформление игры
В листинге 13.6. вы можете найти код класса HelpScreen.
using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; using Microsoft.Xna.Framework.Content; namespace P9_2 { //Экран справки public class HelpScreen : Screen { //Текстуры для фона и справочной надписи Texture2D backTexture; Rectangle backRectangle; Texture2D helpTexture; Rectangle helpRectangle; public HelpScreen(Game game, Texture2D _back, Texture2D _help, Rectangle _backRec, Rectangle _helpRec) : base(game) { backTexture = _back; helpTexture = _help; backRectangle = _backRec; helpRectangle = _helpRec; } public override void Draw(GameTime gameTime) { //Выводим изображения sprBatch.Draw(backTexture, backRectangle, Color.White); sprBatch.Draw(helpTexture, helpRectangle, Color.White); base.Draw(gameTime); } } }Листинг 13.6. Код класса HelpScreen
На рис. 13.7. вы можете видеть игровой экран.
В листинге 13.7. приведен код игрового экрана – класса GameScreen. Мы использовали простой код для перемещения объекта из проекта P3_4.
using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; using Microsoft.Xna.Framework.Content; namespace P9_2 { //Игровой экран public class GameScreen :Screen { private Texture2D sprTexture; private Rectangle sprRectangle; private Vector2 sprPosition; private Rectangle scrBounds; public GameScreen(Game game, ref Texture2D newTexture, Rectangle newRectangle, Vector2 newPosition) : base(game) { sprTexture = newTexture; sprRectangle = newRectangle; sprPosition = newPosition; scrBounds = new Rectangle(0, 0, game.Window.ClientBounds.Width, game.Window.ClientBounds.Height); } public override void Initialize() { // TODO: Add your initialization code here base.Initialize(); } public override void Update(GameTime gameTime) { KeyboardState kbState = Keyboard.GetState(); if (kbState.IsKeyDown(Keys.Up)) { sprPosition.Y -= 5; } if (kbState.IsKeyDown(Keys.Down)) { sprPosition.Y += 5; } if (kbState.IsKeyDown(Keys.Left)) { sprPosition.X -= 5; } if (kbState.IsKeyDown(Keys.Right)) { sprPosition.X += 5; } if (sprPosition.X < scrBounds.Left) { sprPosition.X = scrBounds.Left; } if (sprPosition.X > scrBounds.Width - sprRectangle.Width) { sprPosition.X = scrBounds.Width - sprRectangle.Width; } if (sprPosition.Y < scrBounds.Top) { sprPosition.Y = scrBounds.Top; } if (sprPosition.Y > scrBounds.Height - sprRectangle.Height) { sprPosition.Y = scrBounds.Height - sprRectangle.Height; } base.Update(gameTime); } public override void Draw(GameTime gameTime) { sprBatch.Draw(sprTexture, sprPosition, sprRectangle, Color.White); base.Draw(gameTime); } } }Листинг 13.7. Код класса GameScreen
Задание
Создайте систему игровых экранов и меню, которым можно управлять с помощью мыши и клавиатуры.