SYNOPSIS

#include <allegro.h>

void draw_sprite_v_flip(BITMAP *bmp, BITMAP *sprite, int x, int y);

void draw_sprite_h_flip(BITMAP *bmp, BITMAP *sprite, int x, int y);

void draw_sprite_vh_flip(BITMAP *bmp, BITMAP *sprite, int x, int y);

DESCRIPTION

These are like draw_sprite(), but they additionally flip the image vertically, horizontally, or both, respectively. Flipping vertically means that the y-axis is reversed, while flipping horizontally means that the x-axis is reversed, between the source and the destination. This produces exact mirror images, which is not the same as rotating the sprite (and it is a lot faster than the rotation routine). The sprite must be a memory bitmap. Example:

   if (key[KEY_RIGHT])
      draw_sprite(screen, hero_right, pos_x, pos_y);
   else if (key[KEY_LEFT])
      draw_sprite_h_flip(screen, hero_right, pos_x, pos_y);
   else
      draw_sprite(screen, hero_idle, pos_x, pos_y);

RELATED TO draw_sprite_v_flip…

draw_sprite(3alleg4), bitmap_mask_color(3alleg4), exsprite(3alleg4)