Skocz do zawartości

Zablokowane Xenon Pacman


DobryZiom

Rekomendowane odpowiedzi

Tytuł: Xenon Pacman

 

Gatunek: ludzki -.-

 

Opis: W grze chodzi o to by łapać bonusy. Rywalizują ze sobą 2 gracze. Łapanie bonusów utrudniają kolce,lasery etc xD Grę piszę tylko i wyłącznie dla rozrywki... jak na razie to kilka godzin pracy -.-

 

Download: KLIK

Rozmiar pliku: 1.6mb

 

 

Autorzy:

 

Wszystko zrobiłem sam, w przypadku problemu z kodem pomagał GMClan :]

 

 

Screeny:

b75019a63e87c2bf23354163e72057ed.png

328523ddf813603f7a2160874f404491.png

Odnośnik do komentarza
Udostępnij na innych stronach

Gierka na 1 oczywiście, pomysł może nie był głupi ale jego realizacja stoi już troszkę gorzej, lasery często powstają od razu na graczu, a nawet jeśli powstaną obok gracza to pędzą z taką prędkością że nie da się od nich uciec, dodatkowo wyraźnie widać jak lasery powstając/znikając teleportują się z jednej pozycji na drugą, gracze mogą spawnić się w sobie, okienko nie posiadające obramowania jest niefajne, do tego ten epicki alpha blendig na itd. Nie mówiąc już o tym że nawet do takiej gierki głupie ai by się przydało, nie uwierzysz ale akurat nie miałem żadnego kumpla pod ręką do stestowania.

 

Drobne pytanko: yxe, ten spash screen jest częścią, którą umieszczasz we wszystkich przykładach a Dobryziom jej po prostu nie usunął, czy jest to wymagane w aplikacjach opartych o Xenona?

Odnośnik do komentarza
Udostępnij na innych stronach

Drobne pytanko: yxe, ten spash screen jest częścią, którą umieszczasz we wszystkich przykładach a Dobryziom jej po prostu nie usunął, czy jest to wymagane w aplikacjach opartych o Xenona?

nie jest wymagane, jest ono opcjonalne, jak w GMie, wystarczy usunac linijke z XeIntroScene w kodzie dodawania scen i ustawic poczatkowa scene na inna. Jest to domyslna realizacja punktu licencji mowiaca o koniecznosci dodania do gry jakiejs informacji dobrze widocznej o uzywanym silniku.

Odnośnik do komentarza
Udostępnij na innych stronach

w obecnym stanie gra jest hardkorowa, ledwo udało mi się zdobyć jeden punkt

Odnośnik do komentarza
Udostępnij na innych stronach

pff :D Jakie komentarze ^^ Ja tam nie chciałem zakładać tematu lecz mi kazali ^^ ta gierka jest napisana w kilka godzin( 3 - 4 ). Jest to moje pierwsze starcie z Xenonem więc myślę że nie wyszło tak źle :P gra miała być hardcorowa... "grafika" jest moja( jak widać... ) :D Ta gra powstaje tylko i wyłącznie w celach naukowych :P

 

E: Wstawiłem szablon

Odnośnik do komentarza
Udostępnij na innych stronach

co do grafik: w Gimpie/PSie rysuj, albo usun w nim tlo i wtedy konwertuj na XET, to zachowa przezroczystosc - juz jakis czas temu zamienilem konwertowanie z bitmap i masek, na rzecz png

Odnośnik do komentarza
Udostępnij na innych stronach

pff :D Jakie komentarze ^^ Ja tam nie chciałem zakładać tematu lecz mi kazali ^^ ta gierka jest napisana w kilka godzin( 3 - 4 ). Jest to moje pierwsze starcie z Xenonem więc myślę że nie wyszło tak źle :P gra miała być hardcorowa... "grafika" jest moja( jak widać... ) :D Ta gra powstaje tylko i wyłącznie w celach naukowych :P

 

E: Wstawiłem szablon

tobie nikt niczego nie nakazuje. po prostu po co toczyć dyskusję o grze w shoutboxie, większość czytających nie miałaby pojęcia o co chodzi

Odnośnik do komentarza
Udostępnij na innych stronach

hmm...w sumie to wpadłem na pomysł zrobienia innej gierki, platformówki Ta gra jest w miarę grywalna więc ją tak zostawiam Jeśli ktoś by chciał mogę dać source...

Powinieneś dać sources bo jeśli cały twój kod wygląda jak ten fragment, który widziałem to masakra.

Odnośnik do komentarza
Udostępnij na innych stronach

...widziałem to masakra.

proszę cie... nie mów jak doda -.- Po co mam dawać source skoro twierdzisz że mój kod jest do d... niczego ??

 

APPDATA:

#ifndef APP_DATA_H
#define APP_DATA_H

C_APPLICATION    Game;
int a = 0;
int g1 = 0;
int g2 = 0;

/* GRACZ */
class C_GRACZ : public XE_ACTOR2D
{
    public:
            XE_VECTOR pos;
            int x;
            int y;

            C_GRACZ( XE_VECTOR pos = 0 );
            ~C_GRACZ( );
            void Update( );
            void Render( );
} Gracz;
C_GRACZ::C_GRACZ( XE_VECTOR pos )
{
    Game.Describe( this, "GRACZ" );
    Sprite = Game.Sprites.Access( "spr_gracz" );
    Position = pos;
    x = (int)Position.X;
    y = (int)Position.Y;
}
C_GRACZ::~C_GRACZ()
{
    Sprite = XE_SPRITE();
}
void C_GRACZ::Update()
{
    bool c_gora = false;
    bool c_dol = false;
    bool c_lewo = false;
    bool c_prawo = false;

    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( -1, 1 ) ) ) c_lewo = true;
    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( 1, -1 ) ) ) c_gora = true;
    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( 2, 1 ) ) ) c_prawo = true;
    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( 1, 2) ) ) c_dol = true;
    if( Game.Collision2D( XEF_BOX, this, "GRACZ2", XE_VECTOR( -1, 1 ) ) ) c_lewo = true;
    if( Game.Collision2D( XEF_BOX, this, "GRACZ2", XE_VECTOR( 1, -1 ) ) ) c_gora = true;
    if( Game.Collision2D( XEF_BOX, this, "GRACZ2", XE_VECTOR( 2, 1 ) ) ) c_prawo = true;
    if( Game.Collision2D( XEF_BOX, this, "GRACZ2", XE_VECTOR( 1, 2) ) ) c_dol = true;

    if( Game.Collision2D( XEF_BOX, this, "KOLEC_LEWO" ) || Game.Collision2D( XEF_BOX, this, "KOLEC_PRAWO" ) ||
        Game.Collision2D( XEF_BOX, this, "MALY_KOLEC" ) || Game.Collision2D( XEF_BOX, this, "LASER_PIONOWY" ) || 
        Game.Collision2D( XEF_BOX, this, "LASER_POZIOMY" ) )
    {
        Position.X = x;
        Position.Y = y;
    }

    if( XE_IO::KeyboardGet( XE_KEY_UP ) )
        if( c_gora == false )
            Position.Y -= 2;

    if( XE_IO::KeyboardGet( XE_KEY_DOWN ) )
        if( c_dol == false )
            Position.Y += 2;

    if( XE_IO::KeyboardGet( XE_KEY_LEFT ) )
        if( c_lewo == false )
            Position.X -= 2;
    
    if( XE_IO::KeyboardGet( XE_KEY_RIGHT ) )
        if( c_prawo == false )
            Position.X += 2;
}
void C_GRACZ::Render()
{
    DrawSprite();
}

/* GRACZ 2*/
class C_GRACZ2 : public XE_ACTOR2D
{
    public:
            XE_VECTOR pos;
            int x;
            int y;

            C_GRACZ2( XE_VECTOR pos = 0 );
            ~C_GRACZ2( );
            void Update( );
            void Render( );
} Gracz2;
C_GRACZ2::C_GRACZ2( XE_VECTOR pos )
{
    Game.Describe( this, "GRACZ2" );
    Sprite = Game.Sprites.Access( "spr_gracz2" );
    Position = pos;
    x = (int)Position.X;
    y = (int)Position.Y;
}
C_GRACZ2::~C_GRACZ2()
{
    Sprite = XE_SPRITE();
}
void C_GRACZ2::Update()
{
    bool c_gora = false;
    bool c_dol = false;
    bool c_lewo = false;
    bool c_prawo = false;

    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( -1, 1 ) ) ) c_lewo = true;
    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( 1, -1 ) ) ) c_gora = true;
    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( 2, 1 ) ) ) c_prawo = true;
    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( 1, 2) ) ) c_dol = true;
    if( Game.Collision2D( XEF_BOX, this, "GRACZ", XE_VECTOR( -1, 1 ) ) ) c_lewo = true;
    if( Game.Collision2D( XEF_BOX, this, "GRACZ", XE_VECTOR( 1, -1 ) ) ) c_gora = true;
    if( Game.Collision2D( XEF_BOX, this, "GRACZ", XE_VECTOR( 2, 1 ) ) ) c_prawo = true;
    if( Game.Collision2D( XEF_BOX, this, "GRACZ", XE_VECTOR( 1, 2) ) ) c_dol = true;

    if( Game.Collision2D( XEF_BOX, this, "KOLEC_LEWO" ) || Game.Collision2D( XEF_BOX, this, "KOLEC_PRAWO" ) ||
        Game.Collision2D( XEF_BOX, this, "MALY_KOLEC" ) || Game.Collision2D( XEF_BOX, this, "LASER_PIONOWY" ) || 
        Game.Collision2D( XEF_BOX, this, "LASER_POZIOMY" ) )
    {
        Position.X = x;
        Position.Y = y;
    }

    if( XE_IO::KeyboardGet( XE_KEY_W ) )
        if( c_gora == false )
            Position.Y -= 2;

    if( XE_IO::KeyboardGet( XE_KEY_S ) )
        if( c_dol == false )
            Position.Y += 2;

    if( XE_IO::KeyboardGet( XE_KEY_A ) )
        if( c_lewo == false )
            Position.X -= 2;
    
    if( XE_IO::KeyboardGet( XE_KEY_D ) )
        if( c_prawo == false )
            Position.X += 2;
}
void C_GRACZ2::Render()
{
    DrawSprite();
}

/* MUR */
class C_MUR : public XE_ACTOR2D
{
    public:
            XE_VECTOR pos;
            int hp;

            C_MUR( XE_VECTOR pos = 0 );
            ~C_MUR( );
            void Update( );
            void Render( );
} Mur;
C_MUR::C_MUR( XE_VECTOR pos )
{
    Game.Describe( this, "MUR" );
    Sprite = Game.Sprites.Access( "spr_mur" );
    Position = pos;
}
C_MUR::~C_MUR()
{
    Sprite = XE_SPRITE();
}
void C_MUR::Update()
{
    //...
}
void C_MUR::Render()
{
    DrawSprite();
}

/* BONUS */
class C_BONUS : public XE_ACTOR2D
{
    public:
            XE_VECTOR pos;
            int hp;

            C_BONUS( XE_VECTOR pos = 0 );
            ~C_BONUS( );
            void Update( );
            void Render( );
} Bonus;
C_BONUS::C_BONUS( XE_VECTOR pos )
{
    Game.Describe( this, "BONUS" );
    Sprite = Game.Sprites.Access( "spr_bonus" );
    Position = pos;
}
C_BONUS::~C_BONUS()
{
    Sprite = XE_SPRITE();
}
void C_BONUS::Update()
{
    if( Game.Collision2D( XEF_BOX, this, "GRACZ" ) )
    {
        g1 += 1;
        Position.X = 20 + (int)XE_MATH::Random(800-40);
        Position.Y = 20 + (int)XE_MATH::Random(600-40);
    }
    if( Game.Collision2D( XEF_BOX, this, "GRACZ2" ) )
    {
        g2 += 1;
        Position.X = 20 + (int)XE_MATH::Random(800-40);
        Position.Y = 20 + (int)XE_MATH::Random(600-40);
    }
}
void C_BONUS::Render()
{
    DrawSprite();
}

/* KOLEC LEWO - PRAWO */
class C_KOLEC_LEWO : public XE_ACTOR2D
{
    public:
            XE_VECTOR pos;
            int kierunek;

