示例#1
0
文件: langsel.c 项目: gradha/multitet
/* Pops a dialog asking for language. Returns -1 if no object was selected.
 * Else returns zero and writes in string the ID of the selected language.
 */
void select_language(void)
{
   int f = -1;
   const char *lang = "en"; /* default language */
   
   set_palette(desktop_palette);
   clear_bitmap(virtual_screen);
   stretch_virtual_screen();
   _retrieve_available_languages();

   if (!_num_available_languages) {
      //alert("No languages", "to choose from!", "Will use english", "Oh", 0, 'o', 0);
      goto finish;
   }

   while ((f = virtual_do_dialog(_select_lang_dialog, 0)) < 0);
   lang = _available_languages[_select_lang_dialog[0].d1*2];

   finish:
   TRACE("select_language: '%s'\n", lang);
   set_config_string("system", "language", lang);
   reload_config_texts(0);
   text_mode(-1);
   _free_available_languages();

   clear_bitmap(virtual_screen);
   stretch_virtual_screen();
}
示例#2
0
文件: video.c 项目: oitofelix/mininim
void
start_video_effect (enum video_effect_type type, int duration)
{
  ALLEGRO_BITMAP *screen = mr.cell[0][0].screen;

  video_effect.type = type;
  video_effect.duration = duration;
  clear_bitmap (effect_buffer, BLACK);
  clear_bitmap (black_screen, BLACK);
  draw_bitmap (screen, effect_buffer, 0, 0, 0);
  al_start_timer (video_timer);
}
示例#3
0
void atirar(){
    tiro.vida = 0; 													// Quando tempo ele ficara na tela?									// Posicao do tiro (eixo X)
    tiro.py = ynave[e];  											// Posicao do tiro (eixo Y)
    int local1 = ((ini * 125) + 15) + 30;           				// Define a posição inicial da colisão
    int local2 = (local1 + 125) - 50;               				// Define a posição final da colisão
    int i = 0;
    if (e == 0){
        tiro.px = xnave[e] + 90;
	}
	else {
	    if (e == 1){
			tiro.px = xnave[e] + 150;
		}
		else {
			if (e == 2){
		        tiro.px = xnave[e] + 60;

			}
		}
	}
    
	while (tiro.vida <= 19){
        blit(buffer, screen, 0,0,0,0,1280,720);     				//Limpa a tela
       	clear_bitmap(buffer);                       				//Limpa a tela
       	draw_sprite(buffer, background[back], 0, 0);      			//Coloca a imagem na tela
       	draw_sprite(screen, nave[e], xnave[e],ynave[e]);     		//Põe a nave na tela
       	if (tiro.py > yini + 125){
        	circlefill(buffer, tiro.px, tiro.py, 5, makecol(255, 0, 0));
			draw_sprite(screen, inimigo[p], xini, yini); 				//Põe a nave na tela
		}
        tiro.py -= 20;												//Velocidade em Y (deslocamento do tiro)
    	tiro.vida += 1;                             				//Contador do "While"

        if (tiro.py <= 105){
			if ((tiro.px >= local1 ) && (tiro.px <= local2 )){
				colisao();
	        	tiro.vida = 25;
        	}
	        else{
				inimigos();
				c += 1;
			}
  }
		if (c == 3){
	        draw_sprite(screen, inimigo[p], xini,yini);   			//Põe os inimigos na tela
			perdeu();
		}
   	}
	blit(buffer, screen, 0,0,0,0,1280,720);     					//Limpa a tela
   	clear_bitmap(buffer);                       					//Limpa a tela
   	draw_sprite(buffer, background[back], 0, 0);      				//Coloca a imagem na tela
   	draw_sprite(screen, nave[e], xnave[e],ynave[e]);     			//Põe a nave na tela
}
示例#4
0
void perdeu(){

    clock_t tempo;
   	float FPS = 15.0;
   	tempo = clock();
	explosao(xnave[e] - 40, ynave[e] - 30);
	blit(buffer, screen, 0,0,0,0,1280,720);     					//Limpa a tela
	clear_bitmap(buffer);                       					//Limpa a tela
	draw_sprite(buffer, background[back], 0, 0);      				//Coloca a imagem na tela

	draw_sprite(screen, inimigo[p], 15,yini); 						//Põe a nave na tela
	loser();

	while (!key[KEY_ENTER]){

		textout(screen, font, "Voce perdeu! Tecle 'Enter' para comecar novamente", 450,350, makecol(255,0,0 ) );
		char txt[15]; sprintf(txt,"x + %d = %d", b, a);				//Inicializa o texto
		char txt2[15]; sprintf(txt2,"Score = %d", score);			//Inicializa o texto
		textout(screen,font,txt,5,5,makecol(255,0,0));  			//Exibe o texto
		textout(screen,font,txt2,5,20,makecol(255,0,0));  			//Exibe o texto
		if ( (double)(clock() - tempo) >= 1000/FPS ) {
			if (p == 10){
				p++;
			}
			else {
				if (p == 11){
					p++;
				}
				else {
					if (p == 12){
						p++;
					}
					else {
						if (p == 13){
							p = 10;
						}
					}
				}
			}
			blit(buffer, screen, 0,0,0,0,1280,720);     			//Limpa a tela
	        clear_bitmap(buffer);                       			//Limpa a tela
	        draw_sprite(buffer, background[back], 0, 0);      		//Coloca a imagem na tela
			draw_sprite(screen, inimigo[p], 15,yini); 				//Põe a nave na tela
	        tempo = clock();
		}
	}
	c = 0;
    yini = 40.0;
	score = 0;
	nivel = 1.0;
	back = 0;
}
示例#5
0
void render_heartbeat()
{
	frame_delay = 40;

	// how to sequence frames using case statement

	switch (frame%10)
	{
		case 0: render_character(3);	break;	
		case 1: clear_bitmap();			break;	
		case 2: render_character(3);	break;	
		case 3: clear_bitmap();			break;	
	}
}
示例#6
0
void explosao2(){
    expl();
    clock_t tempo;
   	float FPS = 15.0;
   	tempo = clock();
    int i = 0;
	int x = -50.0;
	int y = yini - 50.0;
	int k = 0;
	float l = 140.0;
	int m = 0;
	int q = 0;

	bomba[0] = load_bitmap("c1.bmp", NULL);
    bomba[1] = load_bitmap("c2.bmp", NULL);
    bomba[2] = load_bitmap("c3.bmp", NULL);
    bomba[3] = load_bitmap("c4.bmp", NULL);
    bomba[4] = load_bitmap("c5.bmp", NULL);
	bomba[5] = load_bitmap("c6.bmp", NULL);
	bomba[6] = load_bitmap("c7.bmp", NULL);
	bomba[7] = load_bitmap("c8.bmp", NULL);
	bomba[8] = load_bitmap("c9.bmp", NULL);
	bomba[9] = load_bitmap("c10.bmp", NULL);
	bomba[10] = load_bitmap("c11.bmp", NULL);
 	
	blit(buffer, screen, 0,0,0,0,1280,720);     					//Limpa a tela
	clear_bitmap(buffer);                       					//Limpa a tela
	draw_sprite(buffer, background[back], 0, 0);      				//Coloca a imagem na tela
 	draw_sprite(screen, inimigo[p], 15,yini); 						//Põe a nave na tela
 	while(m < 10){
        if ( (double)(clock() - tempo) >= 1000/FPS ) {
            blit(buffer, screen, 0,0,0,0,1280,720);     			//Limpa a tela
			clear_bitmap(buffer);                       			//Limpa a tela
			draw_sprite(buffer, background[back], 0, 0);      		//Coloca a imagem na tela
	        draw_sprite(screen, bomba[m], -50, y);
	        draw_sprite(screen, bomba[m], 75, y);
	        draw_sprite(screen, bomba[m], 200, y);
	        draw_sprite(screen, bomba[m], 325, y);
	        draw_sprite(screen, bomba[m], 450, y);
	        draw_sprite(screen, bomba[m], 575, y);
	        draw_sprite(screen, bomba[m], 700, y);
	        draw_sprite(screen, bomba[m], 825, y);
	        draw_sprite(screen, bomba[m], 950, y);
	        draw_sprite(screen, bomba[m], 1075, y);
	        draw_sprite(screen, nave[e], xnave[e],ynave[e]);     	//Põe a nave na tela
	        m++;
	        tempo = clock();
		}
	}
}
示例#7
0
文件: video.c 项目: oitofelix/mininim
void
init_video (void)
{
  if (! al_init_image_addon ())
    error (-1, 0, "%s (void): failed to initialize image addon",
            __func__);

  al_set_new_display_flags (al_get_new_display_flags ()
                            | (display_mode < 0 ? ALLEGRO_WINDOWED : ALLEGRO_FULLSCREEN)
                            | ALLEGRO_RESIZABLE
                            | ALLEGRO_GENERATE_EXPOSE_EVENTS);

  display_width = display_width ? display_width : DISPLAY_WIDTH;
  display_height = display_height ? display_height : DISPLAY_HEIGHT;

  if (display_mode >= 0) {
    ALLEGRO_DISPLAY_MODE d;
    get_display_mode (display_mode, &d);
    display_width = d.width;
    display_height = d.height;
    al_set_new_display_refresh_rate (d.refresh_rate);
    al_set_new_display_flags (al_get_new_display_flags ()
                              & ~ALLEGRO_FULLSCREEN_WINDOW);
  }

  al_set_new_display_option (ALLEGRO_SINGLE_BUFFER, 1, ALLEGRO_SUGGEST);

  display = al_create_display (display_width, display_height);
  if (! display) error (-1, 0, "%s (void): failed to initialize display", __func__);

  set_target_backbuffer (display);
  al_set_new_bitmap_flags (ALLEGRO_VIDEO_BITMAP);

  al_set_window_title (display, WINDOW_TITLE);
  icon = load_bitmap (ICON);
  al_set_display_icon (display, icon);

  cutscene = true;
  if (mr.fit_w == 0 && mr.fit_h == 0) {
    mr.fit_w = 2;
    mr.fit_h = 2;
  }
  set_multi_room (1, 1);
  effect_buffer = create_bitmap (CUTSCENE_WIDTH, CUTSCENE_HEIGHT);
  black_screen = create_bitmap (CUTSCENE_WIDTH, CUTSCENE_HEIGHT);
  uscreen = create_bitmap (CUTSCENE_WIDTH, CUTSCENE_HEIGHT);
  iscreen = create_bitmap (display_width, display_height);
  clear_bitmap (uscreen, TRANSPARENT_COLOR);

  video_timer = create_timer (1.0 / EFFECT_HZ);

  al_init_font_addon ();
  builtin_font = al_create_builtin_font ();
  if (! builtin_font)
    error (-1, 0, "%s (void): cannot create builtin font", __func__);

  if (! al_init_primitives_addon ())
    error (-1, 0, "%s (void): failed to initialize primitives addon",
           __func__);
}
示例#8
0
void render_fire()
{
	int r;

	frame_delay = 40;
	clear_bitmap();

	// another modulus based particle system

	// fire body
	r = (frame+0)%3;	bitmap[0][6-r] = 1;
	r = (frame+1)%2;	bitmap[1][6-r] = 1;
	r = (frame+0)%2;	bitmap[2][6-r] = 1;
	r = (frame+1)%2;	bitmap[3][6-r] = 1;
	r = (frame+1)%3;	bitmap[4][6-r] = 1;

	r = (frame+1)%5;	bitmap[1][6-r] = 1;
	r = (frame+0)%3;	bitmap[2][6-r] = 1;
	r = (frame+2)%5;	bitmap[3][6-r] = 1;

	r = (frame+4)%4;	bitmap[0][6-r] = 1;
	r = (frame+1)%4;	bitmap[1][6-r] = 1;
	r = (frame+0)%4;	bitmap[2][6-r] = 1;
	r = (frame+3)%4;	bitmap[3][6-r] = 1;
	r = (frame+2)%4;	bitmap[4][6-r] = 1;

	// sparks
	r = (frame+0)%19;	if (r<COLS) bitmap[0][6-r] = 1;
	r = (frame+0)%6;	if (r<COLS) bitmap[1][6-r] = 1;
	r = (frame+0)%7;	if (r<COLS) bitmap[2][6-r] = 1;
	r = (frame+2)%6;	if (r<COLS) bitmap[3][6-r] = 1;
	r = (frame+0)%17;	if (r<COLS) bitmap[4][6-r] = 1;

}
示例#9
0
int main( void )
{
   int depth;   /* represents color depth */

   /* first, set up Allegro and the graphics mode */
   allegro_init(); /* initialize Allegro */
   install_keyboard(); /* install the keyboard for Allegro to use */
   
   depth = desktop_color_depth();  /* find out what color depth is on our computer */
   if (depth == 0)
	   depth = 32;
   set_color_depth( depth ); /* set the color depth to depth used by our computer */

   set_gfx_mode( GFX_AUTODETECT_WINDOWED, 640, 480, 0, 0 ); /* set graphics mode */
   ball = load_bitmap( "ball.bmp", NULL ); /* load the ball bitmap */
   buffer = create_bitmap( SCREEN_W, SCREEN_H ); /* create buffer */
   ball_x = SCREEN_W / 2; /* give the ball its initial x-coordinate */
   ball_y = SCREEN_H / 2; /* give the ball its initial y-coordinate */
   srand( time( NULL ) ); /* seed the random function ... */
   direction = rand() % 4; /* and then make a random initial direction */

   while ( !key[KEY_ESC] ) /* until the escape key is pressed ... */
   {
      moveBall(); /* move the ball */
      /* now, perform double buffering */
      clear_to_color( buffer, makecol( 255, 255, 255 ) );
      blit( ball, buffer, 0, 0, ball_x, ball_y, ball->w, ball->h );
      blit( buffer, screen, 0, 0, 0, 0, buffer->w, buffer->h );    
      clear_bitmap( buffer );
   } /* end while */

   destroy_bitmap( ball ); /* destroy the ball bitmap */
   destroy_bitmap( buffer ); /* destroy the buffer bitmap */
   return 0;
} /* end function main */
示例#10
0
文件: fs.c 项目: claytondus/cdnwsh
//**************release_inode***********
void release_inode(iptr inode_ptr)
{
	superblock* super = (superblock*)&superblk_cache;
	clear_bitmap(&inode_bm_cache, inode_ptr);
	super->free_inode_count++;
	flush_metadata();
}
示例#11
0
文件: fs.c 项目: claytondus/cdnwsh
//**************release_block***********
void release_block(iptr blockid)
{
	superblock* super = (superblock*)&superblk_cache;
	clear_bitmap(&block_bm_cache, blockid);
	super->free_block_count++;
	flush_metadata();
}
示例#12
0
void render_game()
{
	clear_bitmap(backbuffer);

	// TODO: *** draw stuff here
	game->render(backbuffer);
}
示例#13
0
void PlaceItDrawer::drawStructureIdAtCell(cBuildingListItem *itemToPlace, int cell) {
	assert(itemToPlace);
	assert(cell >= 0);

	int structureId = itemToPlace->getBuildId();

	int iDrawX = map->mouse_draw_x();
	int iDrawY = map->mouse_draw_y();

	if (structureId == SLAB1) {
		draw_trans_sprite(bmp_screen, (BITMAP *) gfxdata[PLACE_SLAB1].dat, iDrawX, iDrawY);
	} else if (structureId == SLAB4) {
		draw_trans_sprite(bmp_screen, (BITMAP *) gfxdata[PLACE_SLAB4].dat, iDrawX, iDrawY);
	} else if (structureId == WALL) {
		draw_trans_sprite(bmp_screen, (BITMAP *) gfxdata[PLACE_WALL].dat, iDrawX, iDrawY);
	} else {
		BITMAP *temp;
		temp = create_bitmap(structures[structureId].bmp_width, structures[structureId].bmp_height);
		clear_bitmap(temp);

		blit(structures[structureId].bmp, temp, 0, 0, 0, 0, structures[structureId].bmp_width, structures[structureId].bmp_height);

		draw_trans_sprite(bmp_screen, temp, iDrawX, iDrawY);

		destroy_bitmap(temp);
	}

}
示例#14
0
/* do_fli_black:
 *  Processes an FLI BLACK chunk
 */
