Программирование игр для Windows. Советы профессионала


«Animotion» - часть 6


Это как раз и происходит из-за применения второго метода. Мы должны принести в жертву либо время, либо память. Выбор как всегда за вами.

Чтобы показать вам пример скроллинга, я написал программу, которая создает игровое пространство размером 640х100 пикселей. Я двигаю окно по изображению мира игры и передаю его содержимое в середину экрана. В этой игре мир состоит из звезд и гористого горизонта. (Этот пейзаж немного напоминает игру Defender.) Перемещая с помощью клавиатуры окно просмотра вправо и влево, вы можете прокрутить весь пейзаж. Листинг 7.8 содержит текст этой программы, которая называется DEFEND.С.

Листинг 7.8. Пример прокрутки (DEFEND.C).

// ВКЛЮЧАЕМЫЕ ФАЙЛЫ ////////////////////////////////////////

#include <stdio.h>

#include <math.h>

#include <graph.h>

#inciude <malloc.h>

#include <memory.h>

#include <string.h>

// ОПРЕДЕЛЕНИЯ ///////////////////////////////////////////

#define SCREEN_WIDTH      (unsigned int)320

#define SCREEN_HEIGHT     (unsigned int)200

// ГЛОБАЛЬНЫЕ

ПЕРЕМЕННЫЕ

////////////////////////////////////////

unsigned char far *video_buffer = (char far *)0xA0000000L;//указатель

на видеобуфер

unsigned char far *double_buffer = NULL;

// ФУНКЦИИ /////////////////////////////////////////////////

void Show_View_Port(char far *buffer,int pos)

{     

// Копирование части дублирующего буфера на экран

unsigned int y,double_off, screen_off;

// нужно переместить 100 строк, перемещаем их построчно

for (y=0; у<100; у++) {

// расчет начального смещения дублирующего буфера

//у

* 640 +pos

double_off = ((у<<9) + (у<<7) + роs);

// расчет начального смещения в видеобуфере

// у * 320 + 80

screen_off = (((у+50)<<8) + ((у+50)<<6) + 80);

// перемещение данных

_fmemmove ((char far *)&video_buffer[screen off],

(char far *)&double_buffer[double_off],160);

} // конец

цикла for

} // конец Show View_Port ////////////////////////////////////////////////////////////////




Начало  Назад  Вперед



Книжный магазин