Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Temas - seov
Páginas: [1]
1
« en: Miércoles 12 de Abril de 2006, 03:56 »
Hola a todos!!!! tengo un problemilla.........o mejor una duda ya que no se hacerlo.jijijij El problemas es que estoy haciendo un juego en el que hay una tabla, una pelota y unos ladrillo.....se supone que la pelota deberia moverse por la ventana y rebotar con los bordes de la ventana y si choca con la tabla que es la que mueve el jugador podemos dirigir la pelota......el problema me viene cuando quiero animar la pelota.....no se como hacerlo........y no se como hacerlo para que se vea como que rebota........estoy trabajando con detección de colisiones rectangulares si me pueden ayudar a mover la pelota se los agradeceria......aca va lo que yo pensaba que podia mover la pelota .... #include <allegro.h> void init(); void deinit(); int main() { init(); BITMAP *pelota; BITMAP *bufer; PALETTE paleta; int x_anterior; int y_anterior; int x,y,sel; int guar_x; int guar_y; pelota=load_bitmap("pelota.bmp",paleta); pelota=load_bitmap("pelota.bmp",paleta); set_palette(paleta); if(pelota==NULL) deinit(); bufer=create_bitmap(pelota->w,pelota->h); clear(bufer); if(bufer==NULL) deinit(); x=SCREEN_W/2; y=SCREEN_H/2; while (!key[KEY_ESC]) { if(x>guar_x) { guar_x=x; x++; } if(x<guar_x) { guar_x=x; x--; } if(y<guar_y) { guar_y=y; y--; } if(y>guar_y) { guar_y=y; y++; } if(x>=SCREEN_W-pelota->w) x--; else if(x<=0) x++; else if(y>=SCREEN_H-pelota->h) y--; else if(y<=0) y++; else { x--; y++; } blit(bufer,screen,0,0,x_anterior,y_anterior,bufer->w,bufer->h); blit(screen,bufer,x,y,0,0,bufer->w,bufer->h); draw_sprite(screen,pelota,x,y); vsync();//espera a que se muestre toda la imagen en pantalla //para escribir la otra x_anterior=x; y_anterior=y; } deinit(); return 0; }END_OF_MAIN(); void deinit() { clear_keybuf(); /* añadir otras desintalaciones */ allegro_exit(); } 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, 320, 400, 0, 0); if (res != 0) { allegro_message(allegro_error); exit(-1); } install_keyboard(); }
Páginas: [1]
|