Предыдущая Следующая
Движение объектов на экране происходит сверху вниз. Через определенный промежуток времени все мячики исчезнут с экрана; чтобы этого не происходило, добавим в исходный код простой метод под названием MouseClick().
В этом методе щелчок левой кнопкой мыши в игре позволит нам выбрать для мячей новые позиции на экране монитора.
void MouseClick()
{
mouseState = Mouse.GetState(); for (int i = 0; ball.Length > i;
{
if(mouseState.LeftButton == ButtonState.Pressed)
{
ball[i].position.X = rand.Next(-(rand.Next(0, 80)), rand.Next(0, 80));
ball[i].position.Y = rand.Next(0, 80); ball[i].position.Z = -(rand.Next(20, 150));
}
}
}
Методика выбора позиции аналогична той методике, которую мы рассмотрели в начале этой главы. В дальнейшем мы модифицируем исходный код этого метода и будем его использовать уже для выстрелов по мячикам. В листинге 19.1 представлен полный исходный код класса Game1. Сам проект вы найдете на компакт-диске в папке Code\Chapter19\BallArray.
//=========================================================================
/// <summary>
/// Листинг 19.1
/// Исходный код к книге:
/// "Программирование компьютерных игр под Windows в XNA Game Studio Express"
/// Автор книги: Горнаков С. Г.
/// Глава 19
/// Проект: BallArray /// Класс Game1
/// Загружаем в игру три мячика
300 Движение моделей в пространстве
Случайный выбор позиции на экране 301
/// <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 BallArray {
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();
/// <summary> /// Конструктор /// <summary> public Game1() Предыдущая Следующая
|