home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / dev / misc / gms_dev.lha / GMS / Source / C / AGAPixelList1.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-02-16  |  2.5 KB  |  86 lines

  1.  
  2. #include <proto/games.h>
  3. #include <proto/exec.h>
  4.  
  5. struct GMSBase *GMSBase;
  6. extern struct ExecBase *SysBase;
  7.  
  8. #define AMT_PIXELS 32
  9.  
  10. ULONG Palette[] = 
  11. {
  12.   0x000000,0x101010,0x171717,0x202020,0x272727,0x303030,0x373737,0x404040,
  13.   0x474747,0x505050,0x575757,0x606060,0x676767,0x707070,0x777777,0x808080,
  14.   0x878787,0x909090,0x979797,0xa0a0a0,0xa7a7a7,0xb0b0b0,0xb7b7b7,0xc0c0c0,
  15.   0xc7c7c7,0xd0d0d0,0xd7d7d7,0xe0e0e0,0xe0e0e0,0xf0f0f0,0xf7f7f7,0xffffff
  16. };
  17.  
  18. PIXELLIST(AMT_PIXELS) = {
  19.   AMT_PIXELS,sizeof(struct PixelEntry),
  20.   160,128,0,  160,128,1,  160,128,2,  160,128,3,  160,128,4,  160,128,5,
  21.   160,128,6,  160,128,7,  160,128,8,  160,128,9,  160,128,10, 160,128,11,
  22.   160,128,12, 160,128,13, 160,128,14, 160,128,15, 160,128,16, 160,128,17,
  23.   160,128,18, 160,128,19, 160,128,20, 160,128,21, 160,128,22, 160,128,23,
  24.   160,128,24, 160,128,25, 160,128,26, 160,128,27, 160,128,28, 160,128,29,
  25.   160,128,30, 160,128,31
  26. };
  27.  
  28. struct GameScreen *GameScreen;
  29.  
  30. /*=========================================================================*/
  31.  
  32. void main(void)
  33. {
  34.   UWORD  i;
  35.   ULONG mouse;
  36.  
  37.   if (GMSBase = (struct GMSBase *) OpenLibrary("games.library",0))
  38.   {
  39.     SetUserPrefs(0);
  40.     if (AllocBlitter() == NULL)
  41.     {
  42.       if (GameScreen = AddScreenTags(TAGS,NULL,
  43.            GSA_Planes,5,
  44.            GSA_Palette,Palette,
  45.            GSA_ScrMode,LORES|COL24BIT,
  46.            GSA_ScrWidth,320,
  47.            GSA_ScrHeight,256,
  48.            GSA_ScrType,INTERLEAVED,
  49.            GSA_Attrib,DBLBUFFER,
  50.            TAGEND)) {
  51.  
  52.         InitJoyPorts();
  53.         ShowScreen(GameScreen);
  54.  
  55.         do {
  56.           ClrScreen(GameScreen,BUFFER2);
  57.  
  58.           for(i=0; i<(AMT_PIXELS-1); i++) {
  59.             PixelList.Entry[i].YCoord += 1;            /* Y Coord down 1 */
  60.             if ((PixelList.Entry[i].Colour -= 1) < 0)  /* Colour value down 1 */
  61.               PixelList.Entry[i].Colour = 1;
  62.           }
  63.  
  64.           mouse = ReadJoyPort(JPORT1,JT_ZBXY);
  65.           PixelList.Entry[AMT_PIXELS-1].XCoord += (BYTE)(mouse>>8)+(FastRandom(3)-1);
  66.           PixelList.Entry[AMT_PIXELS-1].YCoord += (BYTE)(mouse)+(FastRandom(3)-1);
  67.  
  68.           for(i=0; i<(AMT_PIXELS-1); i++)
  69.             PixelList.Entry[i] = PixelList.Entry[i+1];
  70.  
  71.           DrawPixelList(GameScreen,BUFFER2,&PixelList);
  72.           WaitSVBL();
  73.           SwapBuffers(GameScreen);
  74.         } while (!(mouse & MB_LMB));
  75.  
  76.       DeleteScreen(GameScreen);
  77.       }
  78.     FreeBlitter();
  79.     }
  80.   CloseLibrary((struct Library *)GMSBase);
  81.   }
  82. }
  83.  
  84. /*=========================================================================*/
  85.  
  86.