Shooter

Status
Niet open voor verdere reacties.

tchembado

Gebruiker
Lid geworden
28 nov 2006
Berichten
93
hoihoi,

ik heb een shooter in 2D probere te maken om mij af te reageren op een leerkracht die ik niet bepaald goed kan uitstaan :p,omdat ik hierdoor in de problemen zou komen met de school ebbik er een andere foto op geplakt.

Je kan hemhier downloaden

Geef gerust je mening, en tips tot verbeteringe enzo:thumb:

alvast bedankt,

Tchembado





p.s. Als je nog geen allegro hebt, moet je de alleg42.dll in je windows system32 folder steken
 
Laatst bewerkt:
Ik kan het niet downloaden want heb geen windows hier. Maar mag ik je er wel even op wijzen dat als je dit soort dingen maakt en verspreid kan je makkelijk van school worden geschopt. Dit is al een keer eerder gebeurd een paar jaar geleden...
 
voila, keb er nu andere linke ingezet met andere foto, je kan em nu hier downen

was idd vrij dom van mezelf:confused:.

Bedankt vr de waarschuwen!


Hoe kan ik eiglijk files maken, die iemand zonder windows ook kan openen?
 
Laatst bewerkt:
Bij komt er zo dat kadertje op van:

In shooter.exe is een fout opgetreden en moet worden afgesloten. Onze excuses voor dit ongemak.

:confused:

william:cool:
 
Bij komt er zo dat kadertje op van:

In shooter.exe is een fout opgetreden en moet worden afgesloten. Onze excuses voor dit ongemak.

:confused:

william:cool:



Het spel is al op veel pc's geprobeerd, maar dit heb ik nog niet meegemaakt...
Je moet wel zien dat alle bestanden in dezelfde map staan;) , anders kan het programma de images en de midifiles niet vinden...

de poppetjes gaan niet weg:thumb:
wel mooi:p

Wel als je er op schiet (maar dat bedoelde je waarschijnlijk niet:rolleyes: )
Als je ze niet dood knalt, dan blijven ze inderdaad 'eeuwig' staan. Als ze automatisch zouden weggaan, vond ik dat het spel te gemakkelijk zou worden.
Zou je het beter vinden als ze wel zelf zouden weggaan?

Alvast bedankt voor de comments :thumb:,

Tchembado
 
Jep, keb et ffi in zip geuploaded.

Je kan de zipfile hier downen.

Winrar is trouens zo een slecht programma nog niet. Je kan het hier gratis verkrijgen :thumb:

Groetjes,

Merijn
 
Mag de code eens zien

Hier is ie, khoop dat je er iets aan hebt,:thumb:
Er staat wel weinig commentaar bij, dus als je iets niet snapt, vraag het dan maar.

groetjes,
Tchembado

Code:
#include <allegro.h>
#include <fstream>
#include<cmath>


using namespace std;

BITMAP* buffer;
BITMAP* background;
BITMAP* adrip;
BITMAP* sniper;
BITMAP* sniper_rood;
BITMAP* rode_kruis;
BITMAP* knal;
BITMAP* klok;

SAMPLE *rifle = load_wav("rifle.wav");
SAMPLE *reload = load_wav("reload.wav");
SAMPLE *shotgun = load_wav("shotgun.wav");
MIDI *james_bond = load_midi("james_bond.mid");
MIDI *victory = load_midi("victory.mid");
MIDI *carmina = load_midi("carmina.mid");

void init();

struct windows{int x; int y;int bestaan_tijd;bool dood;int togo;bool rodekruis;bool knal;}window[32];

int cursor_x = 20;
int cursor_y = 20;

void getMouseInfo();
void mouveMouse();

void print_adrip();
void init_windows();

void rand_adrip();
void check_raak();

void set_health();
void draw_health();

void draw_level();

void ramen_vol();

int timer=30;
int leven=305;
int health_todo=0;
int rodekruis_teller=0;
int level = 100;
int schietteller=0;
int snelschiet=190;
int draaien = 0;

long double hoek;

