Приставки
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
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

310 Стреляем по целям

Целимся и стреляем 311

Но в дальнейшем мы будем вести подсчет попадания в мячи по каждому отдельному мячу, поэтому нам здесь цикл не подойдет.

В результате два рассмотренных метода представляют отлаженный механизм по переносу координат курсора мыши в трехмерную плоскость и обработке столкновений между спрайтом и моделью. Этот механизм вам может понадобиться в различных играх, например в шутерах от первого или второго лица, где, так же как и нашей игре, присутствуют двухмерный прицел и множество различных трехмерных моделей. В листинге 20.1 вы найдете полный исходный код класса Game1, а сам проект - на компакт-диске в папке Code\Chapter20\CursorBall.

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

/// <summary>

/// Листинг 20.1

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

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

/// Автор книги: Горнаков С. Г.

/// Глава 20

/// Проект: CursorBall

/// Класс: 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 CursorBall {

public class Game1 : Microsoft.Xna.Framework.Game

{

private enum CurentGameState

{

SplashScreen,

MenuScreen,

AboutScreen,

GameScreen,

GameOverScreen,

VictoryScreen

CurentGameState gameState = CurentGameState.GameScreen;

GraphicsDeviceManager graphics; ContentManager content; KeyboardState keyboardState; int screenWidth, screenHeight;

Matrix view; Matrix proj; Matrix world;

static float aspectRatio;

static float FOV = MathHelper.PiOver4;

static float nearClip = 1.0f;

static float farClip = 1000.0f;

private ModelClass[] ball = new ModelClass[3]; MouseState mouseState; Random rand = new Random();

SpriteBatch spriteBatch; Sprite cursor;

public BoundingSphere[] bb = new BoundingSphere[3];

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

graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); for (int i = 0; ball.Length > i;

{

ball[i] = new ModelClass();

}

cursor = new Sprite();

}

/// <summary> /// Инициализация /// <summary>


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

Горяченькое

Друзья

Hosted by uCoz