Автор работы: Пользователь скрыл имя, 19 Декабря 2011 в 20:41, лабораторная работа
Цель
Научится создавать простые 2D игры по средствам Microsoft XNA – набора инструментов с управляемой средой времени выполнения (.NET).
Министерство образования и науки Российской Федерации
Государственное образовательное учреждение высшего
профессионального образования
ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Факультет автоматики и вычислительной техники
Кафедра электронных
вычислительных машин
Создание 2D
игры по средствам XNAGameStudio 4.0
Отчет
Лабораторная работа №1 по дисциплине
«Теория вычислительных
процессов»
Киров 2011
Цель
Научится
создавать простые 2D игры по средствам
Microsoft XNA – набора инструментов с управляемой средой времени
выполнения (.NET).
Выполнение
лабораторной работы
При запуске
игры появляется главное меню, состоящее
из 3х пунктов: Новая игра, Продолжить
(при запуске не доступно) и выход.
Начав новую игру, пользователь попадает в игровой уровень, в котором имеется определенное количество алмазов, собрав которые, пользователь попадает на следующий уровень. За каждый собранный алмаз игроку начисляется десять очков, очки суммируются всю игру и обнуляются при смерти главного персонажа. Всего в игре предусмотрено 3и уровня.
Также на прохождение
уровня игроку дается 4 минуты, по истечению
которых текущий уровень
На каждом
уровне предусмотрены «охранники алмазов»,
при встрече с которыми персонаж
пользователя погибает и уровень начинается
с начала.
Для большей
интерактивности в игре предусмотрены
сменные на каждом уровне фоновые
изображения, а также озвучка
прыжка главного персонажа, его смерть
при встрече с «охранниками алмазов»,
озвучка самих «охранников» и
бесконечное исполнение фоновой музыки.
Текст игры
Главныймодуль Game1.cs
using System;
usingSystem.Collections.
usingSystem.Linq;
usingMicrosoft.Xna.Framework;
usingMicrosoft.Xna.Framework.
usingMicrosoft.Xna.Framework.
usingMicrosoft.Xna.Framework.
usingMicrosoft.Xna.Framework.
usingMicrosoft.Xna.Framework.
usingMicrosoft.Xna.Framework.
using Microsoft.Xna.Framework.Net;
usingMicrosoft.Xna.Framework.
using System.IO;
usingLevelGame.MenuSystem;
namespaceLevelGame
{
///<summary>
///This is the main type for your game
///</summary>
publicclassGame1 : Microsoft.Xna.Framework.Game
{
GraphicsDeviceManager graphics;
SpriteBatchspriteBatch;
Texture2D blockTexture1;
Texture2D blockTexture2;
Texture2DidleTexture;
Texture2DrunTexture;
Texture2DjumpTexture;
Texture2DgemTexture;
Texture2DMenuWall;
Texture2D Level1;
Texture2D Level2;
Texture2D Level3;
Texture2DenemyIdleTexture;
Texture2DenemyRunTexture;
SpriteFont font;
publicSoundEffect sound;
SoundEffect music;
SoundEffectsoundjump;
SoundEffectnewGame;
SoundEffectPlayerKilled;
publicSoundEffectJumpEnemy;
SoundEffectInstancemusicInstan
AnimatedSprite hero;
doublecountdownTimer; //Seconds until
inttimeLevel
= 240;
publicint Width;
publicint Height;
publicint time;
List<Block> blocks;
List<AnimatedSprite> enemies;
staticintScrollX;
publicintlevelLength;
intcurrentLevel=1;
List<Gem> gems;
KeyboardStateoldState;
int Score;
Menumenu;
GameStategameState = GameState.Menu;
public Game1()
{
graphics = newGraphicsDeviceManager(this)
Content.RootDirectory = "Content";
Width = graphics.
Height = graphics.
}
publicboolCollidesWithLevel(Re
{
foreach (Blockblockin blocks)
{
if (block.rect.Intersects(rect))
returntrue;
}
returnfalse;
}
publicRectangleGetHeroRect()
{
returnhero.rect;
}
publicstaticRectangleGetScreen
{
RectanglescreenRect = rect;
screenRect.Offset(-ScrollX, 0);
returnscreenRect;
}
publicvoid Scroll(int dx)
{
if (ScrollX + dx >= 0 &&ScrollX + dx <= levelLength - 800)
ScrollX += dx;
}
publicboolWillFallDown(Rectang
{
Rectangle r = rect;
r.Offset(0, 5);
if (!CollidesWithLevel(r))
returntrue;
elsereturnfalse;
}
publicvoidCreateLevel()
{
// currentLevel++;
countdownTimer = timeLevel;
if (currentLevel> 3)
currentLevel = 1;
newGame.Play();
blocks = newList<Block>();
gems = newList<Gem>();
enemies = newList<AnimatedSprite>();
string[] s = File.ReadAllLines("content/
RectangleheroRect = newRectangle(0, Height - idleTexture.Height - 40, 60, 60);
hero.rect = heroRect;
levelLength = 40 * s[0].Length;
int x = 0;
int y = 0;
foreach (stringstrin s)
{
foreach (char c instr)
{
Rectanglerect = newRectangle(x, y, 40, 40);
if (c == 'X')
{
Blockblock = newBlock(rect, blockTexture1);
blocks.Add(block);
}
if (c == 'Y')
{
Blockblock = newBlock(rect, blockTexture2);
blocks.Add(block);
}
if (c =='G')
{
RectanglegemRect = newRectangle(x+10, y+5, 20,20);
Gemgem = newGem(gemRect, gemTexture, this);
gems.Add(gem);
}
if (c == 'A')
{
RectangleenemyRect = newRectangle (x, y-25,60,60);
AnimatedSprite enemy = newAnimatedSprite(enemyRect, enemyIdleTexture, enemyRunTexture, enemyRunTexture, this);
Информация о работе Создание 2D игры по средствам XNAGameStudio 4.0