Предыдущая Следующая
}
case CurentGameState.GameScreen:
{
spriteBatch.Begin(SpriteBlendMode.AlphaBlend);
spriteBatch.Draw(background, new Vector2(0, -50), Color.White); spriteBatch.End();
graphics.GraphicsDevice.RenderState.DepthBufferEnable = true; view = Matrix.CreateLookAt(camera, Vector3.Zero, Vector3.Up); proj = Matrix.CreatePerspectiveFieldOfView(FOV, aspectRatio, nearClip, farClip); for (int i = 0; ball.Length > i;
{
world = Matrix.CreateTranslation(ball[i].position); ball[i].DrawModel(world, view, proj);
}
world = Matrix.CreateTranslation(stadium.position); stadium.DrawModel(world, view, proj);
spriteBatch.Begin(SpriteBlendMode.AlphaBlend);
cursor.DrawSprite(spriteBatch);
spriteBatch.End();
break;
}
362 Последние штрихи
case CurentGameState.GameOverScreen: {
gameOver.DrawScreen(spriteBatch, graphics, screenWidth, screenHeight,
stateGameOver); break; }
case CurentGameState.VictoryScreen:
{
victory.DrawScreen(spriteBatch, graphics, screenWidth, screenHeight, stateVictory); break;
}
base.Draw(gameTime);
}
21.6. Добавим в игру логику
Смысл всей игры заключается в том, чтобы не дать мячикам упасть на футбольное поле, но стрелять по мячам можно до бесконечности. Поэтому ключом для окончания уровня будет служить двадцать точных попаданий в каждый мяч. Игроку на одном уровне необходимо попасть в каждый мяч как минимум двадцать раз, и при этом ни один из мячей за это время не должен коснуться земли.
Если мяч касается земли, то игра останавливается, и пользователю будет предложено пройти текущий уровень с начала. Нужно помнить о том, что по истечении двадцати попаданий в один мяч этот самый мяч по-прежнему будет падать вниз, и его по-прежнему нужно будет поддерживать на весу. Таким образом, все мячики остаются активными в сцене на протяжении уровня, что придаст игре динамику.
Подсчет попаданий в каждый мячик мы бу-
дем вести на табло (рис. 21.6). Это табло размещается в левом верхнем углу экрана с отступом от его краев по 80 пикселей для каждой оси. Не забывайте о возможных искажениях текста на экране телевизора, да и сам текст должен быть значительно крупнее, чем в компьютерных играх (рис. 21.7).
В нашем табло нарисованы три мяча, и, как
Рис 216 Табло игры Уже говорилось, точка его вывода - это отступ
в 80 пикселей по двум осям. Три мячика, нарисованные на табло, соответствуют по цвету трем мячам, используемым в игре. Каждое попадание в мяч увеличит счетчик на единицу, и над каждым мячом будет рисоваться текущее количество попаданий в цель. По достижении цифры двадцать для одного или более мячей на табло дополнительно будет выводиться крестик, который рисуется точно поверх одного из мячей (рис. 21.6). В результате игрок будет знать, какой из мячей ему нужно подбивать меньше и на каких мячах Предыдущая Следующая
|