            C_KOLEC_LEWO( XE_VECTOR pos = 0 );
            ~C_KOLEC_LEWO( );
            void Update( );
            void Render( );
} Kolec_Lewo;
C_KOLEC_LEWO::C_KOLEC_LEWO( XE_VECTOR pos )
{
    Game.Describe( this, "KOLEC_LEWO" );
    Sprite = Game.Sprites.Access( "spr_kolec_lewo" );
    Position = pos;
    kierunek = 1;
}
C_KOLEC_LEWO::~C_KOLEC_LEWO()
{
    Sprite = XE_SPRITE();
}
void C_KOLEC_LEWO::Update()
{
    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( -5, 1 ) ) ) kierunek = 1;
    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( 5, 1 ) ) ) kierunek = 2;

    if( kierunek == 1 )
    {
        Sprite = Game.Sprites.Access( "spr_kolec_prawo" );
        Position.X += 4;
    }
    else
    {    
        Sprite = Game.Sprites.Access( "spr_kolec_lewo" );
        Position.X -= 4;
    }
}
void C_KOLEC_LEWO::Render()
{
    DrawSprite();
}

/* KOLEC GORA - DOL */
class C_KOLEC_GORA : public XE_ACTOR2D
{
    public:
            XE_VECTOR pos;
            int kierunek;

            C_KOLEC_GORA( XE_VECTOR pos = 0 );
            ~C_KOLEC_GORA( );
            void Update( );
            void Render( );
} Kolec_Gora;
C_KOLEC_GORA::C_KOLEC_GORA( XE_VECTOR pos )
{
    Game.Describe( this, "KOLEC_LEWO" );
    Sprite = Game.Sprites.Access( "spr_kolec_lewo" );
    Position = pos;
    kierunek = 1;
}
C_KOLEC_GORA::~C_KOLEC_GORA()
{
    Sprite = XE_SPRITE();
}
void C_KOLEC_GORA::Update()
{
    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( 1, -5 ) ) ) kierunek = 1;
    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( 1, 5 ) ) ) kierunek = 2;

    if( kierunek == 1 )
    {
        Sprite = Game.Sprites.Access( "spr_kolec_dol" );
        Position.Y += 4;
    }
    else
    {    
        Sprite = Game.Sprites.Access( "spr_kolec_gora" );
        Position.Y -= 4;
    }
}
void C_KOLEC_GORA::Render()
{
    DrawSprite();
}

/* MALY KOLEC */
class C_MALY_KOLEC : public XE_ACTOR2D
{
    public:
            XE_VECTOR pos;

            C_MALY_KOLEC( XE_VECTOR pos = 0 );
            ~C_MALY_KOLEC( );
            void Update( );
            void Render( );
} Maly_Kolec;
C_MALY_KOLEC::C_MALY_KOLEC( XE_VECTOR pos )
{
    Game.Describe( this, "MALY_KOLEC" );
    Sprite = Game.Sprites.Access( "spr_maly_kolec" );
    Position = pos;
}
C_MALY_KOLEC::~C_MALY_KOLEC()
{
    Sprite = XE_SPRITE();
}
void C_MALY_KOLEC::Update()
{
    if( Game.Collision2D( XEF_BOX, this, "MUR", XE_VECTOR( 7, 1 ) ) ) Game.UnregisterActor( this );

    Position.X += 6;
}
void C_MALY_KOLEC::Render()
{
    DrawSprite();
}

/* WYRZUTNIA KOLCOW */
class C_WYRZUTNIA_KOLCOW : public XE_ACTOR2D
{
    public:
            XE_VECTOR pos;
            int czas;

