Спонсор: Microsoft
Санкт-Петербургский государственный политехнический университет
Опубликован: 09.12.2013 | Доступ: свободный | Студентов: 2056 / 30 | Длительность: 06:23:00
Специальности: Программист
Самостоятельная работа 1:

Практика. Перемещение объектов в 2D пространстве

< Лекция 1 || Самостоятельная работа 1: 123
Аннотация: Целью данной работы является получение базовых навыков работы с 2D графикой и игровым временем.
Ключевые слова: приложение, спрайт, millisecond

Задание на работу:

Создать XNA приложение, установить размеры окна. Нарисовать в левом верхнем углу экрана спрайт произвольного размера (лучше установить достаточно большой размер). При прохождении некоторого количества времени (либо при нажатии на кнопку на клавиатуре) спрайт должен переместиться в правый верхний угол, затем в правый нижний угол, левый нижний угол и, наконец, в центр экрана, причем центр спрайта должен совпасть с центром экрана. Далее, можно либо зациклить перемещение, либо оставить спрайт в центре экрана.

Дополнительные материалы к лабораторной работе можно скачать здесь.

Теоретическая часть:

Основы 2Д графики

Перед тем как перейти к работе следует вспомнить теоретические основы. В двумерной графике каждый пиксель характеризуется координатами и цветом. На экране монитора (а также в любом компьютерном изображении, например, картинке, созданной в Paint) началом координат является левый верхний угол, ось X направлена слева направо, а ось Y сверху вниз. Координаты пикселя отсчитываются от 0, соответственно левый верхний угол экрана имеет координаты {0,0}, а правый нижний – {MaxX-1, MaxY-1}, где MaxX, MaxY – разрешение экрана.

public Game1()
{
    graphics = new GraphicsDeviceManager(this);
    Content.RootDirectory = "Content";

    graphics.PreferredBackBufferWidth = 640;
    graphics.PreferredBackBufferHeight = 480;
}

В данном примере ширина устанавливается равной 640, а высота – 480.

Цвет пикселя составляется из трех компонент: красной, синей и зеленой (также имеется альфа-канал, который отвечает за прозрачность данного пикселя для изображений, для пикселя монитора альфа составляющая не имеет смысла). Значения цвета по каждой из этих компонент лежат в диапазоне от 0 до 255 либо от 0 до 1. Так, если значения каждой из компонент равняются 255, получается белый цвет, а если значения равняются 0, то получается черный свет.

Для работы с цветами в XNA существует класс Color, который поддерживает огромное количество стандартных цветов (например, Color.Red – красный, Color.Black - черный), а также позволяет создавать собственные цвета.

< Лекция 1 || Самостоятельная работа 1: 123
Сергей Попов
Сергей Попов

Компелятор говорит что у StorageContainer нет свойства TotalStorage, как решить эту проблему ?

ost dem
ost dem

не работает 

        AudioEngine engine;
        WaveBank waveBank;
        SoundBank soundBank;

пишет

Ошибка    2    Не удалось найти имя типа или пространства имен "AudioEngine" (пропущена директива using или ссылка на сборку?)    

 

так же не работает

using Microsoft.Xna.Framework.Xact;

пишет 

Ошибка    1    Имя типа или пространства имен "Xact" отсутствует в пространстве имен "Microsoft.Xna.Framework" (пропущена ссылка на сборку?)   

как это исправить?