Tvorba aplikácii v C++

Čo nás čaká

Prvé kroky programátora

Programátor na vlastných nohách

Ako uniknúť z bludného kruhu?

Štandardné knižnice I.

Štandardné knižnice II.

Obyčajná aplikácia

Nie

Spracovanie vstupu

Spracovanie výstupu

Ťažký je život programátora

Interaktívne aplikácie

Knižnice

Allegro

Allegro I.

Allegro II.

Allegro III.

Allegro -- aplikácia

Programovanie -- základ I.

Programovanie -- základ II.

Programovanie -- grafika I.

Programovanie -- grafika II.

Programovanie -- grafika III.

Programovanie -- grafika IV.

Programovanie -- grafika V.

Programovanie -- grafika VI.

Programovanie -- klávesnica I.

Programovanie -- klávesnica II.

Programovanie -- klávesnica III.

Programovenie -- časovač I.

Programovanie -- časovač II.

Programovanie -- časovač III.

Programovanie -- myš I.

Programovanie -- myš II.

Programovanie -- text

Ďalšie vlastnosti

Knižnice na Allegrom

Zdroje

Kompilácia

SDL

SDL

SDL -- aplikácia

SDL rozdiely

Programovanie -- základ

Programovanie -- grafika I.

Programovanie -- grafika II.

Programovanie -- grafika III.

Programovanie -- grafika IV.

Programovanie -- grafika V.

Programovanie -- klávesnica

Programovenie -- časovač

Programovanie -- myš

Programovanie -- text

Ďalšie vlastnosti

Knižnice nad SDL

Zdroje

Kompilácia

ClanLib game SDK

ClanLib game SDK

ClanLib -- aplikácie

ClanLib -- popis I.

ClanLib -- popis II.

Programovanie -- základ

Programovanie -- grafika I.

Programovanie -- grafika II.

Programovanie -- GUI I.

Prgramovanie -- GUI II.

Programovanie -- GL

Ďalšie vlastnosti

Zdroje

Kompilácia

Games for Linux

GUI

Knižnice a prostredia

QT

QT

QT -- platformy

QT -- moduly I.

QT -- Canvas Module

QT -- IconView Module

QT -- Table Module

QT -- Designer

QT -- kompilácia

QT -- Linguist

QT -- Assistant

QT -- zdroj

KDE

Opie

FLTK

FLTK -- platformy

FLTK -- vlastnosti

FLTK -- spracovanie udalostí

FLUID

FLTK -- zdroj

GTK

GTK

GTK II.

GTK -- zdroj

Mesa

Mesa

Mesa

Platformova nezávislosť

Pár rád do života

Projekt

C#

Ďakujem za pozornosť

Doplňujúce informácie k prednáške

Články

Allegro -- Hry nie len pod Linux
Allegro -- Kompilácia a spúšťanie
Allegro -- programovanie I
Knižnica Hermes
QT designer
Fast Light Tool Kit

Príklady implementácie v Allegre

example-allegro.zip
example-allegro.tar.gz

Allegro I


#include <allegro.h>

PALETTE pal;
BITMAP *obrazok;

int main()
{
	allegro_init();
	install_keyboard();

	set_color_depth(16);
	set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);

	clear(screen);

	obrazok = load_tga("obrazok.tga", pal);
	draw_sprite(screen, obrazok, 10, 10);

	clear_keybuf();
	readkey();

	remove_keyboard();
	allegro_exit();
	return 0;
}

END_OF_MAIN();

Allegro II


#include <allegro.h>

PALETTE pal;
BITMAP *obrazok;

int main()
{
	allegro_init();
	install_keyboard();

	set_color_depth(16);
	set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);

	clear(screen);

	obrazok = load_tga("obrazok.tga", pal);

	do {
		if(key[KEY_SPACE]) {
			draw_sprite(screen, obrazok, 10, 10);
		} else {
			clear(screen);
		}

	} while(!key[KEY_ESC]);

	remove_keyboard();
	allegro_exit();
	return 0;
}

END_OF_MAIN();

Allegro III



#include <allegro.h>

volatile int counter;
            

void my_timer_handler()
{
	counter++;
}  
END_OF_FUNCTION(my_timer_handler);



PALETTE pal;
BITMAP *obrazok;
int waiting_time;
int x, y;

int main()
{
	allegro_init();
	install_timer();
	install_keyboard();

	LOCK_VARIABLE(counter);
	LOCK_FUNCTION(my_timer_handler);

	install_int_ex(my_timer_handler,BPS_TO_TIMER(10));
	waiting_time = counter;

	x = y = 100;

	set_color_depth(16);
	set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);

	clear(screen);

	obrazok = load_tga("obrazok.tga", pal);

	do {
		if(key[KEY_LEFT]) 	{ x-= 5; }
		if(key[KEY_RIGHT])	{ x+= 5; }
		if(key[KEY_UP])		{ y-= 5; }
		if(key[KEY_DOWN])	{ y+= 5; }
		
		clear(screen);
		draw_sprite(screen, obrazok, x, y);
		
		do {
		} while(waiting_time > counter);

		waiting_time = counter + 1;
		
	} while(!key[KEY_ESC]);

	remove_keyboard();
	remove_timer();
	allegro_exit();
	return 0;
}

END_OF_MAIN();

Allegro IV


#include <allegro.h>

#define WHITE 63000

volatile int counter;
            

void my_timer_handler()
{
	counter++;
}  
END_OF_FUNCTION(my_timer_handler);



PALETTE pal;
BITMAP *obrazok;
int waiting_time;

int main()
{
	allegro_init();
	install_timer();
	install_keyboard();
	install_mouse();

	LOCK_VARIABLE(counter);
	LOCK_FUNCTION(my_timer_handler);

	install_int_ex(my_timer_handler,BPS_TO_TIMER(30));
	waiting_time = counter;

	set_color_depth(16);
	set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);

	clear(screen);

	obrazok = load_tga("obrazok.tga", pal);

	do {
		clear(screen);
		
		textprintf(screen, font, 10, 10, WHITE, "X=%d, Y=%d, Button=%d",
				mouse_x, mouse_y, mouse_b);

		draw_sprite(screen, obrazok, mouse_x, mouse_y);
		
		do {
		} while(waiting_time > counter);

		waiting_time = counter + 1;
		
	} while(!key[KEY_ESC]);

	remove_mouse();
	remove_keyboard();
	remove_timer();
	allegro_exit();
	return 0;
}

END_OF_MAIN();