home *** CD-ROM | disk | FTP | other *** search
/ Game Programming - All in One (3rd Edition) / game_prog_all_in_one_3rd_ed.iso / sources / chapter14 / tankwar_r7 / tankwar.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-09-15  |  2.1 KB  |  101 lines

  1. /////////////////////////////////////////////////////////////////////////
  2. // Game Programming All In One, Third Edition
  3. // Tank War Enhancement 7 - tankwar.h
  4. /////////////////////////////////////////////////////////////////////////
  5.  
  6. #ifndef _TANKWAR_H
  7. #define _TANKWAR_H
  8.  
  9. #include <allegro.h>
  10. #include "mappyal.h"
  11.  
  12.  
  13. //define some game constants
  14. #define MODE GFX_AUTODETECT_FULLSCREEN
  15. #define WIDTH 640
  16. #define HEIGHT 480
  17. #define MAXSPEED 4
  18. #define BULLETSPEED 10
  19. #define TILEW 32
  20. #define TILEH 32
  21. #define TILES 39
  22. #define COLS 10
  23. #define MAP_ACROSS 31
  24. #define MAP_DOWN 33
  25. #define MAPW MAP_ACROSS * TILEW
  26. #define MAPH MAP_DOWN * TILEH
  27. #define SCROLLW 310
  28. #define SCROLLH 375
  29.  
  30. //define some colors
  31. #define BURST makecol(255,189,73)
  32. #define BLACK makecol(0,0,0)
  33. #define WHITE makecol(255,255,255)
  34. #define GRAY makecol(128,128,128)
  35.  
  36. //define the sprite structure
  37. typedef struct SPRITE
  38. {
  39.     int dir, alive;
  40.     int x,y;
  41.     int width,height;
  42.     int xspeed,yspeed;
  43.     int xdelay,ydelay;
  44.     int xcount,ycount;
  45.     int curframe,maxframe,animdir;
  46.     int framecount,framedelay;
  47. }SPRITE;
  48.  
  49. SPRITE mytanks[2];
  50. SPRITE *tanks[2];
  51. SPRITE mybullets[2];
  52. SPRITE *bullets[2];
  53. SPRITE *explosions[2];
  54.  
  55.  
  56. //declare some variables
  57. int gameover;
  58. int scores[2];
  59. int scrollx[2], scrolly[2];
  60. int startx[2], starty[2];
  61. int tilex, tiley, n;
  62. int radarx, radary;
  63.  
  64. //sprite bitmaps
  65. BITMAP *tank_bmp[2][8][8];
  66. BITMAP *bullet_bmp;
  67. BITMAP *explode_bmp;
  68.  
  69. //double buffer
  70. BITMAP *buffer;
  71.  
  72. //virtual background buffer
  73. //*****BITMAP *scroll;
  74.  
  75. //screen background
  76. BITMAP *back;
  77.  
  78. //function prototypes
  79. void animatetank(int num);
  80. void updateexplosion(int num);
  81. void loadsprites();
  82. void drawtank(int num);
  83. void erasetank(int num);
  84. void movetank(int num);
  85. void explode(int num, int x, int y);
  86. void movebullet(int num);
  87. void drawbullet(int num);
  88. void fireweapon(int num);
  89. void forward(int num);
  90. void backward(int num);
  91. void turnleft(int num);
  92. void turnright(int num);
  93. void getinput();
  94. void setuptanks();
  95. void setupscreen();
  96. int inside(int,int,int,int,int,int);
  97. BITMAP *grabframe(BITMAP *, int, int, int, int, int, int);
  98.  
  99. #endif
  100.  
  101.