Login

Subversion Repositories NedoOS

Rev

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

//¤ЄюЄ яЁшьхЁ юЄюсЁрцрхЄ фтшцє∙шхё  ёяЁрщЄ√ эр Їюэх шчюсЁрцхэш 


#include <evo.h>
#include "resources.h"



//ёЄЁєъЄєЁр юс·хъЄр

struct spriteStruct {
        i16 x,y;        //ъююЁфшэрЄ√
        i16 dx,dy;      //фхы№Є√ ёъюЁюёЄш
};

//ёяшёюъ юс·хъЄют

#define SPRITES_ALL     22      //т ¤Єюь яЁшьхЁх ёЄюы№ъю ёяЁрщЄют єёяхтрхЄ юЄЁшёютрЄ№ё  чр ърфЁ

struct spriteStruct spriteList[SPRITES_ALL];



void main(void)
{
        static u8 i,t;
        static u8 palette[16];
        static u8 keys[40];
        static u32 oldtime,curtime;
        static u16 y;

        //ў╕Ёэ√щ ¤ъЁрэ эр тЁхь  яюфуюЄютъш

        pal_bright(BRIGHT_MIN);

        //шэшЎшрышчрЎш  ярЁрьхЄЁют юс·хъЄют

        for(i=0;i<SPRITES_ALL;++i)
        {
                spriteList[i].x=1+rand16()%(160-8-2);
                spriteList[i].y=1+rand16()%(200-16-2);
                spriteList[i].dx=0;
                spriteList[i].dy=0;
                //spriteList[i].dx=rand16()&1?-1:1;
                //spriteList[i].dy=rand16()&1?-1:1;
        }

        //т√тюф Їюэр эр Єхэхтющ ¤ъЁрэ

        draw_image(0,0,IMG_BACK);
        draw_image(1,10,IMG_BALLS/*IMG_BACK*/);

        select_image(IMG_FONT);
        draw_tile(1,2  ,'A'-32);


        //яхЁхъы■ўхэшх ¤ъЁрэют, ЄхяхЁ№ Їюэ эр тшфшьюь ¤ъЁрэх

        swap_screen();

        //чряєёъ ёяЁрщЄют

        sprites_start();

        //єёЄрэютър ярышЄЁ√, юэр ёюсшЁрхЄё  шч фтєї Ёрчэ√ї ярышЄЁ
        //ЎтхЄр 0..5 фы  Їюэр, ЎтхЄр 6..15 фы  ёяЁрщЄют

        pal_copy(PAL_BACK,palette);

        for(i=0;i<16;++i) pal_col(i,palette[i]);

        //єёЄрэютър эюЁьры№эющ  ЁъюёЄш

        pal_bright(BRIGHT_MID);

        music_play(0);

        oldtime = time();

        //уыртэ√щ Ўшъы

        while(1)
        {
                //яхЁхьх∙хэшх юс·хъЄют ш чряюыэхэшх ёяшёър ёяЁрщЄют

                for(i=0;i<SPRITES_ALL;++i)
                {
                        //i&3 т√сшЁрхЄ юфшэ шч ўхЄ√Ёхї ЁрчэюЎтхЄэ√ї °рЁшъют
                        //y = spriteList[i].y;
                        set_sprite(i,spriteList[i].x,spriteList[i].y,i&3);
                }
                //юсэютыхэшх ¤ъЁрэр, ёяЁрщЄ√ т√тюф Єё  ртЄюьрЄшўхёъш
                swap_screen();

                curtime = time();
               
                for (t=0;t<(u8)(curtime-oldtime)&0xff;++t) { //logic loop

               
                for(i=0;i<SPRITES_ALL;++i)
                {
                        if(spriteList[i].x==160-8 ||spriteList[i].x==0) {spriteList[i].dx=-spriteList[i].dx;            sfx_play(SFX_APSTENU,-3);}
                        if(spriteList[i].y==200-16||spriteList[i].y==0) {spriteList[i].dy=-spriteList[i].dy;            sfx_play(SFX_APSTENU,-3);}

                        spriteList[i].x+=spriteList[i].dx;
                        spriteList[i].y+=spriteList[i].dy;
                        //spriteList[i].y = 100;
                }

                //яюыєўхэшх ёюёЄю эш  ъыртш°
                keyboard(keys);
                if((keys[KEY_O]&KEY_DOWN)&&(spriteList[0].x>0)) spriteList[0].x-=1;
                if((keys[KEY_P]&KEY_DOWN)&&(spriteList[0].x<160-8)) spriteList[0].x+=1;
                if((keys[KEY_Q]&KEY_DOWN)&&(spriteList[0].y>0)) spriteList[0].y-=1;
                if((keys[KEY_A]&KEY_DOWN)&&(spriteList[0].y<200-16)) spriteList[0].y+=1;
                if(keys[KEY_SPACE]&KEY_PRESS) {
                        for(i=1;i<SPRITES_ALL;++i)
                        {
#define INRANGE(x, range) (((x)>(-range))&&((x)<(range)))
                               if (INRANGE(spriteList[i].x-spriteList[0].x, 5)&&INRANGE(spriteList[i].y-spriteList[0].y, 10)) {
                                        sfx_play(SFX_FIRE,8);
                                        spriteList[i].dx=rand16()&1?-1:1;
                                        spriteList[i].dy=rand16()&1?-1:1;
                               }
                        }
                }

                } //logic loop

                oldtime = curtime;
               
        }
}