• Jueves 2 de Diciembre de 2021, 20:47

Mostrar Mensajes

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.


Mensajes - JorgedeOz

Páginas: [1]
1
Allegro / Metodos de dibujo
« en: Domingo 27 de Julio de 2008, 04:15 »
que onda!!!
primero que nada pues soy nuevo aqui y tambien soy nuevo en esto de la programacion con allegro
y espero que me puedan ayudar un poco con un ejemplo de juego.
Es el juego de las navez, el fondo y las naves las agarre de un ejemplo de por aqui y quisiera saber si hay otro metodo de dibujar los disparos
bueno aqui esta el codigo
Código: Text
  1. #include <allegro.h>
  2. #include <iostream>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6. typedef struct bitmap
  7. {
  8.         int h,w;
  9. };
  10. void init();
  11. void deinit();
  12. BITMAP* buffer;
  13. BITMAP* buffer2;
  14. BITMAP* espacio;
  15. BITMAP* nave_up;
  16. BITMAP* rayo;
  17. double x,y,x_anterior,y_anterior;
  18. float x1,y1;
  19. int main()
  20. {
  21.     init();
  22.  while (!key[KEY_ESC])
  23.    {
  24.        x1=x+nave_up->w/2;
  25.        y1=y+nave_up->h-100;
  26.        x_anterior=x; y_anterior=y;
  27.         /* put your code here */
  28.         clear_bitmap(buffer);
  29.         draw_sprite(buffer,espacio,0,0);
  30.       rectfill(buffer,200,5,400,50,makecol(23,34,54));
  31.       draw_sprite(buffer,nave_up,x,y);
  32.       if(key[KEY_DOWN])
  33.          y+=2;
  34.       if(key[KEY_UP])
  35.          y-=2;
  36.       if(key[KEY_RIGHT])
  37.          x+=2;
  38.       if(key[KEY_LEFT])
  39.          x-=2;
  40.       if(x>SCREEN_W-nave_up->w)
  41.           x=x_anterior;
  42.       if(x<0)
  43.           x=x_anterior;
  44.       if(y>SCREEN_H-nave_up->h)
  45.           y=y_anterior;
  46.       if(y<0)
  47.           y=y_anterior;
  48.       if(key[KEY_SPACE])
  49.       {
  50.           for(y1=y+nave_up->h-100; y1>0; y1=y1-4)
  51.           {
  52.           draw_sprite(buffer,espacio,0,0);
  53.           rectfill(buffer,200,5,400,50,makecol(23,34,54));
  54.           draw_sprite(buffer,nave_up,x,y);
  55.           textout(buffer,font,"Mi primer juego",240,20,makecol(255,255,255));
  56.           blit(buffer,buffer2,0,0,0,0,SCREEN_W,SCREEN_H);
  57.           draw_sprite(buffer2,rayo,x1,y1);
  58.           circlefill(buffer2,x1,y1,5,255);
  59.           textprintf_centre(buffer2,font,60,0,makecol(255,255,255),"Rayo:%.2f",y1);
  60.              blit(buffer2,buffer,0,0,0,0,SCREEN_W,SCREEN_H);
  61.              blit(buffer,screen,0,0,0,0,SCREEN_W,SCREEN_H);
  62.           }
  63.       }
  64.       text_mode(-1);
  65.       textout(buffer,font,"Mi primer juego",240,20,makecol(255,255,255));
  66.         blit(buffer,screen,0,0,0,0,SCREEN_W,SCREEN_H);
  67.     }
  68.     deinit();
  69.    destroy_bitmap(buffer);
  70.    destroy_bitmap(espacio);
  71.    destroy_bitmap(nave_up);
  72.    destroy_bitmap(rayo);
  73.    destroy_bitmap(buffer2);
  74.     return 0;
  75. }
  76. END_OF_MAIN()
  77. void init()
  78. {
  79.     int depth, res;
  80.     allegro_init();
  81.     depth = desktop_color_depth();
  82.     if (depth == 0) depth = 32;
  83.     set_color_depth(depth);
  84.     res = set_gfx_mode(GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0);
  85.     if (res != 0)
  86.    {
  87.         allegro_message(allegro_error);
  88.         exit(-1);
  89.     }
  90.    buffer=create_bitmap(SCREEN_W,SCREEN_H);
  91.    buffer2=create_bitmap(buffer->w,buffer->h);
  92.     espacio=load_bitmap("espacio.bmp",0);
  93.    nave_up=load_bitmap("nave_up.tga",0);
  94.    rayo=load_bitmap("rayo.tga",0);
  95.     install_timer();
  96.     install_keyboard();
  97.     install_mouse();
  98.     /* add other initializations here */
  99. }
  100.  
  101. void deinit()
  102. {
  103.     clear_keybuf();
  104.     /* add other deinitializations here */
  105. }
  106.  
  107.  
el caso es que use 2 bitmaps para dibujar y al momento del disparo tengo que copiar el bitmap anterior y volver a dibujar todo y despues de nuevo volver a mandarlo al inicio y despues a pantalla emm ps creo que hay mejores metodos para hacer esto pero no se cuales xD  espero que me puedan ayudar saludos!!!!

2
Programación de Videojuegos / [Código Fuente] buen tetris
« en: Domingo 27 de Julio de 2008, 03:56 »
que onda...
pues yo aqui soy principiante
con allegro y en el foro tambien
y pues quiero decir que tu tetris es muy bueno si que si http://www.solocodigo.com/images/icons/icon10.gif
http://www.solocodigo.com/images/icons/icon10.gif
nada mas faltaria al perden algo de reiniciar o algo asi xD
espero poder algun dia llegar a hacer uno de esos bueno me
despido saludos!!!!

Páginas: [1]