            C_WYRZUTNIA_KOLCOW( XE_VECTOR pos = 0 );
            ~C_WYRZUTNIA_KOLCOW( );
            void Update( );
            void Render( );
} Wyrzutnia_Kolcow;
C_WYRZUTNIA_KOLCOW::C_WYRZUTNIA_KOLCOW( XE_VECTOR pos )
{
    Game.Describe( this, "WYRZUTNIA_KOLCOW" );
    Sprite = Game.Sprites.Access( "spr_wyrzutnia_kolcow" );
    Position = pos;
    czas = 0;
}
C_WYRZUTNIA_KOLCOW::~C_WYRZUTNIA_KOLCOW()
{
    Sprite = XE_SPRITE();
}
void C_WYRZUTNIA_KOLCOW::Update()
{
    czas += 1;
    if( czas == 200 )
    {
        czas = 0;
        Game.RegisterActor( "MALY_KOLEC", new C_MALY_KOLEC( XE_VECTOR( Position.X+9, Position.Y ) ) );
        Game.RegisterActor( "MALY_KOLEC", new C_MALY_KOLEC( XE_VECTOR( Position.X+9, Position.Y+20 ) ) );
        Game.RegisterActor( "MALY_KOLEC", new C_MALY_KOLEC( XE_VECTOR( Position.X+9, Position.Y+40 ) ) );
        Game.RegisterActor( "MALY_KOLEC", new C_MALY_KOLEC( XE_VECTOR( Position.X+9, Position.Y+60 ) ) );
        Game.RegisterActor( "MALY_KOLEC", new C_MALY_KOLEC( XE_VECTOR( Position.X+9, Position.Y+80 ) ) );
        Game.RegisterActor( "MALY_KOLEC", new C_MALY_KOLEC( XE_VECTOR( Position.X+9, Position.Y+100 ) ) );
        Game.RegisterActor( "MALY_KOLEC", new C_MALY_KOLEC( XE_VECTOR( Position.X+9, Position.Y+120 ) ) );
        Game.RegisterActor( "MALY_KOLEC", new C_MALY_KOLEC( XE_VECTOR( Position.X+9, Position.Y+140 ) ) );
        Game.RegisterActor( "MALY_KOLEC", new C_MALY_KOLEC( XE_VECTOR( Position.X+9, Position.Y+160 ) ) );
        Game.RegisterActor( "MALY_KOLEC", new C_MALY_KOLEC( XE_VECTOR( Position.X+9, Position.Y+180 ) ) );
    }
}
void C_WYRZUTNIA_KOLCOW::Render()
{
    DrawSprite();
}

/* LASER PIONOWY */
class C_LASER_PIONOWY : public XE_ACTOR2D
{
    public:
            XE_VECTOR pos;
            int kierunek;
            int czas;

            C_LASER_PIONOWY( XE_VECTOR pos = 0 );
            ~C_LASER_PIONOWY( );
            void Update( );
            void Render( );
} Laser_Pionowy;
C_LASER_PIONOWY::C_LASER_PIONOWY( XE_VECTOR pos )
{
    Game.Describe( this, "LASER_PIONOWY" );
    Sprite = Game.Sprites.Access( "spr_laser_pionowy" );
    Position = pos;
    kierunek = 1;
    czas = 1;
}
C_LASER_PIONOWY::~C_LASER_PIONOWY()
{
    Sprite = XE_SPRITE();
}
void C_LASER_PIONOWY::Update()
{
    czas += 1;
    if( czas > 1 && czas < 50 )
    {
        if( kierunek == 1 )
            Position.X += 3;
        else
            Position.X -= 3;
    }
    else if( czas > 50 && czas < 200 )
        Position.X = -99;

    else 
        Position.X = 20 + (int)XE_MATH::Random(800-40);

    if( czas > 200 || czas < 1 ) 
    {
        czas = 1;
        if( kierunek == 1)
            kierunek = 2;
        else
            kierunek =1;
    }
}
void C_LASER_PIONOWY::Render()
{
    DrawSprite();
}

/* LASER POZIOMY */
class C_LASER_POZIOMY : public XE_ACTOR2D
{
    public:
            XE_VECTOR pos;
            int kierunek;
            int czas;

            C_LASER_POZIOMY( XE_VECTOR pos = 0 );
            ~C_LASER_POZIOMY( );
            void Update( );
            void Render( );
} Laser_Poziomy;
C_LASER_POZIOMY::C_LASER_POZIOMY( XE_VECTOR pos )
{
    Game.Describe( this, "LASER_POZIOMY" );
    Sprite = Game.Sprites.Access( "spr_laser_poziomy" );
    Position = pos;
    kierunek = 1;
    czas = 1;
}
C_LASER_POZIOMY::~C_LASER_POZIOMY()
{
    Sprite = XE_SPRITE();
}
void C_LASER_POZIOMY::Update()
{
    czas += 1;
    if( czas > 1 && czas < 50 )
    {
        if( kierunek == 1 )
            Position.Y += 3;
        else
            Position.Y -= 3;
    }
    else if( czas > 50 && czas < 200 )
        Position.Y = -99;

    else 
        Position.Y = 20 + (int)XE_MATH::Random(600-40);

    if( czas > 200 || czas < 1 ) 
    {
        czas = 1;
        if( kierunek == 1)
            kierunek = 2;
        else
            kierunek =1;
    }
}
void C_LASER_POZIOMY::Render()
{
    DrawSprite();
}