static void do_fli_black(void)
{
   clear_bitmap(fli_bitmap);

   fli_bmp_dirty_from = 0;
   fli_bmp_dirty_to = fli_bitmap->h-1;
}
示例#15
0
static void next(void)
{
   textprintf_centre_ex(screen, font, SCREEN_W / 2,
      SCREEN_H - text_height(font), -1, -1, "Press a key to continue");
   readkey();
   clear_bitmap(screen);
}
示例#16
0
int main()
{

allegro_init();
install_keyboard();
set_color_depth(16);
set_gfx_mode(GFX_AUTODETECT,640,480,0,0);
ball=load_bitmap("ball.bmp",NULL);
buffer=create_bitmap(SCREEN_W,SCREEN_H);
ball_x=SCREEN_W/2;
ball_y=SCREEN_H/2;
srand(time(NULL));
direction= rand()%4;

while(!key[KEY_ESC])
{
moveball();
clear_to_color(screen,makecol(256,256,256));
blit(ball,buffer,0,0,ball_x,ball_y,ball->w,ball->h);
blit(buffer,screen,0,0,0,0,buffer->w,buffer->h);
clear_bitmap(buffer);
}
destroy_bitmap(ball);
destroy_bitmap(buffer);
return(0); 
}
/**
 * Draw the amount of squares a structure would take. The X and Y coordinates are the top
 * left coordinates of an icon.
 *
 * @param structureId
 * @param x
 * @param y
 */
