Message-ID: <001501be1569$3dfa0f20$7dd1d8d4@tedi0117> From: "Emiliano Baggiani" To: Subject: Re: colide Date: Sat, 21 Nov 1998 17:01:16 +0100 MIME-Version: 1.0 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 4.72.2106.4 X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4 Content-Type: multipart/mixed; boundary="----=_NextPart_000_000E_01BE1570.8DD32CA0" Reply-To: djgpp AT delorie DOT com Messaggio a pił sezioni in formato MIME. ------=_NextPart_000_000E_01BE1570.8DD32CA0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit I've resolved your problem (it's a little thing). I've attached the '.c' file to this message. -----Original Message----- Da: Lazer ---¤--- A: djgpp AT delorie DOT com Data: sabato 21 novembre 1998 15.10 Oggetto: colide Hi Im writing a game using djgpp,allegro and Bounding-Box collision detection(http://www.geocities.com/SiliconValley/Park/1077) Could any-one take alot at my source (its a mess,but..)? The error is in line 138,139 & 140, but i dont know what wrong!! (it compiles,but won't run) Thanks Lazer ------=_NextPart_000_000E_01BE1570.8DD32CA0 Content-Type: application/octet-stream; name="Sample.c" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="Sample.c" #include #include "allegro.h" #define MAX_SPRITES 10 struct spr_bb{=20 int bb_height; int bb_width; } spr_bb[MAX_SPRITES]; int x1=3D20, y1=3D20;=20 int x2=3D150, y2=3D150; int sp1=3D1, sp2=3D2; void init_sp_bb() { int l; for (l=3D0; l<(MAX_SPRITES+1); l++) { spr_bb[l].bb_height=3D0; spr_bb[l].bb_width=3D0; } } void mk_spr_bb(BITMAP *s3, int spr_no) { int bb_height=3D0; int bb_width=3D0;=20 int x1, y1; int p;=20 =20 for (y1=3D0; y1<128; y1++) =20 { for (x1=3D0; x1<128; x1++) =20 { p=3Dgetpixel(s3,x1,y1); =20 if ((p!=3D0) && (p!=3D-1)) =20 { if (y1>bb_height) bb_height=3Dy1; if (x1>bb_width) bb_width=3Dx1; =20 } } } spr_bb[spr_no].bb_height=3Dbb_height;=20 spr_bb[spr_no].bb_width=3Dbb_width; } int check_collision(int spr1, int spr1x, int spr1y, int spr2, int spr2x, = int spr2y) { if ((spr1x>spr2x+spr_bb[spr2].bb_width) || (spr2x > = spr1x+spr_bb[spr1].bb_width) || (spr1y>spr2y+spr_bb[spr2].bb_height) || (spr2y> = spr1y+spr_bb[spr1].bb_height)) { return 0; } else { return 1; } } int main() { int qi =3D 3; int s =3D 0; int ways =3D 1; int b =3D 0; int w =3D 1; int a =3D 100; int i =3D 0; int q; BITMAP *the_ball; BITMAP *the_image; PALLETE the_pallete; the_image =3D load_bitmap("pix1.bmp", the_pallete); allegro_init(); install_keyboard();=20 install_timer(); set_pallete(desktop_pallete); set_gfx_mode (GFX_AUTODETECT, 320,200, 4, 0); set_pallete(the_pallete); clear(the_image); the_ball =3D create_bitmap(8, 8); clear(the_ball); circle(the_ball, 2, 2, 2, 2); =20 the_image =3D load_bitmap("gra1.bmp", the_pallete); draw_sprite(screen, the_image, (SCREEN_W-the_image->w)/2, = 200-the_image->h); q =3D (SCREEN_W-the_image->w)/2; w =3D 170; b=3D3; s=3DSCREEN_W/2; ways=3D1; /*Lines added by Emiliano Baggiani BEGIN*/ #define THEBALL 0 #define THEIMAGE 1 mk_spr_bb(the_ball,THEBALL); mk_spr_bb(the_image,THEIMAGE); /*Lines added by Emiliano Baggiani END*/ while(!key[KEY_ESC]) { if(b<2){ w=3Dw-1; if(ways<2){ s=3Ds-1; } if(s<2){ ways=3D3; } if(ways>2){ s=3Ds+1; } if(s>318){ ways=3D1; } if(w<2){ b=3D3; } } if(b>2){ w=3Dw+1; if(ways>2){ s=3Ds+1; } if(s>318){ ways=3D1; } if(ways<2){ s=3Ds-1; } if(s<2){ ways=3D3; } if(w>(200-the_image->h)-2){ b=3D1; if = (check_collision(THEBALL,s,w,THEIMAGE,q,200-the_image->h)){// ERROR // rest(1000);// ERROR // /*You've passed a pointer to a bitmap, but It require an = int!*/ }// ERROR // } } clear (screen); draw_sprite(screen, the_image, q, 200-the_image->h); circle(screen, s, w, 2, 2); rest(10); if(key[KEY_LEFT]) { clear(screen); q=3Dq-10; if (q<1) q=3D1; draw_sprite(screen, the_image, q, 200-the_image->h); circle(screen, s, w, 2, 2); clear_keybuf(); } if(key[KEY_RIGHT]) { clear(screen); q=3Dq+10; if (q>241) q=3D241; draw_sprite(screen, the_image, q, 200-the_image->h); circle(screen, s, w, 2, 2); clear_keybuf(); } } fade_out(5); } /* Hello from Leghorn (Tuscany - Italy)! Contact me, I'm an italian c\c++ programmer and i'm programming a game with DJGPP in c++. If you want any help, don't esitate to contact me. EMAIL : eliobagg AT tin DOT it URL : http://space.tin.it/computer/ebaggian */ ------=_NextPart_000_000E_01BE1570.8DD32CA0--