#endif

 

APPEVENTS:

#ifndef APP_EVENTS_H
#define APP_EVENTS_H

PROGRESS(GameProgress)
{
    if( XE_IO::KeyboardGetPressed( XE_KEY_ESC ) ) Game.Exit();    
    Game.Camera.Update();

    /* UPDATE  OBIEKTÓW 
    Gracz.Update( );
    Bonus.Update( );
    Kolec_Lewo.Update( );
    Kolec_Gora.Update( );
    Laser_Pionowy.Update( );*/

    Game.Progress();

    /* RENDEROWANIE ( RYSOWANIE ) 
    Gracz.Render( );
    Bonus.Render( );
    Kolec_Gora.Render( );
    Laser_Pionowy.Render( );*/

    /* RYSOWANIE TEXTU*/
    XE_STRING str;
    str.Format( "Gracz 1: %i \nGracz 2: %i", (int)g1, (int)g2 );
    Game.Fonts( "fnt_1" )->Draw( str, XE_VECTOR( 10, 10 ) );

    XeRenderScene( XE_FLAG_SWAP | XE_FLAG_COLORBUFF | XE_FLAG_TRANSFORMIDENT );
}

SCENE(GameScene)
{
    /* OKNO*/
    Game.Windows( "main" )->Width = 800;    
    Game.Windows( "main" )->Height = 600;    
    Game.WindowCentralize( "main" );        
    Game.Windows( "main" )->Update();        
    Game.OnWindowSetup( "main" );            
    Game.Vsync( true );                        
    Game.Camera.Width = (float)Game.Windows( "main" )->Width;
    Game.Camera.Height = (float)Game.Windows( "main" )->Height;

    /* ZASOBY */
    Game.Sprites( "spr_mur" )->Prepare( "data/1.xet", false );
    Game.Sprites( "spr_gracz2" )->Prepare( "data/2.xet" );
    Game.Sprites( "spr_gracz" )->Prepare( "data/3.xet" );
    Game.Sprites( "spr_bonus" )->Prepare( "data/4.xet" );
    Game.Fonts( "fnt_1" )->Prepare("data/5.xet","data/5.fnt");
    Game.Sprites( "spr_kolec_gora" )->Prepare( "data/6.xet" );
    Game.Sprites( "spr_kolec_prawo" )->Prepare( "data/7.xet" );
    Game.Sprites( "spr_kolec_dol" )->Prepare( "data/8.xet" );
    Game.Sprites( "spr_kolec_lewo" )->Prepare( "data/9.xet" );
    Game.Sprites( "spr_wyrzutnia_kolcow" )->Prepare( "data/10.xet" );
    Game.Sprites( "spr_maly_kolec" )->Prepare( "data/11.xet" );
    Game.Sprites( "spr_laser_pionowy" )->Prepare( "data/12.xet" );
    Game.Sprites( "spr_laser_poziomy" )->Prepare( "data/13.xet" );

    /* SCIANY NA OKOLO */
    for( a = 0; a < 600; a += 16 )
        Game.RegisterActor( "MUR", new C_MUR( XE_VECTOR( 0, a ) ) );

    for( a = 0; a < 600; a += 16 )
        Game.RegisterActor( "MUR", new C_MUR( XE_VECTOR( 784, a ) ) );

    for( a = 0; a < 800; a += 16 )
        Game.RegisterActor( "MUR", new C_MUR( XE_VECTOR( a, 0 ) ) );
    
    for( a = 0; a < 800; a += 16 )
        Game.RegisterActor( "MUR", new C_MUR( XE_VECTOR( a, 584 ) ) );

    /* GRACZE */
    Game.RegisterActor( "GRACZ", new C_GRACZ( XE_VECTOR( 22, 22 ) ) );
    Game.RegisterActor( "GRACZ2", new C_GRACZ2( XE_VECTOR( 44, 22 ) ) );

    /* BONUS */
    Game.RegisterActor( "BONUS", new C_BONUS( XE_VECTOR( 400, 300 ) ) );

    /* KOLCE */
    Game.RegisterActor( "KOLEC_LEWO", new C_KOLEC_LEWO( XE_VECTOR( 124, 100 ) ) );
    Game.RegisterActor( "KOLEC_LEWO", new C_KOLEC_LEWO( XE_VECTOR( 524, 200 ) ) );
    Game.RegisterActor( "KOLEC_LEWO", new C_KOLEC_LEWO( XE_VECTOR( 724, 300 ) ) );
    Game.RegisterActor( "KOLEC_LEWO", new C_KOLEC_LEWO( XE_VECTOR( 224, 400 ) ) );
    Game.RegisterActor( "KOLEC_LEWO", new C_KOLEC_LEWO( XE_VECTOR( 624, 500 ) ) );

    Game.RegisterActor( "KOLEC_GORA", new C_KOLEC_GORA( XE_VECTOR( 100, 333 ) ) );
    Game.RegisterActor( "KOLEC_GORA", new C_KOLEC_GORA( XE_VECTOR( 200, 433 ) ) );
    Game.RegisterActor( "KOLEC_GORA", new C_KOLEC_GORA( XE_VECTOR( 300, 133 ) ) );
    Game.RegisterActor( "KOLEC_GORA", new C_KOLEC_GORA( XE_VECTOR( 400, 333 ) ) );
    Game.RegisterActor( "KOLEC_GORA", new C_KOLEC_GORA( XE_VECTOR( 500, 33 ) ) );
    Game.RegisterActor( "KOLEC_GORA", new C_KOLEC_GORA( XE_VECTOR( 600, 161 ) ) );
    Game.RegisterActor( "KOLEC_GORA", new C_KOLEC_GORA( XE_VECTOR( 700, 545 ) ) );

    Game.RegisterActor( "WYRZUTNIA_KOLCOW", new C_WYRZUTNIA_KOLCOW( XE_VECTOR( 17, 300 ) ) );

    Game.RegisterActor( "LASER_PIONOWY", new C_LASER_PIONOWY( XE_VECTOR( 333, 0 ) ) );
    Game.RegisterActor( "LASER_POZIOMY", new C_LASER_POZIOMY( XE_VECTOR( 0, 333 ) ) );






    XE_EVENTS::Execute( GameProgress );

    Game.Cleanup();
}


