Advertisement
Guest User

Untitled

a guest
Mar 24th, 2012
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.12 KB | None | 0 0
  1. class Sprite {
  2. private:
  3.     BITMAP *Load;
  4.     GLuint GLImage;
  5.     int SpriteW;
  6.     int SpriteH;
  7. public:
  8.     void Create(string Path) {
  9.         Load = NULL;
  10.         Load = load_bitmap(Path.c_str(),NULL);
  11.         if(Load == NULL) {
  12.             allegro_message("Error loading %s",Path.c_str());
  13.         } else {
  14.             SpriteW = Load->w;
  15.             SpriteH = Load->h;
  16.             GLImage = allegro_gl_make_texture_ex(AGL_TEXTURE_MASKED, Load, GL_RGBA);
  17.             glBindTexture(GL_TEXTURE_2D, GLImage);
  18.             destroy_bitmap(Load);
  19.         }
  20.     }
  21.  
  22.     void Draw(int X, int Y, int ScreenW, int ScreenH) {
  23.  
  24.         if(ScreenW == 0 || ScreenH == 0) {
  25.             allegro_message("Screen Width and/or Height invalid!");
  26.         } else {
  27.  
  28.             float PosX = ((double)X/(ScreenW/2))-1;
  29.             float PosY = ((double)Y/(ScreenH/2))-1;
  30.  
  31.             float Width = (double)SpriteW/(ScreenW/2);
  32.             float Height = (double)SpriteH/(ScreenH/2);
  33.  
  34.             glColor4ub(255, 255, 255, 255);
  35.        
  36.             glTexCoord2f(0,0); glVertex3f(PosX, -PosY, 0); // -0.96 ~ -0.95
  37.             glTexCoord2f(1,0); glVertex3f(PosX+Width, -PosY, 0); // 0.04
  38.             glTexCoord2f(1,1); glVertex3f(PosX+Width, (-PosY)-Height, 0);
  39.             glTexCoord2f(0,1); glVertex3f(PosX, (-PosY)-Height, 0);
  40.  
  41.         }
  42.     }
  43. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement