Mijn bubble schiet spel

Status
Niet open voor verdere reacties.

manhaeve5

Gebruiker
Lid geworden
9 jan 2007
Berichten
276
Hier is mijn nieuw spel, doel: zorg ervoor dat de haaien je niet raken en probeer hen te raken met een bubbel, je kunt geen nieuwe bubbel lanceren voordat de vorige weg is(BUBBELS!!! :D )
Link
 
Leuk spel:thumb:
Ik zou dit dus absoluut niet kunnen maken.
 
als je nog niet bewogen hebt schiet ie de verkeerde richting in,dus in het begin kun je best eens bewegen
 
Respect hoor hoelang heb jij gedaan om C++ onder de knie te krijgen??
 
hoe heb je dat spel gemaakt?
zou ik je code eens mogen zien :rolleyes:

best wel vet voor 4 maanden :thumb:
 
Hier de code:
Code:
#include <allegro.h>
#include <cstdlib>
#include <ctime>
#include "collegro.c"
void init();
void deinit();
void keys();
void checkcolission();
void drawfield(),drawrij(int d), drawhaai(),shoot(),drawbullet();
void drawinfo();
BITMAP *eend;
BITMAP *eend2;
BITMAP *eend3;
BITMAP *water;
BITMAP *buffer;
BITMAP *haai;
BITMAP *bullet;
bool justfired,bulletfired,eendisdood,haaiisdood;
int bulletmode=2, mode = 2 ;  //Rechts = 1; links = 2;
int x = 320;
int y = 50 ;
int score;
int xhaai=-100,yhaai=50,xbullet=320,ybullet=50;
int main() {
 	init();
eend =  load_bitmap("eend.bmp",NULL);
        eend2 =  load_bitmap("eend2.bmp",NULL);
        eend3 = load_bitmap("eend3.bmp",NULL);
		buffer = create_bitmap(640,480);
		draw_sprite(buffer,eend,x,y);
	while (!key[KEY_ESC]) {
          drawfield();
          drawbullet();
        keys();
        
        drawhaai();
        checkcolission();
        drawinfo();
        if(eendisdood==true)
        draw_sprite(buffer,eend3,x,y);
        else{
        if (mode == 1)
        draw_sprite(buffer,eend,x,y);
        else
        draw_sprite(buffer,eend2,x,y);
        }
    blit(buffer, screen, 0,0,0,0,640,480);
	}
	deinit();
	return 0;
}
END_OF_MAIN()

void init() {
	int depth, res;
	allegro_init();
	depth = desktop_color_depth();
	if (depth == 0) depth = 32;
	set_color_depth(depth);
	res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
	if (res != 0) {
		allegro_message(allegro_error);
		exit(-1);
	}

	install_timer();
	install_keyboard();
	install_mouse();
	/* add other initializations here */
}

void deinit() {
	clear_keybuf();
	/* add other deinitializations here */
}
void keys(){
     if(eendisdood == false){
     if(key[KEY_SPACE])
     justfired=true;
     //bulletfired=true;
     shoot();
     if(key[KEY_LEFT]){         
		mode=2;
		rest(2);
		x--;
		if(bulletfired == false){
		xbullet=x;
		ybullet = y;
		bulletmode=2;
    }
    }
    if(key[KEY_RIGHT]){
		mode=1;
		rest(2);
		x++;
		if(bulletfired == false){
		xbullet=x;
		ybullet = y;
		bulletmode=1;
    }
    }
    if(key[KEY_UP]){
                    rest(2);
    y--;
    if(bulletfired == false){
    ybullet = y;
    xbullet=x;
}
}
    if(key[KEY_DOWN]){
                      rest(2);
    y++;
    if(bulletfired == false){
    ybullet = y;
    xbullet=x;
}
    
}
}   
}
void drawfield(){
     int c=0;
     for(int a = 0; a != 20;a++){
     drawrij(c);
     c=c+30;
     }               
}
void drawrij(int d){
     int x1=0, y1=0;
     water = load_bitmap("water.bmp",NULL);
    for(int a = 0; a != 30; a++){
     draw_sprite(buffer,water,x1,d);
     x1=x1+30;
     }
     
     }
void drawhaai(){
     
     srand(time(0));
     if(xhaai >=800){
     yhaai=rand()%600+40;
     xhaai=-100;
     }
     if(haaiisdood==true){
         yhaai=rand()%640;
     xhaai=-100;
     haaiisdood=false;
     rest(10);
     }     
     xhaai++;  
     rest(3);          
     haai = load_bitmap("haai.bmp",NULL);
     draw_sprite(buffer,haai,xhaai,yhaai);
     
     }
     void shoot(){
          if((xbullet <=20)||(xbullet>=620)||(haaiisdood==true)){
          drawbullet();
          justfired=false;
          bulletfired=false;
          }
          }
void drawbullet(){
     if(justfired == true){
bullet = load_bitmap("bubbel.bmp",NULL);
          draw_sprite(buffer,bullet,xbullet,ybullet);
          bulletfired=true;
          if(bulletmode == 2)
          xbullet--;
          else
          xbullet++;
                             
          }
          }
void checkcolission(){
     if((clgo_collide_bitmaps(eend,x,y,haai,xhaai,yhaai))||(clgo_collide_bitmaps(eend2,x,y,haai,xhaai,yhaai)))
     eendisdood = true;
     if(bulletfired == true){
     if(clgo_collide_bitmaps(haai,xhaai,yhaai,bullet,xbullet,ybullet)){
     haaiisdood=true;
     score++;
     xbullet=x;
     ybullet=y;
     }
     }
     }
void drawinfo(){
     textprintf(buffer,font,100,460,makecol(255,255,255),"Controls: Pijltjestoetsen = beweging, Spatiebalk = schieten");
     textprintf(buffer,font,100,470,makecol(255,255,255),"Score: %i",score);
     }
 
hmmm,
dit vind ik nogal vreemd.

Hoe komt het dat ik alleg42.dll in mijn system 32 nodig heb staan om mijn programma's uit te voeren, geschreven met allegro, terwijl dat voor jou allegro programma niet nodig :shocked:
 
Welk project type je hebt gebruikt zie de bijlage voor alle mogelijke soorten.
 

Bijlagen

  • projecttyps.png
    projecttyps.png
    94,1 KB · Weergaven: 77
Waarom doe je dit met C++?
wel eens van gamemaker gehoord? dan is het veeeel makkelijker. en sneller.
Ik wil dat spel wel maken in game maker?

Jos
 
1: dat geeft niet zo veel voldoening
2: We zitten hier in een programeerforum
 
Ik vind m nog wel een beetje buggy. Als je nou je ducky beweegt gaat de haai ineens ook langzamer :p
En als je dood bent, hoe kom je dan weer tot leven? De haaien blijven maar doorgaan, maar ducky is niet meer tot leven te wekken (behalve spel opnieuw starten dan ;)).

Ook zou ik de haaien random laten verschijnen, als ik het programma nu steeds opnieuw open komen de haaien steeds op dezelfde plek.

Daarnaast zou ik de beweging iets sneller zetten, zodat het 'net echt' lijkt.


Verder een heel leuk spel, probeer eens 3D ;)
 
kijk dan eens bij de space shooter in dit zelfde forum, dit lost de bugs op die jij vermeld hebt
 
is he tgoed dat ik hem dan door mail, het is nogal veel werk om het up te loaden
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan