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

{

sprite[i].UpdateFrame(elapsed);

}

Проект Platform 179

MovePlatform();

MoveSpriteO;

base.Update(gameTime);

}

/// <summary>

/// Движение спрайта по вертикали

/// <summary>

public void MoveSprite()

{

for (int i = 0; sprite.Length > i;

{

sprite[i].spritePosition += sprite[i].speedSprite; if (sprite[i].spritePosition.Y > screenHeight)

{

sprite[i].spritePosition = new Vector2(rand.Next(5 0, screenWidth -

sprite[i].spriteTexture.Width / 12 - 50), -500);

}

}

}

/// <summary>

/// Движение ковра-самолета по экрану

/// <summary>

public void MovePlatform()

{

GamePadState currentState = GamePad.GetState(Playerlndex.One); if (currentState.IsConnected)

{

if (currentState.ThumbSticks.Left.X < -0.5f)

platform.spritePosition.X -= 15; else if (currentState.ThumbSticks.Left.X > 0.5f)

platform.spritePosition.X += 15;

if (platform.spritePosition.X < 30) platform.spritePosition.X = 30; else if (platform.spritePosition.X > screenWidth — platform.spriteTexture.Width -30) platform.spritePosition.X = screenWidth — platform.spriteTexture.Width — 30;

}

}

/// <summary>

/// Рисуем на экране

/// <summary>

protected override void Draw(GameTime gameTime)

{

graphics.GraphicsDevice.Clear(Color.Black); spriteBatch.Begin(SpriteBlendMode.AlphaBlend);

spriteBatch.Draw(background, new Vector2(0, 0), Color.White);

180 Работа с джойстиком

for (int i = 0; sprite.Length > i; i++) {

sprite[i].DrawAnimationSprite(spriteBatch);

}

platform.DrawSprite(spriteBatch);

spriteBatch.End();

base.Draw(gameTime);

}

} }

После того как вы откомпилируете и запустите проект Platform на приставке, вы увидите в нижней части экрана телевизора или монитора ковер-самолет, который с помощью джойстика можно передвигать влево или вправо (рис. 9.4). С неба будут падать различные предметы и люди, которые вы должны ловить ковром, но на этом этапе, естественно, поймать вам ничего и никого не удастся, поскольку в игре еще не описан механизм игровых столкновений. Этим мы займемся в следующей главе, а в этой главе добавим еще несколько строк кода для того, чтобы реализовать в игре режим паузы.

9.3. Проект PauseGame

Вводим в проект PauseGame две новые булевы переменные, объявление которых происходит в области глобальных переменных, чтобы переменные были доступны на любом участке исходного кода класса Gamel.

Рис. 9.4. Движение ковра-самолета в игре

Проект PauseGame 181

private bool paused = false; private bool pauseKeyDown = false;


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

Горяченькое

Друзья

Hosted by uCoz