Предыдущая Следующая
}
}
}
/// <summary>
/// Освобождаем ресурсы
/// <summary>
protected override void UnloadGraphicsContent(bool unloadAllContent)
{
if (unloadAllContent == true)
{
content.Unload();
}
}
/// <summary>
/// Обновляем состояние игры /// <summary>
Случайный выбор позиции на экране 309
protected override void Update(GameTime gameTime) {
switch (gameState)
{
case CurentGameState.SplashScreen:
{
break;
}
case CurentGameState.MenuScreen:
{
break;
}
case CurentGameState.HelpScreen:
{
break;
}
case CurentGameState.AboutScreen:
{
break;
}
case CurentGameState.GameScreen:
{
if(GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit();
MoveBall(); GamePadClick();
break;
}
case CurentGameState.GameOverScreen:
{
break;
}
case CurentGameState.VictoryScreen:
{
break;
}
}
base.Update(gameTime);
310 Движение моделей в пространстве
}
/// <summary>
/// Рисуем на экране
/// <summary>
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(new Color(159, 147, 207)); switch (gameState)
{
case CurentGameState.SplashScreen:
{
break;
}
case CurentGameState.MenuScreen:
{
break;
}
case CurentGameState.AboutScreen:
{
break;
}
case CurentGameState.GameScreen:
{
graphics.GraphicsDevice.RenderState.DepthBufferEnable = true; view = Matrix.CreateLookAt(new Vector3(0.0f, 0.0f, 150.0f), Vector3.Zero, Vector3.Up);
proj = Matrix.CreatePerspectiveFieldOfView(FOV, aspectRatio, nearClip, farClip);
for (int i = 0; ball.Length > i; i++)
{
world = Matrix.CreateTranslation(ball[i].position); ball[i].DrawModel(world, view, proj);
}
break;
}
case CurentGameState.GameOverScreen:
{
break;
}
case CurentGameState.VictoryScreen:
{
Случайный выбор позиции на экране 3]]
break;
}
}
base.Draw(gameTime);
}
/// <summary> /// Движение мячей /// <summary> void MoveBall() {
for (int i = 0; ball.Length > i;
{
ball[i].position.Y -= ball[i].speed;
}
}
/// <summary> /// Прицел /// <summary> void GamePadClick()
{
GamePadState currentState = GamePad.GetState(Playerlndex.One); for (int i = 0; ball.Length > i;
{
if (currentState.Triggers.Right > 0.5f)
{
ball[i].position.X = rand.Next(-(rand.Next(0, 60)), rand.Next(0, 60)); ball[i].position.Y = rand.Next(50, 80); ball[i].position.Z = -(rand.Next(20, 100));
} }
}
} }
Глава 19
Стреляем по целям
Наша задача на данном этапе заключается в добавлении в игру прицела и создании механизма обработки попаданий в цель. Как обычно, продолжаем усовершенствовать пример из предыдущей главы, и наш новый проект носит название CursorBall. На компакт-диске этот проект находится в папке Code\Chapter19. Открываем проект CursorBall и приступаем к изучению исходного кода примера. Предыдущая Следующая
|