• This is default featured slide 1 title

    Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by NewBloggerThemes.com.

  • This is default featured slide 2 title

    Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by NewBloggerThemes.com.

  • This is default featured slide 3 title

    Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by NewBloggerThemes.com.

  • This is default featured slide 4 title

    Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by NewBloggerThemes.com.

  • This is default featured slide 5 title

    Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.This theme is Bloggerized by NewBloggerThemes.com.

Allegro Lab II i primitivna While petlja

Image source: (cgcookie.com/2DSpaceShooter)

U ovom izdanju AllegroLab-a II pogledat ćemo na implementaciju i razvoj primitivne while petlje u programu kojim se sprite pomjera tipkovnicom u različitim pozicijama na zaslonu. Ovaj AllegroLabII je dio moje Allegro2D radionice u kojoj se izrađuje moja prva interaktivna 2D CometShooter igrica. Da ne dužim bespotrebno, pređimo na posao.

Izvorni tehnički članak,
Piše: Amar Tufo

Opis zadatka:

U ovom labu naš zadatak je da modifikujemo primjer programa Allegro_Bitmap tako da u izvornom kodu kreiramo timer event handler koji će nam omogučiti da se naš program izvršava svakih 60 sekundi na screen-u. Šta to znači? To znači da se objekti igrice, spritovi, animacije, slike, i fontovi ažuriraju i iscrtavaju svakih 60 puta u jednoj sekundi. Kako je to moguće postiči? Vrlo jednostavno! Sve što treba da uradimo jeste kreiranje FPS funkcije ili frames per second. Teoretski govoreči, naša igrica kada se jednom pokrene, korisnik će imati istu brzinu gameplay-a bez obzira na brzinu računala. Ovako u ovom tekstu, ukoliko nastavim dalje, mogao bih vas zbuniti. Pa da ne duljim, pogledajmo kako izgleda while petlja bez timer-a. Ali prije nego nastavimo, treba da znamo šta je to Allegro_Timer?

Allegro_Timer?

Dok igrate neke zahtjevne video igre, podrazumjeva se da vam je HD grafička karta i da je vaš računar barem 2 do 4 GB RAM-a jak. To znači da ćete za ove performanse dobiti podjednaku brzinu gameplay-a vaše igre i da ćete biti u stanju primjetiti velike razlike u FPS-u koji vaša igrica koristi. No, kada dođe do 2D video igara, jako je neophodno da takve igrice imaju svoj FPS jer će se večinom pokretati na slabijim računalima, to se i podrazumjeva. U programiranju video igre koristeči se Allegro bibliotekom unutar koje postoji funkcija Allegro_Timer koja developeru omogučava da vidi brzinu svoje igrice koju izrađuje i igra, a u isto vrijeme mu omogučava da igračima svoje igre dostavi brzinu od recimo 60 FPS-ova u sekundi bez obzira na slabe performanse test računala.

Ovaj lab je dio moje Allegro2D game dev serije pa ja stoga neću govoriti u detalje kako i na koji način kreirati cio projekat, jer podrazumjevam da ste ranije radili u C++-u ili u Visual C++ 2008 razvojnom okruženju i da ste već dosada napravili neke svoje aplikacije makar to bio i HelloWorld ili desktop aplikacija koja pritisko na taster pozdravlja korisnika nekom porukom. Ono što ću iznjeti u daljem djelu ovog članka jeste while petlja kao glavni dio ovog laba. Vidjet ćemo dvije while petlje i ukazati na njihove razlike kako bismo rješili naš problem sa pomjeranjem sprajta na zaslonu. Primjer veoma jednostavne while petlje je dat dolje ispod ovog teksta.