#endif

Odnośnik do komentarza
Udostępnij na innych stronach

nie wiem po cos dal te:

int x;

int y;

przy graczach, skoro one nie sa nigdzie wykorzystywane - pozycja to u CIebie Pos, a w sumie powinna byc uzyta wbudowana w aktora Position :P

Odnośnik do komentarza
Udostępnij na innych stronach

a no chyba ze tak, tego nie zauwazylem w kodzie ktory dales

Odnośnik do komentarza
Udostępnij na innych stronach

if( Game.Collision2D( XEF_BOX, this, "KOLEC_LEWO" ) || Game.Collision2D( XEF_BOX, this, "KOLEC_PRAWO" ) ||

Game.Collision2D( XEF_BOX, this, "MALY_KOLEC" ) || Game.Collision2D( XEF_BOX, this, "LASER_PIONOWY" ) ||

Game.Collision2D( XEF_BOX, this, "LASER_POZIOMY" ) )

{

Position.X = x;

Position.Y = y;

}

no trochę tego jest :) na początek chyba nie tak źle z tym kodem?

Odnośnik do komentarza
Udostępnij na innych stronach

Takie kłikpytanko, to odwoływanie się do obiektów (czy co to tam jest) po STRINGACH ("KOLEC_GORA", "MALY_KOLEC", "WYRZUTIA_KOLCOW" itd to normalne w Xenonie czy ziomek sobie tak wymyślił?

 

No i ogólnie - nie chce mi się tego analizowć ale 610 linii na tak banalną gierkę to tak jakby dość dużo. Chyba, że połowa tego kodu to zmyślnie poukrywane easter eggi, to ok : D

Odnośnik do komentarza
Udostępnij na innych stronach

bede musial zrobic by mozna bylo szukac kolizji podajac wiecej niz jeden typ aktora, to optymalizacyjnie jakosc wzrosnie.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...