Предыдущая Следующая
Последние дополнения в исходном коде текущего проекта происходят в методе Draw(), который рисует всю игровую графику.
if (menuState == true)
і
spriteBatch.Begin(SpriteBlendMode.AlphaBlend); menu.DrawMenu(spriteBatch, cursorState); spriteBatch.End();
}
Здесь мы также добавляем ветвление с конструкцией if/else, и если переменная menuState равна true, то отображаем меню, а если нет, то рисуем на экране игровую графику. Дополнительно в метод DrawMenu() передается значение переменной cursorState, на основе которой, как вы помните, происходит определение, какую из табличек в текущий момент необходимо затенять цветом. Полный исходный код класса Gamel содержится в листинге 12.2, а весь исходный код проекта располагается на компакт-диске в папке Code\Chapter12\Menu.
//=========================================================================
/// <summary>
/// Листинг 12.2
/// Исходный код к книге:
/// "Программирование компьютерных игр под Windows в XNA Game Studio Express"
/// Автор книги: Горнаков С. Г.
/// Глава l2
176 Создаем игровое меню
Проект Menu 177
/// Проект: Menu
/// Класс: Game1
/// Добавляем в игру меню
/// <summary>
//=========================================================================
#region Using Statements using System;
using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Storage; #endregion
namespace Menu
{
public class Gamel : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics; ContentManager content; KeyboardState keyboardState; SpriteBatch spriteBatch; Sprite[] sprite = new Sprite[5]; private Texture2D background1; private Texture2D background2; Random rand = new Random();
int j = 0;
Sprite platform; private bool paused = false; private bool pauseKeyDown = false; public BoundingBox bbplatform;
public BoundingBox[] bb = new BoundingBox[5]; BitmapFont font;
int score0, scorel, score2, score3, score4; Menu menu;
private bool menuState; private int cursorState;
/// <summary> /// Конструктор /// <summary> public Game1()
{
graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); graphics.PreferredBackBufferWidth = 1024; graphics.PreferredBackBufferHeight = 7 68; graphics.PreferMultiSampling = false; graphics.IsFullScreen = true; for (int i = 0; sprite.Length > i; Предыдущая Следующая
|