void cBuildingListDrawer::drawStructureSize(int structureId, int x, int y) {
	// figure out size
	int iW=structures[structureId].bmp_width/32;
	int iH=structures[structureId].bmp_height/32;
	int iTile = GRID_1X1;

	if (iW == 2 && iH == 2) {
		iTile = GRID_2X2;
	}

	if (iW == 3 && iH == 2) {
		iTile = GRID_3X2;
	}

	if (iW == 3 && iH == 3) {
		iTile = GRID_3X3;
	}

	BITMAP *temp=create_bitmap(19,19);
	clear_bitmap(temp);
	set_trans_blender(0, 0, 0, 192);

	draw_trans_sprite(temp, bmp_screen, x + 43, y + 20);

	draw_sprite(temp, (BITMAP *)gfxinter[GRID_0X0].dat, 0, 0);

	draw_trans_sprite(bmp_screen, temp, x + 43, y + 20);

	draw_sprite(bmp_screen, (BITMAP *)gfxinter[iTile].dat, x + 43, y + 20);

	destroy_bitmap(temp);

}
示例#18
0
/*
Nom : countodwn
Fonction :  fait apparaître un compte à rebourd à l'écran
Entrées : tableau d'images, le wallpaper et le buffer
Sorties :
Date de dernière modification : 14/03
Nature de la dernière modification : création
Version : 1.0
*/
void countdown(BITMAP* img[BMP_NB],t_game* level)
{
    BITMAP* buffer = create_bitmap(WIDTH,HEIGHT);
    int i,j;

    blit(level->back,img[7],0,0,0,0,WIDTH,HEIGHT);
    masked_blit(level->fore,img[7],0,0,0,0,WIDTH,HEIGHT);
    masked_blit(img[57],img[7],0,0,0,100,WIDTH,HEIGHT);

    if (level->level == 1 || level->level == 2) masked_blit(img[66],img[7],0,0,13,593,img[66]->w,img[66]->h); //storm
    if (level->level == 1 || level->level == 2) masked_blit(img[64],img[7],0,0,130,593,img[64]->w,img[64]->h); //cyclope
    if (level->level == 1) masked_blit(img[65],img[7],0,0,252,595,img[65]->w,img[65]->h); //green lantern
    if (level->level == 2) masked_blit(img[63],img[7],0,0,252,595,img[63]->w,img[63]->h); //captain america

    for(i = 3; i >= 0; i--)
    {
        for(j = 0; j < 48; j++)
        {
            blit(img[7],buffer,0,0,0,0,1000,700);
            masked_stretch_blit(img[i], buffer, 0, 0, img[i]->w, img[i]->h, (WIDTH-(img[i]->w-(10*j)))/2, (HEIGHT-(img[i]->h-(17*j)))/2, img[i]->w-(10*j), img[i]->h-(17*j));
            blit(buffer,screen,0,0,0,0,1000,700);
            rest(20);
            clear_bitmap(buffer);
        }
        rest(700);
    }
    destroy_bitmap(buffer);
}
示例#19
0
int main(){
    
    declarevalues();
 
 
    allegro_init();
    install_keyboard();
    install_mouse();
    set_color_depth(32);
    set_gfx_mode(GFX_AUTODETECT_WINDOWED, Screen.getwidth(), Screen.getheight(), 0, 0);
    
    buffer = create_bitmap(Screen.getwidth(), Screen.getheight());


Loadproperties();


while (!key[KEY_ESC]) // Here is the game loop.
{

    declarearray();
    create_world();
     
     
     circlefill(buffer, mouse_x, mouse_y, 5, makecol(255, 0, 0));
    
    
        textprintf_ex(buffer, font, 10, 10, makecol(255, 100, 200), -1, "%s", testchar.testname.c_str() );
        
               
    blit(buffer, screen, 0, 0, 0, 0, Screen.getwidth(), Screen.getheight());
    clear_bitmap(buffer);
}   
    return 0;   
}   
示例#20
0
void escolha(){
	int i = 0;
	nave[0] = load_bitmap("nave1.bmp", NULL);          				//A Nave recebe a imagem
    nave[1] = load_bitmap("nave2.bmp", NULL);          				//A Nave recebe a imagem
    nave[2] = load_bitmap("nave3.bmp", NULL);          				//A Nave recebe a imagem
	while(!key[KEY_ENTER]){
        blit(buffer, screen, 0,0,0,0,1280,720);     				//Limpa a tela
		clear_bitmap(buffer);                       				//Limpa a tela
		draw_sprite(buffer, background[back], 0, 0);      			//Coloca a imagem na tela
		draw_sprite(screen, nave[i], xnave[i],250);         		//Põe a nave na tela
		textout(screen, font, "Use as teclas para a 'Direita', 'Esquerda' e 'Enter' para escolher.", 380,500, makecol(255,0,0 ) );

		readkey();

		if (key[KEY_RIGHT]){
			if (i < 2){
				i++;
				draw_sprite(screen, nave[i], xnave[i],250);         //Põe a nave na tela
			}
		}
		if (key[KEY_LEFT]){
			if (i > 0){
				i--;
				draw_sprite(screen, nave[i], xnave[i],250);         //Põe a nave na tela
			}
		}
		e = i;
	}
	escnave();
}
示例#21
0
文件: jukebox.c 项目: msikma/ceegee
/**
 * The main loop of the jukebox. Waits for the end of the song (while updating
 * the timer) and then returns an indicator that we need the next song.
 * Also waits for keypresses; the user can press ESC, left arrow or right arrow
 * to trigger appropriate return codes.
 */
