Allegro Intro – Primitiver (del 2)

06Jun07

Jag har tidigare bloggat om spelprogrammering och Allegro och tänkte förtsätta att göra så. Dagens blogg är ett steg tillbaka från min förra blogg om Allegro där jag använde mig av simpla bittmapar, dagens ämne är primitiver. och är den första (eller andra beroende på hur man räknar) i en serie om Allegro.

När man lär sig ett nytt språk “måste” man alltid skriva ett “hello-world-program“, när det gäller grafiskprogrammering brukar man börja med att skapa ett tomt fönster, men jag sätter ribban lite högre och skapar ett program som ritar en massa pixlar.


#include
#include "allegro.h"

using namespace std;

int x,y;

int MakeRandomColor();

void PixelSample();

int main()
{
allegro_init();

install_keyboard();
install_timer();
srand(time(NULL));

int ret=set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0,0);
if(ret!=0){
allegro_message(allegro_error);
return 1;
}

while(!key[KEY_ESC]){
PixelSample();
}
allegro_exit();
}
END_OF_MAIN()

void PixelSample()
{
int color = MakeRandomColor();
textprintf(screen, font, 0,0, makecol(255,255,255), "PIXEL (%dx%d) - Press ESC to quit.", SCREEN_W, SCREEN_H);
x=10+rand()%(SCREEN_W-20);
y=10+rand()%(SCREEN_H-20);

putpixel(screen, x,y, color);
}

int MakeRandomColor()
{
int red, green, blue, color;
red=rand()%255;
green=rand()%255;
blue=rand()%255;
color=makecol(red,green,blue);

return color;
}

Ovanstående exempel är hämtat ur “Game programming All In One” av Jonathan S. Harbour. Jag har dock ändrat lite på koden för att lättare lägga till de övriga exemplena.

Jag har valt att avnända C++ efter som det är det språk jag själv föredrar att använda. Mitt första exempel ritar bara ut en massa pixlar med hjälp av putpixel.

Syntaxen för putpixel:
putpixel(BITMAP *bmp, int x, int y, int color);

//Fredrik



No Responses Yet to “Allegro Intro – Primitiver (del 2)”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: