Предыдущая Следующая
switch (state) {
case 1:
spriteBatch.Draw(cursor, new Vector2(x / 2 - cursor.Width / 2, y / 2 - 115), Color.White); break;
case 2:
spriteBatch.Draw(cursor, new Vector2(x / 2 - cursor.Width / 2, y / 2 - 65), Color.White); break;
case 3:
spriteBatch.Draw(cursor, new Vector2(x / 2 - cursor.Width / 2, y / 2 - 15), Color.White); break;
case 4:
spriteBatch.Draw(cursor, new Vector2(x / 2 - cursor.Width / 2, y / 2 + 30), Color.White); break;
case 5:
sprlteBatch.Draw(cursor, new Vector2(x / 2 - cursor.Width / 2, y / 2 + 80), Color.White);
352 Последние штрихи
break;
}
Если вы не совсем разобрались с расчетами позиций подложки на экране, то возьмите обычный листок бумаги и карандаш. Нарисуйте виртуальный экран телевизора и проследите за изменениями позиций желтой текстуры.
spriteBatch.Draw(screen, new Vector2(x / 2 - screen.Width / 2, y / 2 — screen.Height / 2), Color.White); for (int i = 0; hole.Length > i; {
spriteBatch.Draw(hole[i], position[i], Color.White);
}
spriteBatch.End();
graphics.GraphicsDevice.RenderState.DepthBufferEnable = true;
view = Matrix.CreateLookAt(new Vector3(0.0f, 0.0f, 260.0f), Vector3.Zero,
Vector3.Up);
proj = Matrix.CreatePerspectiveFieldOfView(FOV, aspectRatio, nearClip, farClip);
angle += (float)(gameTime.ElapsedGameTime.TotalSeconds * 1.0f); rotationMatrixY = Matrix.CreateRotationY((float)angle); rotationMatrixZ = Matrix.CreateRotationZ((float)angle); for (int i = 0; ball.Length > i;
{
world = Matrix.CreateTranslation(ball[i].position); ball[i].DrawModel(world * rotationMatrixY * rotationMatrixZ, view, proj);
}
} } }
21.5. Смена игровых состояний в классе Game1
Для смены игровых состояний в классе Game1 мы применяем структуру CurentGameState и структурную переменную gameState. До этого момента эта переменная нас «выкидывала» сразу в игровой процесс. Теперь пришла пора изменить ее значение, которое будет запускать титульную заставку.
CurentGameState gameState = CurentGameState.SplashScreen;
С титульной заставки по нажатии на джойстике кнопки с буквой А и смене значения переменной gameState с CurentGameState.SplashScreen на значение CurentGameState.GameScree в игре включится показ меню. В дальнейшем для смены состояний игры нам достаточно присвоить переменной gameState необходимое значение, и мы выберем то или иное игровое состояние. Теперь поговорим о механизме смены состояний и о показе заставок.
Смена игровых состояний в классе Gomel Предыдущая Следующая
|