int jukebox_loop() {
    int key_p;
    while (TRUE) {
        while (keypressed()) {
            key_p = readkey() >> 8;
            if (key_p == KEY_ESC) {
                return JUKEBOX_EXIT;
            }
            if (key_p == KEY_LEFT) {
                return JUKEBOX_PREV_SONG;
            }
            if (key_p == KEY_RIGHT) {
                return JUKEBOX_NEXT_SONG;
            }
        }
        clear_bitmap(buffer);
        update_starfield(buffer);
        update_track_data();
        update_song_data();
        draw_help();
        vsync();
        blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H);

        // When we're at the end of the file, midi_pos will be set to
        // the negative number of beats in the song.
        if (midi_pos < 0) {
            rest(TRACK_CHANGE_WAIT);
            return JUKEBOX_NEXT_SONG;
        }
    }
}
示例#22
0
// <- FUNCTIONS -> //
void display(void)
{

    clear_bitmap(buffer);  //clear the buffer

    display_grid();   //displays the blue check box
    display_text();   //displays the text

    display_marks();  //displays the X's and O's





    if(game_win == true)
        draw_sprite(buffer, WIN, mouse_x - ABOVE_MOUSE, mouse_y - ABOVE_MOUSE);
    else if(player == 0)
        //draws the pointer X or O as the mouse moves
        draw_sprite(buffer, O_MARK, mouse_x - ABOVE_MOUSE, mouse_y - ABOVE_MOUSE);
    //masked_blit(CIRCLE, buffer, 0, 0, mouse_x - ABOVE_MOUSE, mouse_y - ABOVE_MOUSE, SCREEN_W, SCREEN_H);
    else if(player == 1)
        //draws the pointer X or O as the mouse moves
        draw_sprite(buffer, X_MARK, mouse_x - ABOVE_MOUSE, mouse_y - ABOVE_MOUSE);

    blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H);

}
示例#23
0
void
update_cache (enum em em, enum vm vm)
{
  int x, y;

  int room_view_bkp = room_view;

  clear_bitmap (cache, TRANSPARENT_COLOR);

  con_caching = true;

  for (y = mr.h - 1; y >= 0; y--)
    for (x = 0; x < mr.w; x++) {
      if (mr.cell[x][y].room) {
        room_view = mr.cell[x][y].room;
        mr.dx = x;
        mr.dy = y;
        draw_room (mr.cell[x][y].cache, room_view, em, vm);
      } else draw_bitmap (room0, mr.cell[x][y].cache, 0, 0, 0);
    }

  con_caching = false;

  room_view = room_view_bkp;
}
示例#24
0
void playerLose()
{

     
    SAMPLE *death = load_sample("Death.wav");
     
 
     BITMAP *loseBackground = NULL;
     loseBackground = load_bitmap("Spider Victor 3D.bmp", NULL); 
     BITMAP *explosion = NULL;
     explosion = load_bitmap("Explosion.bmp", NULL);
     BITMAP *spider = NULL;
     spider = load_bitmap("Spider1.bmp", NULL); 
     
     
  
     playerIsDead = 1;
     clear_bitmap(buffer);
     draw_sprite(buffer, loseBackground, 0, 0);     
     draw_sprite(buffer, explosion, turretX - 20, turretY - 20);
     draw_sprite(buffer, spider, spiderX[j], spiderY[j]);
     currentImage = 2;
     play_sample(death, 255, 0, 500, 0);
     return;
     
     


     
}
示例#25
0
int selectRace()
{
    BITMAP *raceBuffer = NULL;
    raceBuffer = create_bitmap(1024,768); //Create an empty bitmap.
    BITMAP *raceXeno = NULL;
    raceXeno = load_bitmap("Select Screen Xenopatriots.bmp", NULL); // Load our picture
    BITMAP *raceExped = NULL;
    raceExped = load_bitmap("Select Screen Expeditiones.bmp", NULL); // Load our picture
    while (!mouse_b)
          {
                   if (mouse_x > 518)
                   {
                      draw_sprite(raceBuffer, raceXeno, 0, 0);
                   }
                   else
                   {
                       draw_sprite(raceBuffer, raceExped, 0, 0);
                   }
                   draw_sprite(raceBuffer, mouse, mouse_x, mouse_y);
                   blit(raceBuffer, screen, 0,0,0,0,1024,768);
                   clear_bitmap(raceBuffer);
          }
          if (mouse_x > 380)
           {
              return 1;
           }
           else
           {
               return 0;
           }

}
示例#26
0
文件: stars.c 项目: jolfzverb/mininim
void
draw_princess_room_stars (ALLEGRO_BITMAP *bitmap, enum vm vm)
{
  int i, min_x = INT_MAX, min_y = INT_MAX,
    max_x = INT_MIN, max_y = INT_MIN;

  static struct star s[6] = {
    {20,97,0}, {16,104,1}, {23,110,0},
    {17,116,1}, {24,120,2}, {18,128,2}};

  static struct stars_bitmap sb = {.b = NULL};

  if (! sb.b) {
    for (i = 0; i < 6; i++) {
      min_x = min_int (min_x, s[i].x);
      min_y = min_int (min_y, s[i].y);
      max_x = max_int (max_x, s[i].x);
      max_y = max_int (max_y, s[i].y);
    }

    sb.b = create_bitmap (max_x - min_x + 1, max_y - min_y + 1);
    clear_bitmap (sb.b, TRANSPARENT_COLOR);
    sb.c.x = min_x;
    sb.c.y = min_y;

    redraw_stars_bitmap (&s[0], &sb, 6, vm);
  }

  if (vm != last_vm) {
    redraw_stars_bitmap (&s[0], &sb, 6, vm);
    last_vm = vm;
  }

  draw_stars (bitmap, s, &sb, 6, vm);
}
示例#27
0
void crear_cabeza() {
	int i, j;
	cabeza = create_bitmap(10, 10);
	clear_bitmap(cabeza);
	for(i = 0; i < 10; i++)
		for (j = 0; j < 10; j++)
			putpixel(cabeza, i, j, palette_color[cabeza_bits[j][i]]);
}
示例#28
0
void crear_comida() {
	int i, j;
	comida = create_bitmap(10, 10);
	clear_bitmap(comida);
	for(i = 0; i < 10; i++)
		for (j = 0; j < 10; j++)
			putpixel(comida, i, j, palette_color[fruta_bits[j][i]]);
}
示例#29
0
文件: video.c 项目: oitofelix/mininim
void
draw_fade (ALLEGRO_BITMAP *from, ALLEGRO_BITMAP *to, float factor)
{
  factor = factor < 0 ? 0 : factor;
  clear_bitmap (black_screen, al_map_rgba_f (0, 0, 0, factor));
  draw_bitmap (from, to, 0, 0, 0);
  draw_bitmap (black_screen, to, 0, 0, 0);
}
void Game_sys::BlitToScreen( bool player_alive ) // BLIT THE BUFFER TO THE SCREEN
{
    if( player_alive )
    {
    blit( buffer, screen, 0, 0, 0, 0, screenwidth, screenheight );
    clear_bitmap( buffer );
    }
}