//main loop
 while(!exit)
 {
  ALLEGRO_EVENT ev;
  al_wait_for_event(event_queue, &ev);

  if(ev.type == ALLEGRO_EVENT_KEY_DOWN)
  {
   switch(ev.keyboard.keycode)
   {
   case ALLEGRO_KEY_ESCAPE:
    exit = true;
    break;
   }
  
  } 
U ovoj klasičnoj while petlji nema ništa tako bitno što je vrijedno pomena. Tu se, doduše, nalazi jedna swithc case funkcija koja zatvara aplikacije pritiskom tastera escape na tastaturi. While petlja ili game petlja je jako važan dio bilo koje igrice jer se u njoj provjerava unos s tastature, kontrole, razni drugi djelovi igrice kao što je rendering, animacije i još niz drugih stvari. A sada pogledajmo kako bi izgledala unapređena while petlja na primjeru iz opisa ovog teksta. Da se posjetimo, sprite mora da se pomjera jako glatko na zaslonu a ne step- by -step. Da bismo to postigli u tu svrhu je deklariran timer ili jednostavno FPS regulator. 

Prije nego li pogledamo kako cijela while petlja izgleda, pogledajmo izvorni kod Allegro_Bitmap programa kojeg treba da modifikujemo.  

//Allegro_Bitmap_App
//Developer: Amar Tufo
//8. October, 2015
//This sample demonstrates the use of bitmaps in Allegro
//and way of manipulating the bitmaps in actual programs
 
#include <allegro5\allegro.h>
#include <allegro5\allegro_primitives.h>
#include <allegro5\allegro_image.h>


int main()
{
//variables
 int width = 640;
 int height = 480;
 bool exit = false;

 int imageWidth = 0;
 int imageHeight = 0;

 int x = 0;
 int y = 0;
 
 //allegro variable
 ALLEGRO_DISPLAY *display = NULL;
 ALLEGRO_EVENT_QUEUE *event_queue = NULL;
 ALLEGRO_BITMAP *image = NULL;

 //program init
 if(!al_init())          //initialize Allegro
  return -1;

 display = al_create_display(width, height);   //create our display object

 if(!display)          //test display object
  return -1;

 //addon init
 al_install_keyboard();
 al_init_image_addon();

 image = al_load_bitmap("slika.png"); //local folder

 imageWidth = al_get_bitmap_width(image);
 imageHeight = al_get_bitmap_height(image);

 x = width / 2 - imageWidth / 2;
 y = height / 2 - imageHeight / 2;
       
        //installing event sources    
 event_queue = al_create_event_queue();
 al_register_event_source(event_queue, al_get_keyboard_event_source());
        
        //main loop starts here
 while(!exit)
 {
  ALLEGRO_EVENT ev;
  al_wait_for_event(event_queue, &ev);

  if(ev.type == ALLEGRO_EVENT_KEY_DOWN)
  {
   switch(ev.keyboard.keycode)
   { //allow user to exit the program
   case ALLEGRO_KEY_ESCAPE:
    done = true;
    break;
   case ALLEGRO_KEY_UP:
    y -= 10; 
    break;
   case ALLEGRO_KEY_DOWN:
    y += 10;
    break;
   case ALLEGRO_KEY_LEFT:
    x -= 10;
    break;
   case ALLEGRO_KEY_RIGHT:
    x += 10;
    break;
   }
  } //main loop ends here

  al_draw_bitmap(image, width / 2 - imageWidth / 2, height / 2 - imageHeight / 2, 0);
  al_draw_tinted_bitmap(image, al_map_rgba(255, 0, 0, .2),  x,  y, 0);

  al_flip_display();
  al_clear_to_color(al_map_rgb(0,0,0));
 }

 al_destroy_bitmap(image);
 al_destroy_event_queue(event_queue);
 al_destroy_display(display);      //destroy our display object

 return 0;
} 
Dakle, ovo je izvorni kod Allegro_Bitmap programa u kojem treba da napravimo modifikaciju tako da se sprajt na zaslonu pomjera koristeči FPS timer a ne step by step ili piksel po piksel. Ovako teoretski ne možete vidjeti šta to znači pa sam stoga pripremio i kratki video demo ovog programa u akciji kako biste vidjeli što je to FPS. 


Demonstracija pomjeranja sprajta na zaslonu bez upotrebe FPS-a

Glavna razlika u gornjem izvornom kodu jeste ta što program nema deklariran FPS event handler, odnosno da se program ne izvršava 'glatko' kako bi trebao. Da bi se ovo rješilo potrebno je deklarirati nekoliko manjih varijabli koje omogučavaju programu da se svi njegovi elementi pokreću ili iscrtavaju svakih 60 puta u jednoj sekundi. Dakle, FPS je po standartu jednak 60 sekundi pa stoga program koristi istu brzinu rada bez obzira na performanse vašeg računala na kojemu se program izvršava. 

Modifikacije koje treba da napravimo u gornjem izvornom kodu su sljedeće. Prvo trebamo da modifikujemo pomjeranje sprajta na zaslonu u samom izvornom kodu. Ne želimo nikako da nam se sprajt pomjera svakih 10 piksela ili korak po korak. Naš cilj je da se sprajt pomjera onoliko dugo po zaslonu koliko mi držimo određene tastere (strelice) naše tastature, tek onda kada otpustimo naše strelice sprajt će prestati sa pomjeranjem. Kako sam već i rekao, prvu stvar koju radimo jeste deklaracija FPS varijable (int FPS = 60;). Ova varijabla je kreirala FPS od 60 sekundi. Sada treba da deklariramo poseban pokazivać na timer. Srećom, Allegro u sebi ima timer handler koji nam omogučava da ostvarimo željeni efekat uz jako malo koda. Evo i kako.

Timer će nam omogučiti adekvatnu primjenu FPS varijable u našem kodu pa bi se naš sprajt trebao brzo pomjerati na zaslonu bez obzira na performanse računala. Deklaracija timer-a je sljedeća:  ALLEGRO_TIMER *timer = NULL; Ovde kako vidimo imamo pokazivać po imenu timer na varijablu Allegro_Timer. Pokazivači su jako bitan segment u programiranju bilo video igara pa tako i drugih aplikacija pa je njihovo razumjevanje od prijeke važnosti. Nakon deklaracije Allegro_Timer varijable trebali bismo registrovati izvor za ovu varijablu a to radimo sljedećom linijom koda: al_register_event_source(event_queue, al_get_timer_event_source(timer)); Ovom linijom koda smo kazali Allegru koji izvor akcije koristimo u doslovnom smislu. Nakon kreiranja i potvrde korištenja Timer varijable potrebno je da uključimo timer ovom linijom koda: al_start_timer(timer)
 
Glavni dio ovog koda jeste naša sređena while petlja koju ovdje prenosim u cjelosti uz popratne komentare pa ću komentirati u nastavku while petlju za pojedine nejasnoće. 
 
//while loop start's here
  while(!exit)
 {
  //creating allegro event
  ALLEGRO_EVENT ev;
  al_wait_for_event(event_queue, &ev);
  
  //if keyboard key is pressed then
  if(ev.type == ALLEGRO_EVENT_KEY_DOWN)
  {
   switch(ev.keyboard.keycode)
   {
   case ALLEGRO_KEY_UP:
    keys[UP] = true;
 break;
   case ALLEGRO_KEY_DOWN:
  keys[DOWN] = true;
    break;
   case ALLEGRO_KEY_RIGHT:
   keys[RIGHT] = true;
    break;
   case ALLEGRO_KEY_LEFT:
    keys[LEFT] = true;
    break;
   }
  }
  //keep track of my keys
 else if(ev.type == ALLEGRO_EVENT_KEY_UP)
  {
   switch(ev.keyboard.keycode)
   {
   case ALLEGRO_KEY_UP:
    keys[UP] = false;
 break;
   case ALLEGRO_KEY_DOWN:
  keys[DOWN] = false;
    break;
   case ALLEGRO_KEY_RIGHT:
   keys[RIGHT] = false;
    break;
   case ALLEGRO_KEY_LEFT:
    keys[LEFT] = false;
    break; //if user press escape key
   case ALLEGRO_KEY_ESCAPE:
    exit = true; //than exit
    break; //if user press space key
   case ALLEGRO_KEY_SPACE:
    exit = true;//than exit
    break;
   }
  } 
 
  //closing window by pressing red X
  else if(ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE)
  { //while loop end's here
   exit = true; 
  } //using allegro_timer event handler
  else if(ev.type == ALLEGRO_EVENT_TIMER)
  {
    //move my square every 10 pixels
    y -= keys[UP] * 10;
    y += keys[DOWN] * 10;
    x -= keys[LEFT] * 10;
    x += keys[RIGHT] * 10;
   
  } 
Listing1: Primjer while petlje sa upotrebom FPS i Timer varijable

Ja sam večinu ovih linija koda prethodno iskomentarisao kako bi se snašao u budućim modifikacijama istog izvornog koda ukoliko bude bilo potrebe za njih. Nešto posebno da kažem nemam, ali se ovaj dio koda bitno razlikuje od onog gore koji je prikazan u ovom članku jer ovaj kod ima TIMER event handler koji sada automatski startuje program bez potrebe da se ćeka na određeni pritisak tastera na tastaturi kako bi se program pokrenuo. Osim toga, kako ćete u nastavku imati priliku da vidite, program se izvršava relativno brzo gdje koristi svoje resurse za rad pa se sprajt dosta brže pomjera na zaslonu. Cio izvorni kod konačnog rješenja ovog laba možete pogledati u nastavku.

 
//Allegro_Bitmap_App
//Developer: Amar Tufo
//12. October, 2015
//This sample demonstrates the use of bitmaps in Allegro
//and way of manipulating the bitmaps in actual programs
//by using FPS
 
#include <allegro5\allegro.h>
#include <allegro5\allegro_primitives.h>
#include <allegro5\allegro_image.h>

enum KEYS{UP, DOWN, LEFT, RIGHT};

int main()
{
 int width = 700;
 int height = 650;
 bool exit = false;
 bool keys[4] = {false, false, false, false};

 int imageWidth = 0;
 int imageHeight = 0;
 int x = 0;
 int y = 0;
 //int pos_x = width / 2;
 //int pos_y = height / 2;

 //creating speed regulation
 int FPS = 60;

  //float scale = 2;

 //float degree = 0;

 //Creating allegro variables
 ALLEGRO_DISPLAY *display = NULL;
 ALLEGRO_EVENT_QUEUE *event_queue = NULL;

 ALLEGRO_BITMAP *image = NULL;
 
 //Creating timer event handler
 ALLEGRO_TIMER *timer = NULL;


 //allegro init check
 if(!al_init())
  return -1;

 display = al_create_display(width, height);

 //check display initialisation
 if(!display)
  return -0;

 //addon init
 al_install_keyboard();
 al_init_primitives_addon();
 al_init_image_addon();

 //register timer event
 timer = al_create_timer(1.0 / FPS);

 //load image into memory 
 image = al_load_bitmap("slika.png");
 
 //determine width & height of image
 imageWidth = al_get_bitmap_width(image);
 imageHeight = al_get_bitmap_height(image);

 //initialising variables
 x = width / 2 - imageWidth / 2;
 y = height / 2 - imageHeight / 2;

 //registering event sources
 event_queue = al_create_event_queue();
 al_register_event_source(event_queue, al_get_keyboard_event_source());
 al_register_event_source(event_queue, al_get_timer_event_source(timer));
 al_register_event_source(event_queue, al_get_display_event_source(display));


 //start timer
  al_start_timer(timer);

  //while loop start's here
  while(!exit)
 {
  //creating allegro event
  ALLEGRO_EVENT ev;
  al_wait_for_event(event_queue, &ev);
  
  //if keyboard key is pressed then
  if(ev.type == ALLEGRO_EVENT_KEY_DOWN)
  {
   switch(ev.keyboard.keycode)
   {
   case ALLEGRO_KEY_UP:
    keys[UP] = true;
 break;
   case ALLEGRO_KEY_DOWN:
  keys[DOWN] = true;
    break;
   case ALLEGRO_KEY_RIGHT:
   keys[RIGHT] = true;
    break;
   case ALLEGRO_KEY_LEFT:
    keys[LEFT] = true;
    break;
   }
  }
  //keep track of my keys
 else if(ev.type == ALLEGRO_EVENT_KEY_UP)
  {
   switch(ev.keyboard.keycode)
   {
   case ALLEGRO_KEY_UP:
    keys[UP] = false;
 break;
   case ALLEGRO_KEY_DOWN:
  keys[DOWN] = false;
    break;
   case ALLEGRO_KEY_RIGHT:
   keys[RIGHT] = false;
    break;
   case ALLEGRO_KEY_LEFT:
    keys[LEFT] = false;
    break; //if user press escape key
   case ALLEGRO_KEY_ESCAPE:
    exit = true; //than exit
    break; //if user press space key
   case ALLEGRO_KEY_SPACE:
    exit = true;//than exit
    break;
   }
  } 
 
  //closing window by pressing red X
  else if(ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE)
  { //while loop end's here
   exit = true; 
  } //using allegro_timer event handler
  else if(ev.type == ALLEGRO_EVENT_TIMER)
  {
    //move my square every 10 pixels
    y -= keys[UP] * 10;
    y += keys[DOWN] * 10;
    x -= keys[LEFT] * 10;
    x += keys[RIGHT] * 10;
   
  }
  //draw on the screen if there are no other event to process
    al_draw_bitmap(image, width / 2 - imageWidth / 2, height / 2 - imageHeight / 2, 0);
    //drawing tinted image on screen
   al_draw_tinted_bitmap(image, al_map_rgba(125,100,100, .5), x, y, 0);
  //draw scaled image on the screen
  //al_draw_scaled_bitmap(image, 0, 0, imageWidth, imageHeight, x, y, imageWidth * scale, imageHeight * scale, 0);

  //draw rotated image to the center of the screen
  //al_draw_rotated_bitmap(image, imageWidth / 2, imageHeight / 2, width / 2, height / 2, degree * 3.14159 / 180, 0);
  
  //draw image on center of the screen
  //al_draw_bitmap(image, width / 2 - imageWidth / 2, height / 2 - imageHeight / 2, 0);

  al_flip_display();
  al_clear_to_color(al_map_rgb(0,0,0));

  }
  al_destroy_bitmap(image);
  al_destroy_event_queue(event_queue);
  al_destroy_display(display);

  return 0;
} 
Konačno rješenje Allegro_Lab-: Moving image by FPS and Timer on the screen (Video)

Zaključak:

Bez obzira da li pravili 2D ili 3D igricu veoma je važno da vaša igrica obezbjedi takvu igraču atmosferu gdje greškama i minusima u brzini izvršavanja vaše igre jednostavno mjesta nema. Obzirom da tehnologije svaki dan napreduju, Allegro je i dalje jedan od onih izvrsnih API-a koji nam omogučavaju izradu visoko kvalitetnih i interaktivnih 2D/3D igara koje su kompatibilne sa skoro svim vodećim platformama. Jednom razvijena u Windows okruženju, vaša Allegro igrica će se bez problema pokrenuti na Mac-u ili Ubuntu Linux-u. Stoga je poliranje brzine i upotreba FPS-a svakako prijeko potrebna funkcija koja vašoj igri daje onu dozu adrenalina koja drži korisnika prikovanog uz tastaturu i monitor bez obzira o kakvoj vrsti i tipu igre je rjeć. S druge strane, FPS nije luksuz u video igricama barem koliko sam ja upoznat, nego je on jedan njen sastavni dio koji omogučava nesmetano igranje vaše igrice bez obzira koji OS i brzinu vaše računalo koristi. Zato u početku, razvoj igara treba da bude fokusiran isključivo samo na 2D video igrice kojima ne samo da ćete izgraditi temelj za prijelaz u 3D svijet game developmenta, nego je to jedan od vjerovatno najboljih načina da savladate programiranje u suštini i ovladate C++ programskim jezikom. 

__________________________
© Amar Tufo, 2015
www.amartufointerctive.org 
18. Novembar, 2015

Share:

AmarTufoInteractive od sada na novoj adresi.



Već duže vremena sam planirao zakup domene za svoju web stranicu koja je, kako vam je dobro poznato, dobar svoj period oko dvije godine bila na besplatnoj blogspot.com domeni. To je naravno otežavalo Google tražilici da indeksira i pronađe moj blog onda kada su ga korisnici posječivali. 

Stoga sam bio strpljiv i kupio sam sebi .org domenu. Provajder je LEFTOR D. O. O Tuzla koji hostira moju domenu i pruža njene usluge i servise koje koristi AmarTufoInteractive. Ovako će Google bolje indeksirati moju web stranicu u pretragama i omogučiti efikasniji način pretrage moje web stranice.

Ono što želim da svi znate a to je kako AmarTufoInteractive ostaje blog samo što je sada daleko ozbiljniji blog/web stranica koja će i dalje nastaviti sa svojim radom i objavom članaka razne tematike, barem one opisane u zvaničnoj tematici kojom se moj blog bavi. 

Nadam se da ću u narednom periodu uspjeti privuči što veći broj čitalaca i pratilaca ovog bloga i time poboljšati njegovu publiku a zauzvrat ću pisati još bolje tekstove i članke nego što je to do sada bio slučaj. 

Do narednog čitanja, Amar Tufo.

Share:

Allegro2D Game radionica - sumiranje prvog djela!

Image source: Notbus Unity2D spaceshooter

Nakon kraće pauze, Allegro 2D game radionica se nastavlja. U ovom kratkom postu trebao bih da resumiram i napravim kratak pregled onoga što sam do sada uradio i što sam naučio. Da vas posjetim šta je to Allegro 2D radionica? Allegro 2D radionica je game dev radionica koja ima za cilj razvoj 2D space shootera koji koristi Allegro5 API i koji se razvija u Visual C++ 2008 Express izdanju. 

Šta je do sada urađeno?

Smatram da nema potrebe da dužim pa ću ovako jasno i kratko sumirati glavne cjeline svoje prve 2D igrice. Dakle, 2D space shooter igrica se razvija u Visual C++ 2008 Express izdanju te kao takva još uvijek nema svoj oficijelni naslov. Igrica počiva na Allegro5 API-u, crossplatform engineu koji omogučava game developerima razvoj interaktivnih video igara koje su kompatibilne sa svim vodećim platformama Windows, Mac & Linux. 
Cijela Allegro radionica ima za cilj da prikaže osnove 2D game developmenta kroz osnovnu matematiku, manipulaciju određenim tipovima podataka kroz C++ programski jezik, primjenu određenih tehnika programiranja, manipulaciju if then else, while, & for petljama, kreiranje od osnovnih do veoma naprednih game petlji, zatim manipulaciju ulazom i izlazom koristeči tastaturu i miš, te razumjevanje glavnih i ćesto korištenih Allegro funkcija i njihove manipulacije kroz Visual C++ 2008.


SpaceShooter game play short preview

Do sada je, mogu slobodno da kažem, izrađena cijela igrica sa jasnim i veoma solidnim game stateom gdje imate maleni brod koji se kreće kroz maleni svemirski prostor. Vaš cilj je da uništite što više kometa koje dolaze na vas a da vas pritom niti jedna kometa ne prođe niti dotakne vaš brodić, jer u suprotnom gubite jedan od vaša tri života. Ukratko opisano. Igrica za sada ima i score, game over sequence i exit mode te 5 sekundi da se korisnik spremi za igru. Poprilično kuul!

Za sada nedostaje svakako grafičko poliranje interfejsa, ušminkavanje te sređivanje glavnih game funkcija kako bi igra postala zahtjevnija nego što je to sada. Naravno, ne oćekujete valjda da pravim World of Warcraft, toliko dobar nisam a i da jesam sigurno ju sam ne bi pravio niti bi imao te konjske živce i sabur, osim toga jako užasno crtam pa taj film nećete dugo Bogme pogledati a možda i nikada. 

Uglavnom, po završetku poliranja bit će to solidan 2D space shooter sa animacijama razaranja brodiča i komita, nekakvim zvukovima u pozadini, muzikom game play-a, nekim mojim artom za menu i komete i eto je moja prva 2D/C++ igrica za PC-jeve. Nemojte zaboraviti, ja sam buduči arheolog a ne softwer inženjer, programiranje mi je najbolja vanstručna i vanarheološka aktivnost koju imam i vjerovatno najbolji skil koji sam mogao steči. 

Šta sam ja do sada naučio?

Uh, pa mogu slobodno vala da kažem, sve i svašta. Tako je, sve i svašta sam naučio kroz ovaj prvi završeni dio razvoja svoje 2D igrice. Od manipulacije tipova podataka, učitavanja assets-a (programeri će razumjeti), manipulacije uređajima tastature i miša, manipulacije ulazom i izlazom, manipulacije glavnih Allegro5 funkcija i da ne zaboravim njenu instalaciju i konfiguraciju pod razvojno Visual C++ 2008 okruženje.

 Dakle, mogu slobodno da kažem da je ovo koliko izazovna toliko i dobra stvar jer konačno vidim if then else, while & for loop u akciji, konaćno razumijem one silne boolean tipove podataka gdje sam naučio kako da sam manipulišem različitim varijablama koristeči boolean tip, učitavanje fontova na određenoj poziciji screen-a te kreiranje sopstvenog FPS timer-a u video igri kako bi dobio podjednake game performanse na drugim računalima uz istu brzinu.  

Ovdje takođe moram da kažem kako su urađena dva Allegro Lab-a kao manje provjere znanje sa ciljem manipulacije određenih funkcija kao što je AllegroLab za kreiranje FSP speed kontrolera unutar video igrice (ovaj lab se privodi kraju), a  dostupan je gotov Allegro Lab koji prikazuje kreriranje escape rutine i učitavanje custom fonta (vidi na kraju ovog članka link na sam lab).
 
Cijelu Allegro radionicu možete pratiti na ovom mom blogu gdje će uskoro biti objavljena na beta test moja prva 2D igrica kao krajnji rezultat cijele ove Allegro radionice i ovog, za mene velikog, programerskog poduhvata.    

Do narednog čitanja, Amar Tufo. 

Poveznice:


Share:

Minox Software objavio izvorni kod Minox Player-a


Iako će uskoro Minox Player uči u alpha verziju v2.3.0.5 izdanja, Minox Software je objavio izvorni kod Minox Player-a na službenom blogu mog programa. Tako je sada cio Minox Player SDK dostupan VB.NET developerima koji žele pomoči njegov razvoj i proširiti te unaprijediti Minox Player za buduća izdanja.

Obzirom da sam još uvijek njegov glavni developer, izvorni kod je stoga objavljen pod GNU/GPLv2.0 licencom kojojm se garantuje sloboda daljnje redistribucije i slobodnog razvijanja Minox Player-a.

Da ne dužim, poznato vam je kako vam naravno za razvoj Minox Player-a treba računalo sa solidnim performansama nekih 512 MB RAM-a, isto toliko grafičke memorije (poželjno), 80 GB diska ili više, VB.NET i naravno Windows 7. U ostale detalje ili preduslove kao što su poznavanje programiranja, manipulacije radnim engineom, izradom UI-a i ostalih tech finesa ne moram ulaziti. 

Minox Player SDK je od jućer dostupan za download pa ukoliko ste zainteresovani, izvorni kod možete preuzeti klikom na ovaj link: 



Share:

Ubuntu 15.10 Dostupan za preuzimanje, evo šta je novo.

Image source: (OMG Ubuntu.com)

Evo nakon punih 6 mjeseci rada i truda, Ubuntuovi developeri su konačno dostavili novi Ubuntu Linux15.10 Wily Werewolf (Wili Vukodlak). Čudno je što je Canonical svom novom Ubuntu-u dao ime po legendarnom mitološkom biću ali je zasigurno i vrijedan svoga imena. 
Odmah na početku da napomenem kako nema znatnih promjena u pogledu interfejsa, radnog okruženja, niti njegovih standardno upakovanih aplikacija, ali Ubuntu u ovom izdanju doduše donosi neke novine. GNOME radno okruženje Desktop površine je sada verzije 3.16. Unity, podrazumjevano Ubuntu radno okruženje je takože ispolirano i od bagova operirano. 

Unity 7.3.3 je sada uključen i u Ubuntu 15.10 te je poprimio neke manje zakrpe bagova, tu je novi Linux 4.2 kernel. Kod Unity-a mi se najviše sada dopada to što je moguće ikonu aplikacije iz Dash-a poslati na Desktop te tako stvoriti prečicu za pokretanje aplikacije. 

U pogledu radne površi novi Ubuntu je dobio i svoju novu pozadinu. Doduše, ništa posebno što bi trebalo da nas oduševi ali se uvijek može promjeniti željena pozadina umjesto ove koju donosi Ubuntu 15.10. 

Podrazumjevana nova pozadina Ubuntu 15. 10 

Kao što sam rekao, bitnih promjena u interfejsu Ubuntu 15. 10 i ne donosi, pa je tako radno okruženje, ponašanje samog sistema, šminkanje interfejsa uvijek dostupno uz naravno, seriju besplatnih i super kul tema dostupnih za sva ranija i novija Ubuntu izdanja. Ubuntu 15. 10 donosi i jednu novu temu a to je Arc tema koja izgleda zaista predivno na desktop-u. 

Arc Ubuntu Linux theme

I po dobro poznatoj tradiciji, Ubuntu Linux uvijek dolazi sa setom predinstaliranih aplikacija od popularnog Libre Office-a 5. 0. 2, Chromium-a, Googleovog open source web preglednika i još mnogo toga. Naravno, tu je kao i uvijek lista 10 stvari koje trebate uraditi nakon instalacije Ubuntu-a 15. 10 koju možete pogledati u linku ispod ovog članka. 

Sloboda je na vama, želite li uraditi clean install Ubuntu-a 15.10 ili čekati da se pojavi upgrade dialog odakle možete uraditi upgrade s Ubuntu-a 15. 04 na novi Ubuntu 15. 10. Moje mašine će se malo načekati dok poprime svježiji upgrade i novi Ubuntu 15. 10. A o tom po tom.  Ubuntu 15. 10 možete preuzeti klikom na donji link, sretno sa instalacijom i korištenjem.

http://releases.ubuntu.com/15.10/?utm_source=omgubuntu



Do narednog čitanja.

Lista poveznica:

Ubuntu 15.10 Available to Download, This Is What’s New
http://www.omgubuntu.co.uk/2015/10/ubuntu-15-10-download-review-new-features  

10 Things To Do After Installing Ubuntu 15.10
http://www.omgubuntu.co.uk/2015/10/10-things-to-do-after-installing-ubuntu-15-10
Share:

Želite pisati za ovaj blog?


Sada je već dvije godine kako je ovaj blog aktivan. Najmanje 10 puta je mjenjan njegov HTML template dok mi se 'konačno' nije dopao i ovaj. I ovaj se template nalazi pod velikim upitnikom, u smislu trebam li ga mjenjati ili ne. 

Kako blog postoji, nisam znao bolje ime smisliti do evo AmarTufoInteractive. Moram priznati da mi se i naziv bloga dopada, jer nekako predstavlja mix arheologije, nauke, serije svakakvih članaka i tehnologije, pa barem ne moram naziv bloga mjenjati. 

E sada gdje sam zapeo? Pa kako svi znate, blog od svog postojanja uređujem Ja i samo Ja. Nema treće strane, niti ekstra autora koji bi pisali za moj blog. Pa evo koristim ovu posebnu priliku da pozovem sve Vas koji ste zainteresovani (ako ste zainteresovani) da mi pomognete, da pišete za ovaj blog i tako ga učinite zanimljivijim nego što on to jeste, ako jeste? 

O ćemu biste pisali?

Imate zanimljivu vijest iz Arheologije (ovo prepustite meni), Ubuntu Linux-a i Ubuntu savjeta, svojih kratkih vodiča na temu Kako ovo, kako podesiti ovaj ruter, kako instalirati ovaj program i tako, Misterija ili Zanimljivosti, onda bujrum. 
ARHEOLOGIJA,
UBUNTU LINUX,
ZANIMLJIVOSTI,
MISTERIJE,
RAZNO - TUTORIJALI, GAME PLAY, VAŠE IGRICE ILI APLIKACIJE . . . .
(Politika, vjera i religija, te erotski sadržaj nisu dopušteni za objavu niti su tema ovog bloga). 


Šta mi treba da bih pisao za Vas?

Ako želite pisati za nas, onda se javite na ovaj e-mail:
veritastriumfus@gmail.com te nam pošaljite svoje Ime i Prezime a mi ćemo Vam vratiti pozivnicu za autora, te nakon vaše potvrde postat ćete službeno autor bloga AmarTufoInteractive. 

Uslovi:

Ne zapošljavate se u državnoj službi majka mu stara, ja nisam vaš poslodavac niti vaš šef niti ste mi podređeni. Ne zanima me Vaša vjera, Nacija, Spol,  Politička pripadnost, Nebitno mi je jeste li Jevrej, Srbin, Hrvat, Bošnjak, ili neko treći. Bitno mi je da ste zainteresovani i voljni pomoči da ovaj blog bude nešto više zanimljiviji i da raja voli da provodi svoje vrijeme čitajući na njemu razne moje ili Vaše članke. 

I na kraju ono što tražim od vas je Zanimljiv članak i Višak vašeg dragocjenog vremena. To je sve što trebate imati ako ste zainteresovani da pišete ovaj blog. 

Sve dodatne informacije možete saznati porukom na e-mail amartufotm@gmail.com i ja ću Vam se javiti u što kračem vremenskom periodu gdje ćete dobiti vaše podatke i možete odmah početi pisati. 

Do narednog čitanja!
Share:

Tko su pravi graditelji piramida u Egiptu i onih širom svijeta?



Image source: (ancientcode.com/AncientAliens)

Piše: Amar Tufo
Autorski članak

Svi smo čuli za velike piramide Egipta tj, one u Gizi, neki su ih od nas i posjetili. Ali, piramide nisu građene samo u Egiptu nego se nalaze širom svijeta, od Egipta, Gvatemale, Jukatana, Hondurasa, Meksika, Jordana, Aljaske, Kine, Rusije, Japana, Bosne i Hercegovine, Indije, Indonezije. No, ono što ne znamo jeste i prava misterija. Kako su drevni graditelji uspjeli sagraditi kolosalne piramide prije više hiljada godina koristeči se samo primitivnim alatima, dlijeto i manjim drvenim polugama kojima su, navodno prenosili i do 15 tona teške kamene blokove i iste dizali u visinu po nekoliko stotina metara? Još više zbunjuje pitanje, zašto su te piramide uopšte građene, za koga su se gradile, tko ih je dizajnirao, tko ih je sagradio i u koju svrhu?

Na ovo pitanje, zvanična i mainstream arheologija još uvijek nema jasnog odgovora, barem ne onog kojeg bi svi rado prihvatili. Mnogi vjeruju kako stari Egipčani uopšte nisu imali znanje niti adekvatnu tehnologiju na Zemlji kako bi sagradili tako uspješno ove piramide, građevine koje prkose zdravom razumu te predstavljaju pravu misteriju nauke. Što hoće reči, kako su tzv. Teoretičari Drevnih Vanzemaljaca postavili svoju, alternativnu teoriju, koja zastupa mišljenje kako su antičke civilizacije bile u kontaktu sa vanzemaljcima koji su u dalekoj prošlosti posječivali planetu Zemlju i na njoj ostavili dokaze svog boravka, piramide. 

Upravo se ovom temom bavi kontroverzni sci-fi dokumentarac Ancient Aliens u kojem se u nekoliko svojih epizoda prikazuju piramide širom svijeta. U dokumentarcu se ćak prikazuju piramide u Bosni, Meksiku, Jukatanu, novootkrivene u Jordanu i Aljasci. Ljudi koji se pojavljuju u ovom dokumentarcu su uglavnom stručnjaci koji su predložili alternativne teorije postanka ljudske vrste kao produkt vanzemaljske rase, zatim teorije o tehnologijama koje ne postoje na planeti Zemlji nego su potekle iz svemira sa neke udaljene planete koja je dom napredne civilizacije i kulture već više milijuna godina. 

Image source: (dailymotion.com/AncientAliens)

Vodeća teorija Teoretičara Drevnih Vanzemaljaca jeste i ta da su sve piramide širom svijeta sagrađene sa istom svrhom to jeste da generišu velike kolićine energije kako bi otvorile vrata u drugi paralelni svijet. Drevni Vanzemaljci takođe zastupaju teoriju kako sve piramide širom svijeta imaju zajedničkog graditelja, vanzemaljce, koji su u dalekoj prošlosti više puta posječivali planetu Zemlju kako bi primitivnim ljudima pokazali umjeće inženjerije, podučili ih njihovim znanjima i pomogli im da sagrade veličanstvene piramide. 


Image source: (ancientcode.com/AncientAliens)

Jesu li nekoć u dalekoj prahistoriji naše planete Zemlje postojale visokonapredne civilizacije?

Drevni Vanzemaljci kažu da jesu. Oni čak vjeruju kako su nekoć inteligentna biča s drugih planeta posječivala našu galaksiju, tj. našu planetu Zemlju gdje su na njoj sagradili veličanstvene i kolosalne građevine koje prkose razumjevanju zvanične nauke. Oni su čak otišli i korak dalje, te postavili pitanje zašto nema dokaza o drevnim kontaktima vazemaljaca i ljudi, i ukoliko arheologija prolanalazi takve dokaze, šta se dešava s njima?
Jedna od veoma interesantnih teorija koju sam čuo u ovom kontroverznom dokumentarcu jeste i ona kojom se propituje Veliki Potop opisan u Bibliji, Kur'anu ali i drevnim civilizacijama širom svijeta. Drevni Vanzemaljci kažu kako su vanzemaljci nakon što su sagradili veličanstvene piramide širom svijeta, na planetu Zemlju poslali potop koji je obrisao sve dokaze njihovog prisustva i postojanja u dalekoj prošlosti naše planete Zemlje. U prilog tomu bi išla činjenica kako su nedavno naučnici u blizini Velike Piramide u Gizi pronašli morske fosile a isti su pronađeni na kamenim blokovima kojima su je drevni graditelji gradili. Što znači da je drevni Egipat, odnosno plato u Gizi nekoć bio pod vodom. 


Image source: (thearmageddontimes.com/EgyptianPyramid

Ovim se želi reči kako je izvanzemaljska rasa zataškala i uništila dokaze svoga postojanja na planeti Zemlji u dalekoj prošlosti a ne kako su to samo naše vlade koje iz nekih razloga ne žele da javnost zna istinu o piramidama jer bi ta istina promjenila cijelo naše poimanje o historiji i našoj dalekoj prošlosti kakvu je znamo, ili barem mislimo da znamo. Na kraju vam predlažem da pogledate veoma zanimljiv dokumentarac Ancient Aliens koji se bavi temom piramide i izvanzemaljske rase. 


Domentarac: Ancient Aliens & Pyramids


Lista poveznica:
  
(1) Fossil Suggests Egyptian Pyramids and Sphinx Once Submerged Under Sea Water
http://thearmageddontimes.com/2015/03/09/fossil-suggests-egyptian-pyramids-and-sphinx-once-submerged-under-sea-water/ 

(2) Extraordinary Documentary tells us how Ancient Aliens helped build the Pyramids of Egypt
http://www.ancient-code.com/extraordinary-documentary-tells-us-how-ancient-aliens-helped-build-the-pyramids-of-egypt/ 

(3) Did prehistoric civilizations with advanced technology exist in the past?
 http://www.ancient-code.com/did-prehistoric-civilizations-with-advanced-technology-exist-in-the-past/
Share:

VB.NET Radionica: Aplikacija sa mouse hover efektom



VB.NET je jedan od možda najlakših razvojnih okruženja i programskih jezika koji omogučava skoro svakome, bilo entuzijazisti, hobisti, i profesionalnom programeru razvoj profesionalnih i veoma brzih end Desktop aplikacija za Windows-e. Što hoće reči kako je relativno jednostavan OOP orjentiran programski jezik kojim možete u par klikova razviti svoju interaktivnu aplikaciju. Prilično kull!

Zašto VB.NET?

Iako sam po struci ponosni student III. godine Arheologije, programiranje je oduvijek bila ona moja oblast u kojoj se osječam najbolje i jedan od veoma zanimljivih poslova u kojem uživam. Naravno, nije sada da se bavim profesionalno ali volim da programiram i da napravim nešto svoje. Visual Basic ili VB.NET kako to developeri još kažu, omogučava da u svega par jednostavnih pokreta mišem sastavite cross-platform Windows Desktop kompatibilnu aplikaciju. 

Opis projektne aplikacije:

U nastavku ćete pogledati izradu Windows Desktop aplikacije koja simulira mouseHower efekat kada pređete mišem preko aktivne slike ili forme koja zatim mjenja boju ili vas vodi do željene web lokacije. U prilogu ovog članka sam pripremio dva kratka video tutorijala koja vam pokazuju detaljnu izradu ove vrlo jednostavne aplikacije.

Napomena: U video prilozima koje ćete uskoro pogledati, nisu komentirani koraci koje sam poduzimao zbog jednostavnosti ove aplikacije koja nema baš neku namjenu. Video prilozi su isključivo edukativnog karaktera i slični tutorijali postoje već odavno na VB.NET forumima i YouTube zajednici koja se bavi izradom tutorijala na temu programiranja i slično.

VB.NET MouseHower app PART I


U ovom prvom dijelu svog tutorijala sam prikazao kreiranje glavnog prozora sa titlom aplikacije. Zatim sam dodao PictureBox1 holder u koji sam smjetio sliku Minox Player-a u .png formatu. Nakon toga sam ubacio liniju koda kojom sam uklonio aplikaciju iz taskabar-a. Ono što nećete vidjeti u ovom tutorijalu, jeste demonstracija klika na sliku koja vas vodi do određene web stranice pa vam to ostavljam da sami testirate.

VB.NET MouseHower app PART II





U drugom djelu svog tutorijala sam prikazao kompletiranje i testiranje aplikacije uz dodatak info forme koja prikazuje osnovne podatke o developeru aplikacije gdje sam opet prikazao pozivanje info forme u glavnom programu. Smatram da nije bilo potrebe da uz ovaj veoma kratak članak postavim source code jer slične aplikacije postoje na netu te dolaze sa izvornim kodom (u ovom slučaju cijelom solucijom koja se može preuzeti i prekompajlirati).

Zaključak:

VB.NET je relativno jednostavan i izuzetno lahak programski jezik gdje je za izradu jedne aplikacije sa slikicom, njenim osnovnim informacijama potrebno svega par klikova i dvije tri linije koda. Dok u C++ programskom jeziku trebate poznavati varijable kojima definišete širinu i visinu vašeg displeja u pikselima, zatim flag vašeg displeja ukoliko želite da vam se aplikacija pokreće u fullscreen modu ili u window modu, morate ćak da sami programirate exit mod ili eventualno escape mod koristeči se key. eventima. U VB.NET-u nema nikakve potrebe da pišete neki sablasni kod jer vam je sve unaprijed definisano, vaše je da se poigrate sa izgledom vaše aplikacije a za kod ne morate uopšte da se brinete.


Napisao i pripremio: Amar Tufo,
© , Amar Tufo Interactive, 2015


Share:

Allegro 2D Space Shooter - kratki gameplay


SpaceShooter video igrica

Obzirom da se radi o mojoj prvoj igrici koju sam uspio programirati nakon samo mjesec i pol dana i da se radi naravno o jednom 2D SpaceShooter-u koji je u cjelosti implementiran, sastavio sam, naravno set opcija koje će uskoro biti dodate u ovu moju igricu. 

SpaceShooter je napisan u Visual C++ 2008 Express (IDE) te koristi Allegro API kao pogonski radni okvir. Cilj igrice je uništiti vašim malenim svemirskim brodićem što više kometa koje hurljaju na vas. Svaki put kada Vas kometa prođe, vi gubite jedan život ili ga izgubite u sudaru sa kometama. Moj najviši score iznosi 18 bodova. 

Igrica nije još uvijek ispolirana kako sam zamislio, obzirom da sam pripremio jedan lijep art za meni, image rendering i pravi space ship sa animacijom kako za komete tako i za brodić. Uglavnom, igrica je i ovako ne baš jednostavna za igranje pa vam trebaju dobri živci i dobra brzina da uništite sve komete koje dolaze u jednom valu kako biste ostali živi i sa svoja dragocjena tri života.


SpaceShooter Gameplay


SpaceShooter - Game Over -

Uskoro će biti objavljen kratki video prilog gameplay-a ove moje igrice. Za sada, igrica je dosta dobra kao neka klasična space avantura, ali će u narednom periodu proči ozbiljne promjene pa će vjerovatno i samo ime završne igrice biti promjenjeno. 

No, za sada toliko od mene i do narednog čitanja. 
Share:

Je li Bog bio astrounaut?



Piše: Amar Tufo
Autorski članak

Teorija da je planeta Zemlja u svojoj dalekoj prošlosti bila posječivana od svemirskih putnika koji su tako došli u kontakt sa antičkim civilizacijama kojima su podarili svo znanje potrebno da se izgrade kolosalne građevine antike, predivne i misteriozne piramide u Gizi, one u Meksiku, Teotihuakanu, Gvatemali, Jukatanu i druge kolosalne građevine antičkog svijeta, jedna je od najpopularnijih tema kontroverzne pseudoarheologije i alternativne historije.
-----
Erich Von Daniken, autor, pisac, pseudoarheolog i čovjek koji se nekoliko puta pojavljivao u kontroverznom dokumentarcu "Antički Alieni", nije slučajno napisao knjigu pod nazivom: "Kočije Bogova". Knjiga, iako je kontroverzna i puna kontradikcija sa zvaničnom naukom gdje se Daniken usudio do te mjere i propitao ispravnost Biblije i knjige Postanka za koju smatra da je puna misterija koje su oni štu su je pisali, sakrili od ljudskog roda i tako čovjećanstvo zakinuli o pravom porijeklu ljudske rase.

Daniken smatra da knjiga Postanka govori o ultimativnom eksperimentu koje je uvaženi otac Bog dugo vremena obavljao nad ljudima prije nego li je njima naselio Zemlju. U veoma interesantnom djelu svoje knjige pod titlom "Da li je Bog bio Astronaut", Daniken se usudio postaviti pitanje je li Bog zapravo vanzemaljac a ne 'Bog' kao što ga Biblija ili druge monoteistićke vjere opisuju. Što hoće reči kako Deniken odbija prihvatit zvanična ućenja crkve i Biblije koja je sakrila ljudskom rodu jednu od najvažnijih istina, a to je istina o porijeklu ljudske rase. 

Nije slučajno, kaže Deniken, Bog eksperimentirao s ljudima a prije toga na zemlju postavio svoje namjesnike što su letili u nekakvim letećim napravama tako brzo, onom brzinom što lete Božiji anđeli. Ta su bića dolazila na Zemlju i ranije te viđala primitivnog čovjeka (lovca-sakupljaća) što je poginjao i glavu svoju zabijao u pjesak svaki put kada ovi slete. A onda kada bi ovi otišli, čovjek-primitivni lovac bi ih crtao na stijenama u obliku petroglifa u nekakvim letećim objektima koji se spuštaju i podižu u vazduh.

Nije li Enok, pradjed Nuhov, uznesen na Nebo u letećem vozilu koje se misteriozno pojavilo pred Njim i uznjelo ga na Nebo kako je to otac Bog želio. Deniken smatra da je upravo leteći svemirski objekt koji je, kako on piše, bacao snop svjetlosti prije nego li je uznjeo Enoka (Idris a. s) na Nebo. Biblija u knjizi Postanka jasno kaže ovako:

"Enok je hodao s Bogom, bijaše mu 365. godina i Bog ga uze Sebi". Dakle, Enok je jedini poslanik Božiji koji nije umro te ga je Bog uzeo Sebi u Svoje kraljevstvo. Prema tradiciji, Enok je prvi poslanik koji je umio da piše i poznat je po svojoj knjizi pod nazivom "Knjiga Enoka" u kojoj se pominje kako su divovi hodali Zemljom u to doba. A onda, kada su se divovi zaljubili u kćeri Božije, ove im podariše sinove što postadoše snažniji nego li očevi. Deniken ovdje iznosi u svom djelu knjige kako su ti Divovi bili upravo svemirski namjesnici koji su s ciljem na zemlju došli gdje su uzimali i probirali najbolje ljude i žene koje su zatim odvodili na udaljene planete. A što su s njima tamo radili, niko to ne zna?

Što je onda Bog i zašto Boga ne možemo vidjeti a slijepo vjerujemo u Njegovo postojanje. Kada su se Musa a. s i Bog sastali na planini Sinaj kako bi Bog Musi dao 10 zapovjedi za njegov jevrejski narod, Bog naredi Musi da napravi kovčeg u koji će staviti 10 svetih zapovjedi što će mu ih Ovaj dati.


Zavjetni Kovčeg

Ovako je Musa a. s prema naredbi Božijoj izradio Zavjetni Kovečg u koje je sam Bog udahnuo svoju snagu i spustio onih 10 zapovjedi koje je naredio Jevrejskom narodu. Interesantno je i to što se kovčegu kroz vremena pripisivala strahovita moč, pričale se razne priče o njegovoj Božijoj moči što ju Kovčeg navodno posjeduje a ćesto ga se opisuje kao oružje za masivno uništenje.

Kovčeg je kralj David prenjeo u Jeruzalim a dugo vremena se nalazio u Solomonovom hramu gdje je oko 587. god. pr. n. e nestao kada je kralj Nabukodonosor Babilonski napao Jerusalem i sravnio Solomonov hram do temelja. Deniken je i ovdje komentirao Kovčeg i njegovu 'superrazornu' moč kao električni uređaj sa više stotina volti napona koje ubija na licu mjesta. Jer se za Kovčeg priča tko god da ga je takao i oni što su ga nosili, bili bi mrtvi na licu mjestu. Do danas nema dokaza da je Kovčeg ikada postojao a kamo li da je imao moč koja mu se navodno pripisuje a takav slučaj je i sa Solomonovim hramom u Jerusalemu za čijim temeljima Arheologija još uvijek traga.

A šta je onda sa Sodomom i Gomorom, ona dva grada na Crnom Moru koje otac Bog sravni do temelja zbog bludi i iskvarenosti što su je činili. Priču o Sodomi i Gomori zna skoro svako pa tako nema potrebe da je ja ovdje navodim. Na kraju posla Bog dva anđela da upozore Luta o kazni što ju Bog priprema za narode dva grada a njemu noću naredi da prati dva anđela sa svojom porodicom i vjernicima kako bi izvukao živu glavu, jer je Bog odlučio dva naroda zbrisati s lica Zemlje zauvijek. 

I tako Lut pođe, za njim njegova žena i njegova uvažena porodica, a Bog naredi: "Idite i ne okrečite se, jer ako to učiniti s Njima ste". Ovo s njima se odnosi na nevjernike, na homoseksualce i nevjerne žene pa se tako u jednom trenutnku Lutova žena okrenu i na licu mjesta je Bog skameni. Ovdje, kaže Deniken, ovdje je jasno da je 'Bog' s neba bacio atomsko oružje kojim je ovaj sravnio dva grada za nekoliko minuta pa je od bljeska i ogromne radijacije i one atomske pečurke što ju je Lutova žena vidjela, ne mogavši izdržati atomski udar na licu mjesta se skamenila. 

I opet, je li Bog bio Astronaut? Interesantno je što je ova Denikenova knjiga iz koje sam iznjeo ovaj njegov dio: "Je li Bog bio Astronaut" izazvala senzaciju među njegovim vjernim čitateljima i vjernim pristalicama koji tako vjerno služe Denikenovoj teoriji Antičkih Vanzemaljaca i Denikenu sličnim da je ćak na njegovu knjigu snimljen cio film u kojemu su obični ljudi iz Majanskog grada Teotihuakan prikazani kao astronauti koji su došli da vide šta se radi na Zemlji i kako njihovi ljudi poštuju pravila i zakone što su im Ovi nametnuli a onda odjednom ponovo uzlijeću u svojim svemirskim brodovima. 

Uprkos činjenici da sam Deniken pa niti oni njemu slični ne mogu nikako da dokažu svoje teorije pa ćak ni kroz dokumentarac Antički Vanzemaljci, popularnost Denikenovih knjiga, članaka, ali i ove njegove teorije svakim danom sve više raste ćemu se zvanična arheologija, nauka ali i crkva žustro ali i uzalud protivi, jer Deniken sa jednom izuzetno dobrom dozom uvjerljivosti nastoji da ukaže po svaku cijenu kako je Zemlja nekoć bila posječivana od strane svemirskih putnika koji su dostavili svo potrebno znanje koje je ljudima pomoglo da iz lovca-sakupljaća pređe na dosta viši kulturni nivo razvitka, dovoljan da uz znanje koje su ga ovi podučili izgradi veličanstvene i kolosalne građevine koje prkose zdravom razumu i kojima se s strahopoštovanjem već stoljećima divimo.

Original source: Chariots of the Gods
Author: Erich Von Deniken
Year 1968, Germany 
Pages taken: 44 / 54
Preveo i uredio: Amar Tufo
Sarajevo, 2015
Share:

Allegro2D: SpaceShooter game 1 - dio


Izgled svemirskog brodića igrice SpaceShooter

Evo, protekao je mjesec dana kako sam zapoćeo Allegro2D školu programiranja čiji je cilj inteaktivno C++ programiranje kako bi se ovaj programski jezik savladao. Krajnji rezultat ove Allegro2D škole je interaktivna i veoma jednostavna 2D igrica odnosno SpaceShooter gdje se ovaj maleni brodić probija kroz gomilu kometa koje hurljaju na vas i raznih svemirskih enemija čiji je cilj uništiti planetu Zemlju a vaš cilj je da ju zaštitite i osujetite loše planove enemija koji vas žele uništiti. Naravno, morate ostati živi kako biste okončali misiju.

U nastavku pogledajte kratki video prilog onoga što sam do sada uspio uraditi.




Ovo je prva sedmica kako je moja Allegro2D škola konaćno prešla iz teorije u praksu kada sam poćeo izradu 2D SpaceShooter-a. U ovom veoma kratkom video prilogu imate priliku da vidite kako se svemirski brodić pomjera gore, dolje i koristi svoje oružje.

U narednom postu ovog bloga, bit će prikazan kratki video prilog sa kometama koje hurljalju na ovaj maleni brodić sa prikazom detekcije kolizije i eksplozije  kometa. Do tada, ugodan ostatak na blogu želim vam AmarTufoInteractive.
.

Share:

Allegro radionica: Jedan mali sumari!

Allegro_Kvadrat i movement manipulacije unosom s tastature

Od kako je počela moja serija Allegro_2D škole i interaktivnog C++ programiranja kroz kreiranje video igrice, mogu da kažem da sam dosta posla do sada uradio, neke nove stvari naučio a one koje mi nisu bile jasne savladao. 

Teško je sada u ovom postu iznjeti šta radi ova slika i šta predstavlja ovaj maleni rozi kvadratić koji vidite unutar crnog prozora, ali vjerujte mi, radi mnogo toga. Ovaj kvadratić predstavlja prvi korak ka implementaciji moje video igrice, ili pravog 2D space okršaja u svemiru između mene i nekih uvrnutih svemirskih enemija.

Uglavnom, u nastavku moje serije, ovaj kvadratić će uskoro da postane jedan maleni svemirski brodić koji će se tako probijati kroz komete, rušiti druge svemirske enemije kako bi došao do svog odredišta i uspješno završio svoju misiju. Bit će to prvi put, da sam uspio razviti interaktivnu, 2D video igricu što će biti moj prvi naslov u toj oblasti. 

Eto, tako ću postati uskoro hytech arheolog koji je poznat po svome player-u a imati ću uskoro i svoju 2D video igru. Šta više zaželiti? 

Do narednog čitanja!
Share:

Allegro Lab1: Kreiranje escape rutine i učitavanje custom font-a


Izvorni autorski tehnički članak,
AllegroLab1_Kreiranje escape rutine i učitatavanje custom font-a
Autor: Amar Tufo

Napomena: Pred vama se nalazi tehnički članak namjenjen isključivo programerima, hobistima i gikovima koji su upoznati sa teorijama kompjuterskih nauka, programiranja, C++ programskog jezika i ljudi koji poznaju šta je to objektno orjentisano programiranje. Ovaj članak predstavlja dio moje serije Allegro 2D game development čiji krajnji rezultat treba da bude 2D space shooter igrica.

Opis zadatka: 

Ovaj zadatak ima za cilj da demonstrira kreiranje primitivne while petlje kroz učitavanje i renderovanje custom fonta na zaslonu te zatvaranje aplikacije kreiranjem escape rutine. Ovaj AllegroLab1 je napisan koristeči Visual C++ 2008 Express (IDE), Allegro5 API, i kells.ttf font. U zadatku mora biti učitan navedeni font sa željenom porukom (recimo ime i prezime a velićina fonta mora biti 20 piksela).
Krajnji rezultat:

Ono što će biti rezultat ove aplikacije može se već vidjeti na gornjoj slici gdje je prikazan screenshot aplikacije po imenu Allegro_Fonts.exe koja u sebi prikazuje tri različite tekst poruke kroz tri različita tipa fontova i njihovih velićina.
Rješenje AllegroLab1 i izvorni kod:


//Allegro Lab 1
//Developer: Amar Tufo
//This Allegro sample shows how to render custom font on display
//and how to close program by pressing escape key
//Datum: 1, Oktobar. 2015

#include <allegro5\allegro.h>
#include <allegro5\allegro_primitives.h>
#include <allegro5\allegro_font.h>
#include <allegro5\allegro_ttf.h>

int main()
{
 int width = 640;
 int height = 480;
 
 bool exit = false;
 ALLEGRO_EVENT_QUEUE *event_queue = NULL;

 if(!al_init())
  return -1;

 ALLEGRO_DISPLAY *display = NULL;
 display = al_create_display(640, 480);

 if(!display)
  return -1;

//initialize font module
 al_init_font_addon();

 //initialize ttf module
 al_init_ttf_addon();

 //load my font
 ALLEGRO_FONT *font20 = al_load_font("kells.ttf", 25, 0);

//install allegro primitives
al_init_primitives_addon();

//install keyboard
al_install_keyboard( );

//register keyboard source
 event_queue = al_create_event_queue();
 al_register_event_source(event_queue, al_get_keyboard_event_source());

//create basic game loop
while(!exit)
{
//creating allegro event
  ALLEGRO_EVENT ev;
  al_wait_for_event(event_queue, &ev);
  
 //draw some text on the screen
al_draw_text(font20, al_map_rgb(255, 127, 127), 640/2, 480/2, ALLEGRO_ALIGN_CENTRE, "Developer: Amar Tufo");

//allow user to exit by pressing escape key
 if (ev.type == ALLEGRO_EVENT_KEY_UP)
   {
 if (ev.keyboard.keycode == ALLEGRO_KEY_ESCAPE)
   exit = true;
  
   }

//back buffer
 al_flip_display( );

 //clear back buffer 
 al_clear_to_color(al_map_rgb(0, 0, 0));

}

//Destroy the display
 al_destroy_display(display);


return 0;
}
Završni rezultat programa:


Ovo je završni rezultat programa i rješenje mog Allegro_Lab-a. Kao što vidite tekst poruka "Developer: Amar Tufo" je uspješno renderovana koristeči custom font kells.ttf koji je dat u zadatku.  Ja ne mogu ovako tekstualno da vam demonstriram escape rutinu te se ista nalazi u izvornom kodu koji je gore objavljen i izvorni kod možete slobodno prekopirati ukoliko vas zanima da i vi sami nešto napravite, neku aplikaciju koja će raditi kao moja. 

Toliko od mene za sada i do narednog čitanja. 
Share:

My Twitter news

Popular Posts

Recent Posts

Unordered List

  • Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
  • Aliquam tincidunt mauris eu risus.
  • Vestibulum auctor dapibus neque.

Pages

Theme Support

Need our help to upload or customize this blogger template? Contact me with details about the theme customization you need.