Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Листинг 17.1. Файл заголовка демонстрационной программы циклического скроллинга (PARAL.H).

Листинг 15.1. Секция определений WarEdit. | Листинг 15.2. Обнаружение нажатия кнопки. | ГРАФИЧЕСКОЕ ОФОРМЛЕНИЕ ИГРЫ | Теплые цвета Холодные цвета | Последовательный порядок цветов | Применение палитр других изображений | Специальные соображения по поводу цифрового видео | Переходы от одного кирпичика к другому | Двери и лифты | Специальные эффекты и движущиеся стены |


Читайте также:
  1. AvrStudio в режиме отладки программы
  2. II. НОРМАТИВНОЕ ПРАВОВОЕ ОБЕСПЕЧЕНИЕ деятельности учреждений образования, реализующих образовательные программы общего среднего образования
  3. II. Требования к результатам освоения основной образовательной программы начального общего образования
  4. II. ТРЕБОВАНИЯ К СТРУКТУРЕ ОСНОВНОЙ ОБРАЗОВАТЕЛЬНОЙ ПРОГРАММЫ ДОШКОЛЬНОГО ОБРАЗОВАНИЯ И ЕЕ ОБЪЕМУ
  5. III. Методический раздел программы
  6. III. Требования к структуре основной образовательной программы начального общего образования
  7. IV. Сроки реализации Программы в целом, контрольные этапы и сроки их реализации с указанием промежуточных показателей

//

//Paral.h - данный заголовок определяет константы и структуры

//данных, используемые в демонстрационной программе

// параллакса

#define KEYBOARD 0х09 //

//Коды клавиатуры для прерывания INT 9h

#define RIGHT_ARROW_PRESSED 77

#define RIGHT_arrow_rel 205

#define LEFT_ARROW_PRESSED 75

#define LEFT_ARROW_REL 203

#define ESC_PRESSED 129

#define UP_ARROW_PRESSED 72

#define UP_ARROW_REL 200

#define DOWN_ARROW_PRESSED 80

#define down_arrow_rel 208

#define VIEW_WIDTH 320

#define VIEW_HEIGHT 150

#define MEMBLK VIEW_WIDTH*VIEW HEIGHT

#define TRANSPARENT 0 // цветовые коды

#define TOTAL_SCROLL 320

enum (NORMAL, RLE},;

enum (FALSE,TRUE};

typedef struct

{

char manufacturer; /* Всегда 0 */

char version; /* Всегда 5 для 256-цветных файлов */

char encoding; /* Всегда 1 */

char bits_per_pixel;

/* Должно быть равно 8 для 256-цветных файлов */

int xmin, ymin; /* Координаты левого верхнего угла */

int xmax,ymax; /* Высота и ширина образа */

int hres; /* Горизонтальное разрешение образа */

int vres; /* Вертикальное разрешение образа */

char palettel6[48];

/* палитра EGA; не используется для 256-цветных файлов */

char reserved; /* зарезервировано */

char color planes; /* цветовые планы */

int bytes_per_line;

/* количество байт в каждой строке пикселей */

int palette_type;

/* Должно быть равно 2 для цветовой палитры */

char filler[58]; /* Не используется */

} PcxHeader;

typedef struct

{

PcxHeader hdr;

char *bitmap;

char pal[768];

unsigned imagebytes,width,height;

} PcxFile;

#define PCX_MAX_SIZE 64000L enum {PCX_OK,PCX_NOMEM,PCX_TOOBIG,PCX_NOFILE};

#ifdef __cplusplus

extern "C" {

#endif

int ReadPcxFile(char *filename,PcxFile *pcx);

void _interrupt NewInt9(void);

void RestoreKeyboard(void);

void InitKeyboard(void);

void SetAllRgbPalette(char *pal);

void InitVideo (void);

void RestoreVideo(void);

int InitBitmaps(void); void FreeMem(void);

void DrawLayers(void);

void AnimLoop(void);

void Initialize(void);

void CleanUp (void);

void OpaqueBIt (char*, int, int, int);

void TransparentBit(char *,int,int,int);

#ifdef __cplusplus

} #endif

Программа из Листинга 17.2 (PARAL.C) демонстрирует повторяемое смещающееся изображение. Движущаяся картинка показывает облачное небо под солнцем. Хотя изображение и выглядит непрерывно меняющимся, но на самом деле оно неподвижно.

Наиболее важной частью программы является функция OpaqueBIt(). Она выводит левую и правую части изображения в буфер системной памяти, основываясь на значении LeftHalf. Когда построение закончено, содержимое буфера копируется на экран.

Запустив оттранслированную программу, используйте курсорные клавиши «влево» и «вправо» для изменения направления скроллинга. Для выхода из программы нажмите Esc. При этом она вычислит и покажет скорость анимации кадра. На машине с процессором 386SX/25 скорость выполнения составила около 35 кадров в секунду при размерах демонстрационного окна 320х100 Пикселей.


Дата добавления: 2015-07-12; просмотров: 81 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
ТЕХНИКА СОЗДАНИЙ ПАРАЛЛАКСА| Листинг 17.2 Демонстрационная программа повторяемого смещения.

mybiblioteka.su - 2015-2024 год. (0.007 сек.)