/**************************************************************************************************************************
**************************************************MASSIV MAIN**************************************************************
**************************************************************************************************************************/
int main()
{
init();
init_windows();

textout_ex(screen,font,"LOADING...",580,460,makecol(255,255,255),makecol(255,0,0));
textout_ex(screen,font,"THIS GAME WAS MADE BY TCHEMBADO",500,512,makecol(255,255,255),makecol(255,0,0));

rest(3000);

//int tel = 29;

    while(!key[KEY_ESC])
    {
  if(key[KEY_L])level--;
                        
    set_health();
    draw_sprite(buffer,background,0,0);
    draw_health();
    print_adrip();
    getMouseInfo();
    mouveMouse();
    
    
    if (timer==0){rand_adrip();timer=50+level;}
    timer--;
   
   
   if(!mouse_b & 1){schietteller=200;}
   
   if (mouse_b & 1&&schietteller>=snelschiet){
   play_sample(rifle, 255, 125, 2000, 0);
   schietteller=0;
   check_raak();
   }
   schietteller++;
   
   if(key[KEY_R])
   {
      play_sample(reload,255,125,1000,0);
      rest(200);
}
draw_level();


if(key[KEY_M]&&key[KEY_S]){snelschiet=10;}


ramen_vol();

   
   /* if (mouse_b & 1){
                ofstream myfile;
                myfile.open ("x_y.txt", ios::out | ios::app);
                
                myfile<<"window["<<tel<<"].x="<<cursor_x<<";"<<endl;
                 myfile<<"window["<<tel<<"].y="<<cursor_y<<";"<<endl<<endl;
                
                myfile.close();
                rest(300);
                
                n++;}*/
                
              
          
                
               
    textprintf_ex(buffer,font,1000,40,makecol(250,0,0),-1,"MADE BY TCHEMBADO");
    textprintf_ex(buffer,font,1000,55,makecol(250,0,0),-1,"x = %d",cursor_x);
    textprintf_ex(buffer,font,1000,70,makecol(250,0,0),-1,"y = %d",cursor_y);
    textprintf_ex(buffer,font,1000,85,makecol(250,0,0),-1,"LEVEN = %d",(leven*100)/305);
    textprintf_ex(buffer,font,1000,115,makecol(250,0,0),-1,"LEVEL = %d PROCENT",100-level);
    draw_sprite(screen,buffer,0,0);
    
    rest(1);
    
    
     if (leven==0)
     {play_midi(carmina,0);
                   while(!key[KEY_ENTER])
                {
textout_ex(screen,font,"YOU SUCK",580,460,makecol(255,255,255),makecol(255,0,0));
textout_ex(screen,font,"THIS GAME WAS MADE BY TCHEMBADO",500,512,makecol(255,255,255),makecol(255,0,0));
textout_ex(screen,font,"(Press enter to continue)",510,800,makecol(255,255,255),makecol(255,0,0));                            
                 }
                             return 0;
    }
     
    
    if(level==0)
    { play_midi(victory,0);
                while(!key[KEY_ENTER])
                {
               
textout_ex(screen,font,"YOU OWNED",580,460,makecol(255,255,255),makecol(255,0,0));
textout_ex(screen,font,"THIS GAME WAS MADE BY TCHEMBADO",500,512,makecol(255,255,255),makecol(255,0,0));
textout_ex(screen,font,"(Press enter to continue)",510,800,makecol(255,255,255),makecol(255,0,0));                            
                 }
                             return 0;
    }
    
}
}



void init()
{
allegro_init();
    install_mouse();
    install_keyboard();
    set_color_depth(16);
    set_gfx_mode( GFX_AUTODETECT, 1280,1024, 0, 0);

if (install_sound(DIGI_AUTODETECT,MIDI_AUTODETECT,NULL) != 0)
{
  allegro_message("ERROR: Couldn't initialize sound hardware!");
}

set_volume(100, 100);
buffer=create_bitmap(1280,1024);
background=load_bitmap("background.bmp",NULL);
adrip=load_bitmap("foto.bmp",NULL);
sniper=load_bitmap("sniper.bmp",NULL);
sniper_rood=load_bitmap("sniper_rood.bmp",NULL);
rode_kruis=load_bitmap("rode_kruis.bmp",NULL);
knal=load_bitmap("knal.bmp",NULL);
klok=load_bitmap("klok.bmp",NULL);

play_looped_midi(james_bond,0,250);



for(int n = 0;n<=31;n++)
{
        window[n].bestaan_tijd=0;
          window[n].dood=true;
}
}


void getMouseInfo(){

                  cursor_x = mouse_x;
                  cursor_y = mouse_y;
}


void mouveMouse()
{
     circle(buffer,cursor_x,cursor_y,20,makecol(250,0,0));
    circlefill(buffer,cursor_x,cursor_y,1,makecol(250,0,0));
    line(buffer,cursor_x+10,cursor_y,cursor_x+30,cursor_y,makecol(250,0,0));
    line(buffer,cursor_x-10,cursor_y,cursor_x-30,cursor_y,makecol(250,0,0));
    line(buffer,cursor_x,cursor_y+10,cursor_x,cursor_y+30,makecol(250,0,0));
    line(buffer,cursor_x,cursor_y-10,cursor_x,cursor_y-30,makecol(250,0,0));
}


void print_adrip()
{
     for(int n = 0;n<=31;n++)
     {
     if(window[n].bestaan_tijd>0&&window[n].dood==false){
            if(window[n].togo>0)
                 {
                  if(window[n].rodekruis)blit(rode_kruis,buffer,0,0,window[n].x,window[n].y+window[n].togo,100,72-window[n].togo);
                  else blit(adrip,buffer,0,0,window[n].x,window[n].y+window[n].togo,100,72-window[n].togo);
                  window[n].togo--;
                   }
                          
                                                                              
else {
     if (window[n].rodekruis)draw_sprite(buffer,rode_kruis,window[n].x,window[n].y);
     else if(window[n].knal)draw_sprite(buffer,knal,window[n].x,window[n].y);
     else draw_sprite(buffer,adrip,window[n].x,window[n].y);
     }}
else if(window[n].bestaan_tijd>0&&window[n].dood==true)

if(window[n].rodekruis)rectfill(buffer,window[n].x,window[n].y,window[n].x+60,window[n].y+72,makecol(255,255,255));
else rectfill(buffer,window[n].x,window[n].y,window[n].x+60,window[n].y+72,makecol(250,0,0));

       
     if(window[n].bestaan_tijd==0){window[n].dood=true;}
     }
}


