Предыдущая Следующая
font.DrawString(Window.ClientBounds.Width - 95, fy += font.LineHeight + 12, "{0}", score2);
font.DrawString(Window.ClientBounds.Width -95,fy += font.LineHeight + 12,
"{0}",
score3);
font.DrawString(Window.ClientBounds.Width - 95, fy += font.LineHeight + 12, "{0}", score4);
Здесь первые два параметра определяют точку вывода прямоугольника по осям X и Y, третий параметр не используется, а такой вид записи показывает на то, что будет выводиться числовое значение. Последний параметр есть число.
Место вывода в игре текущих набранных очков было определено еще на этапе создания фонового изображения. По оси X это ширина дисплея минус 95 пикселей, а по оси Y первая строчка определена на расстоянии 245 пикселей от верхней части экрана и затем каждая последующая строка удаляется на высоту шрифта плюс 12 пикселей на междустрочие.
В классе BitmapFont имеется несколько разных методов DrawString() для вывода различного вида текста с форматированием и без него, в рамке и т. д. Поэкспериментируйте с этими методами ради практического интереса. Весь ис-
ходный код класса Game1 проекта Font, где мы подсчитываем очки, набранные пользователем, и рисуем на экране текст, приведен в листинге 11.1. Исходный код проекта Font вы найдете на компакт-диске в папке Code\Chapter11\Font.
//=========================================================================
/// <summary>
/// Листинг 11.1
/// Исходный код к книге:
/// "Программирование компьютерных игр под Windows в XNA Game Studio Express"
/// Автор книги: Горнаков С. Г.
/// Глава 11
/// Проект: Font
/// Класс 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 Font
{
public class Game1 : 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; Предыдущая Следующая
|