?login_element?

Subversion Repositories NedoOS

Rev

Rev 944 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. //¤ЄюЄ яЁшьхЁ юЄюсЁрцрхЄ фтшцє∙шхё  ёяЁрщЄ√ эр Їюэх шчюсЁрцхэш 
  2.  
  3.  
  4. #include <evo.h>
  5. #include "resources.h"
  6.  
  7.  
  8.  
  9. //ёЄЁєъЄєЁр юс·хъЄр
  10.  
  11. struct spriteStruct {
  12.         i16 x,y;        //ъююЁфшэрЄ√
  13.         i16 dx,dy;      //фхы№Є√ ёъюЁюёЄш
  14. };
  15.  
  16. //ёяшёюъ юс·хъЄют
  17.  
  18. #define SPRITES_ALL     22      //т ¤Єюь яЁшьхЁх ёЄюы№ъю ёяЁрщЄют єёяхтрхЄ юЄЁшёютрЄ№ё  чр ърфЁ
  19.  
  20. struct spriteStruct spriteList[SPRITES_ALL];
  21.  
  22.  
  23.  
  24. void main(void)
  25. {
  26.         static u8 i,t;
  27.         static u8 palette[16];
  28.         static u8 keys[40];
  29.         static u32 oldtime,curtime;
  30.         static u16 y;
  31.  
  32.         //ў╕Ёэ√щ ¤ъЁрэ эр тЁхь  яюфуюЄютъш
  33.  
  34.         pal_bright(BRIGHT_MIN);
  35.  
  36.         //шэшЎшрышчрЎш  ярЁрьхЄЁют юс·хъЄют
  37.  
  38.         for(i=0;i<SPRITES_ALL;++i)
  39.         {
  40.                 spriteList[i].x=1+rand16()%(160-8-2);
  41.                 spriteList[i].y=1+rand16()%(200-16-2);
  42.                 spriteList[i].dx=0;
  43.                 spriteList[i].dy=0;
  44.                 //spriteList[i].dx=rand16()&1?-1:1;
  45.                 //spriteList[i].dy=rand16()&1?-1:1;
  46.         }
  47.  
  48.         //т√тюф Їюэр эр Єхэхтющ ¤ъЁрэ
  49.  
  50.         draw_image(0,0,IMG_BACK);
  51.         draw_image(1,10,IMG_BALLS/*IMG_BACK*/);
  52.  
  53.         select_image(IMG_FONT);
  54.         draw_tile(1,2  ,'A'-32);
  55.  
  56.  
  57.         //яхЁхъы■ўхэшх ¤ъЁрэют, ЄхяхЁ№ Їюэ эр тшфшьюь ¤ъЁрэх
  58.  
  59.         swap_screen();
  60.  
  61.         //чряєёъ ёяЁрщЄют
  62.  
  63.         sprites_start();
  64.  
  65.         //єёЄрэютър ярышЄЁ√, юэр ёюсшЁрхЄё  шч фтєї Ёрчэ√ї ярышЄЁ
  66.         //ЎтхЄр 0..5 фы  Їюэр, ЎтхЄр 6..15 фы  ёяЁрщЄют
  67.  
  68.         pal_copy(PAL_BACK,palette);
  69.  
  70.         for(i=0;i<16;++i) pal_col(i,palette[i]);
  71.  
  72.         //єёЄрэютър эюЁьры№эющ  ЁъюёЄш
  73.  
  74.         pal_bright(BRIGHT_MID);
  75.  
  76.         music_play(0);
  77.  
  78.         oldtime = time();
  79.  
  80.         //уыртэ√щ Ўшъы
  81.  
  82.         while(1)
  83.         {
  84.                 //яхЁхьх∙хэшх юс·хъЄют ш чряюыэхэшх ёяшёър ёяЁрщЄют
  85.  
  86.                 for(i=0;i<SPRITES_ALL;++i)
  87.                 {
  88.                         //i&3 т√сшЁрхЄ юфшэ шч ўхЄ√Ёхї ЁрчэюЎтхЄэ√ї °рЁшъют
  89.                         //y = spriteList[i].y;
  90.                         set_sprite(i,spriteList[i].x,spriteList[i].y,i&3);
  91.                 }
  92.                 //юсэютыхэшх ¤ъЁрэр, ёяЁрщЄ√ т√тюф Єё  ртЄюьрЄшўхёъш
  93.                 swap_screen();
  94.  
  95.                 curtime = time();
  96.                
  97.                 for (t=0;t<(u8)(curtime-oldtime)&0xff;++t) { //logic loop
  98.  
  99.                
  100.                 for(i=0;i<SPRITES_ALL;++i)
  101.                 {
  102.                         if(spriteList[i].x==160-8 ||spriteList[i].x==0) {spriteList[i].dx=-spriteList[i].dx;            sfx_play(SFX_APSTENU,-3);}
  103.                         if(spriteList[i].y==200-16||spriteList[i].y==0) {spriteList[i].dy=-spriteList[i].dy;            sfx_play(SFX_APSTENU,-3);}
  104.  
  105.                         spriteList[i].x+=spriteList[i].dx;
  106.                         spriteList[i].y+=spriteList[i].dy;
  107.                         //spriteList[i].y = 100;
  108.                 }
  109.  
  110.                 //яюыєўхэшх ёюёЄю эш  ъыртш°
  111.                 keyboard(keys);
  112.                 if((keys[KEY_O]&KEY_DOWN)&&(spriteList[0].x>0)) spriteList[0].x-=1;
  113.                 if((keys[KEY_P]&KEY_DOWN)&&(spriteList[0].x<160-8)) spriteList[0].x+=1;
  114.                 if((keys[KEY_Q]&KEY_DOWN)&&(spriteList[0].y>0)) spriteList[0].y-=1;
  115.                 if((keys[KEY_A]&KEY_DOWN)&&(spriteList[0].y<200-16)) spriteList[0].y+=1;
  116.                 if(keys[KEY_SPACE]&KEY_PRESS) {
  117.                         for(i=1;i<SPRITES_ALL;++i)
  118.                         {
  119. #define INRANGE(x, range) (((x)>(-range))&&((x)<(range)))
  120.                                if (INRANGE(spriteList[i].x-spriteList[0].x, 5)&&INRANGE(spriteList[i].y-spriteList[0].y, 10)) {
  121.                                         sfx_play(SFX_FIRE,8);
  122.                                         spriteList[i].dx=rand16()&1?-1:1;
  123.                                         spriteList[i].dy=rand16()&1?-1:1;
  124.                                }
  125.                         }
  126.                 }
  127.  
  128.                 } //logic loop
  129.  
  130.                 oldtime = curtime;
  131.                
  132.         }
  133. }