Категории раздела
Программирования [69]
разные языки программирования
Создания игр [10]
Статьи о создании игр
Движки [0]
Статьи о программах для создания игр
Игры [1]
Статьи об играх
Приложения (софт) [0]
Програми в помощь игроделу
Главная » Статьи » Создания игр

Своя игра за день (часть 2)
В прошлом уроке я рассмотрел простейший пример - подключение и запуск GEGE, а в этом уроке я покажу как вывести спрайт. 

За основу будем использовать текст из прошлого урока. 


Code

/* 
Файл main.cpp 
*/ 

#include <windows.h> 
#include <gege.h> 

#pragma comment(lib,"gege.lib") 

GEGE* g; 

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) 

  g=nGEGE(); 

  g->Engine_Init("Lesson 1: Begin!",800,600,0); 
  g->Engine_Start(0); 
  g->Engine_Release(); 

  return 0; 
}



Скажу сразу, что нам нужно подключить ещё 1 файл (esprite.h) и библиотеку (gegeh.lib). 


Потому что это статистическая библиотека в которой хранятся дополнительные классы движка. 


Code
#include <esprite.h> 
#pragma comment(lib,"gegeh.lib")


Теперь нам нужно создать функцию, которую движок будет выполнять каждый кадр: 

Code

bool MyRenderFunc(float dt) 

return 0; 



Функция пока что ничего не делает, но это не на долго... 

Теперь нужно заменить: 
Code
g->Engine_Start(0);

на 
Code
g->Engine_Start(MyRenderFunc);


Теперь движок будет выполнять эту функцию каждый кадр, хоть она и ничего не делает... Давайте ка выведем спрайт! Для этого нам нужно: 
а) Загрузить текстуру для спрайта 
б) Создать спрайт 
в) Рисовать спрайт каждый кадр 

Ну что бы загрузить текстуру, её нужно сначала объявить: 
Code
ETEXTURE t;

И загрузить сразу после инициализации движка: 
Code
t=g->Texture_Load("texture.png");


Ну это вроде есть... Теперь нужно разобраться со спрайтами... 
Объявляем указатель на спрайт: 
Code
ESprite *spr;

И создаем его после загрузки текстуры: 
Code

/* 
t - текстура 
0, 0 - начало координат текстуры 
64, 32 - размеры 
*/ 
spr=new ESprite(t,0,0,64,32);


Ну вот теперь нужно изменить саму функцию рисования, что бы хоть что-то рисовалось! 

Добавляем в тело функции MyRenderFunc следующее: 
Code
g->Render_BeginScene(); 
g->Render_ClearScene(100,100,100); 
g->Render_EndScene();


1 строка - начинаем рисовать 
2 строка - очищаем окно в RBG цвет (100, 100, 100) 
3 строка - заканчиваем рисование и выводим на экран результат 

Теперь нужно нарисовать наш спрайт, а для этого после очистки введем: 
Code

spr->Render(0,0); 


Это нарисует наш спрайт в верхнем левом углу. Ну вот собственно и всё! Исходный код прилагается... 



Code

#include <windows.h> 
#include <gege.h> 
#include <esprite.h> 

#pragma comment(lib,"gege.lib") 
#pragma comment(lib,"gegeh.lib") 

GEGE* g; 
ETEXTURE t; 
ESprite *spr; 

bool MyRenderFunc(float dt) 

g->Render_BeginScene(); 
g->Render_ClearScene(100,100,100); 
spr->Render(0,0); 
g->Render_EndScene(); 
return 0; 


int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int) 

g=nGEGE(); 

g->Engine_Init("Lesson 2: Render!",800,600,0); 
t=g->Texture_Load("texture.png"); 
spr=new ESprite(t,0,0,64,32); 
g->Engine_Start(MyRenderFunc); 
g->Engine_Release(); 

return 0; 
Категория: Создания игр | Добавил: graimp (17.11.2011)
Просмотров: 484 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Наш опрос
На каком языке лучше программировать
Всего ответов: 38
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0