void rand_adrip(){
bool bestaan=true;
srand(time(0));
int extra = 0;
int getal;
while(bestaan)
{
getal=(13*rand()+7+extra)%31;
if(window[getal].bestaan_tijd==0)
{
window[getal].bestaan_tijd=8;
window[getal].togo=72;
window[getal].dood=false;
bestaan = false;

}
extra++;
}

rodekruis_teller++;
if(rodekruis_teller==15){window[getal].rodekruis=true;rodekruis_teller=0;}
else{window[getal].rodekruis=false;


for(int n = 0;n<=31;n++)
{window[n].knal=false;}

}



 for(int n = 0;n<=31;n++)
     {
             if(window[n].bestaan_tijd>0){
                                          window[n].bestaan_tijd--;}
     }

}



void check_raak()
{

                for(int n = 0;n<=31;n++)
     {
     if(!window[n].dood){
     if(cursor_x>window[n].x+10&&cursor_x<window[n].x+50&&cursor_y>window[n].y+10&&cursor_y<window[n].y+62&&window[n].bestaan_tijd>0)
     {
     if(window[n].rodekruis){health_todo+=50;}
     else level--;
     window[n].dood=true;
     window[n].bestaan_tijd=2;
    
     }
     }           
     }
}          


void draw_health()
{
   
     if(health_todo>0){
                       if(leven<305)leven++;
                       health_todo--;
                       }
     else if(health_todo<0){
          if(leven>0)leven--;
          health_todo++;
          }
     
     draw_sprite(buffer,sniper_rood,63,45);
     blit(sniper,buffer,305-leven+30,0,305-leven+63+30,45,364,138);
     
}


void set_health()
{
     for(int n;n<=31;n++)
     {
             if(window[n].bestaan_tijd==1&&window[n].dood==false&&!window[n].rodekruis)
             {
             health_todo-=10;
             window[n].bestaan_tijd=5;
             window[n].knal=true;
             
             play_sample(shotgun, 255, (window[n].x*255)/1280, 2000, 0);
              rectfill(screen,0,0,2000,2000,makecol(255,0,0));rest(2);
             }
             
     }
}

void ramen_vol()
{
     int teller = 0;
for(int n = 0;n<=31;n++)
{
   if(window[n].dood==false)teller++;
}
 if(teller==30){leven=0;
 for(int n = 0;n<=31;n++)
 {
         window[n].bestaan_tijd=0;
         window[n].dood=true;
}
}
 textprintf_ex(buffer,font,1000,100,makecol(250,0,0),-1,"aantal adrips = %d",teller);
}



void draw_level()
{
     hoek = (100-level)*6.28/100-1.57;
      //textprintf_ex(buffer,font,1000,215,makecol(250,0,0),-1,"hoek = %d PROCENT",hoek);
     
     
     draw_sprite(buffer,klok,800,50);
      triangle(buffer,875+5*cos(hoek+1.57),125+5*sin(hoek+1.57),875-5*cos(hoek+1.57),125-5*sin(hoek+1.57),875+55*cos(hoek),125+55*sin(hoek),makecol(255,0,0));
     circlefill(buffer,875,125,5,makecol(0,0,0));
    
  
     
}



void init_windows()
{
window[0].x=438;
window[0].y=306;
     
window[1].x=578;
window[1].y=313;

window[2].x=509;
window[2].y=472;

window[3].x=209;
window[3].y=589;

window[4].x=307;
window[4].y=590;


window[5].x=476;
window[5].y=572;

window[6].x=536;
window[6].y=572;


window[7].x=703;
window[7].y=593;

window[8].x=799;
window[8].y=595;


window[9].x=107;
window[9].y=704;

window[10].x=204;
window[10].y=704;

window[11].x=306;
window[11].y=704;

window[12].x=425;
window[12].y=707;

window[13].x=509;
window[13].y=709;

window[14].x=590;
window[14].y=709;

window[15].x=702;
window[15].y=707;

window[16].x=802;
window[16].y=705;

window[17].x=894;
window[17].y=705;

window[18].x=990;
window[18].y=738;

window[19].x=1095;
window[19].y=737;

window[20].x=1159;
window[20].y=735;

window[21].x=108;
window[21].y=856;

window[22].x=208;
window[22].y=856;

window[23].x=307;
window[23].y=855;

window[24].x=476;
window[24].y=877;

window[25].x=543;
window[25].y=877;

window[26].x=706;
window[26].y=856;

window[27].x=807;
window[27].y=857;

window[28].x=902;
window[28].y=854;


window[29].x=1039;
window[29].y=855;

window[30].x=1100;
window[30].y=854;


window[31].x=1161;
window[31].y=852;


     }


END_OF_MAIN();
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan