Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

Единственное, о чем еще следует сказать, - это то, что элементы Min и Max структуры BoundingBox задаются трехмерным вектором, состоящим из трех координат осей X, Y и Z.

Vector3(10, 20, 0);

В двухмерном пространстве ось Z присутствует, но она работает несколько иначе, чем в трехмерных играх. Поэтому для простых двухмерных спрайтов третий параметр вектора ставится всегда в ноль и не используется. В трехмерных играх ось Z используется, а в векторе обязательно задается значение по оси Z. Тогда мы получим уже не ограничивающий прямоугольник, а ограничивающий куб (все модели объемные), но об этом вы узнаете в свое время и в своей главе.

10.2. Проект Collision

Итак, приступим к работе над проектом Collision, в котором мы добавляем обработку столкновений между платформой и падающими с неба объектами. В листинге 10.1 представлен полный программный код класса Game1. Сначала давайте посмотрим на весь исходный код этого класса, а затем перейдем к его подробному анализу. Остальные классы проекта Collision остаются неизменными, как и в предыдущих проектах игры.

//=========================================================================

/// <summary>

/// Листинг 10.1

/// Исходный код к книге:

/// "Программирование компьютерных игр под Windows в XNA Game Studio Express" /// Автор книги: Горнаков С. Г.

/// Глава 10

/// Проект: Collision /// Класс: 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 Collision

і

public class Gamel : Microsoft.Xna.Framework.Game

і

GraphicsDeviceManager graphics; ContentManager content; KeyboardState keyboardState; SpriteBatch spriteBatch; Sprite[] sprite = new Sprite[5]; private Texture2D backgroundl; 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];

/// <summary> /// Конструктор /// <summary> public Gamel()

і

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;


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz