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

Решать эту проблему можно многими способами, а не только тем способом, что я вам показал. Можно добавить еще одну конструкцию операторов if/else и менять состояние переменной cursorState, как только курсор мыши убирается с одной из табличек, либо отказаться от этой переменной вовсе и слегка усложнить весь код.

Полный исходный код класса Gamel вы найдете в листинге 12.3, а код проекта MenuCursor - на компакт-диске в папке Code\Chapter12\MenuCursor. Дополнительно я добавил в исходный код механизм, изменяющий скорость падающих предметов после их столкновения с платформой и нижней частью экрана.

//=========================================================================

/// <summary>

/// Листинг 12.3

/// Исходный код к книге:

/// "Программирование компьютерных игр под Windows в XNA Game Studio Express" /// Автор книги: Горнаков С. Г.

/// Глава l2

/// Проект: MenuCursor /// Класс: Gamel /// Работа с мышей /// <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;

188 Создаем игровое меню

using Microsoft.Xna.Framework.Storage; #endregion

namespace MenuCursor

{

public class Game1 : Microsoft.Xna.Framework.Game

{

GraphicsDeviceManager graphics; ContentManager content; KeyboardState keyboardState; SpriteBatch spriteBatch; Sprite[] sprite = new Sprite[5]; private Texture2D background1; private Texture2D background2; Random rand = new Random(); int j = 0; Sprite platform; private bool paused = false; private bool pauseKeyDown = false; public BoundingBox bbplatform;

public BoundingBox[] bb = new BoundingBox[5]; BitmapFont font;

int score0, score1, score2, score3, score4; Menu menu;

private bool menuState; private int cursorState;

Sprite mouse; MouseState mouseState; public BoundingBox bbMouse; public BoundingBox bbCursorGame; public BoundingBox bbCursorExit;

/// <summary> /// Конструктор /// <summary> public Game1()

{

graphics = new GraphicsDeviceManager(this); content = new ContentManager(Services); graphics.PreferredBackBufferWidth = 1024; graphics.PreferredBackBufferHeight = 7 68; graphics.PreferMultiSampling = false; graphics.IsFullScreen = true; for (int i = 0; sprite.Length > i;


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

Горяченькое

Друзья

Hosted by uCoz