DobryZiom Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 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:
Dawidds Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 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?
PsichiX Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 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.
PoxiPol Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 Dziekuje ziomie, ze wlasnie mi zrujnowales caly szacunek do Xenona : | Myslalem ze az tak dupnych gier nim sie nei da zrobic.
Dawidds Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 Jak kupię cryengine 3 i zrobię w nim identyczną grę jak ta to stracisz szacunek do niego?
zelman Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 TYTUŁ https://gmclan.org/up6605_4_b0f29f6427.html sorki że bez szablonu ale muszę jechać na zdjęcie szwów :) wrócę to wstawię :] Fajnie, że jedziesz na zdjęcie szwów, ale to chyba mogło poczekać tą godzinkę czy dwie (ewentualnie w ostateczności nawet do jutra)?
PsichiX Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 w obecnym stanie gra jest hardkorowa, ledwo udało mi się zdobyć jeden punkt
Japanstache Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 Kolejny pokaz możliwości Xenona! A gra jest na poziomie autora. 1/5
I am Lord Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 YXE zagnij ich i zrób coś pro w Xenonie.
Jaklub Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 nawet ikony nie zmienił. YXE, ksenon jest zbyt prosty w używaniu. popraw to. btw.
GMTraker Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 zaiste wyrafinowane dzieło genialnego programisty, nie rozumiem po co używać xenona, nie łatwiej to zrobić na kilku obiektach?
Filar Społeczności ANtY Opublikowano 15 Listopada 2010 Filar Społeczności Opublikowano 15 Listopada 2010 YXE zagnij ich i zrób coś pro w Xenonie. Poznacie nas po owocach naszej pracy. o!
DobryZiom Opublikowano 15 Listopada 2010 Autor Opublikowano 15 Listopada 2010 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
PsichiX Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 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
Jaklub Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 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
Konrad-GM Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 YXE, Physix, czy physiu: Już wiem czego brakuje w XenoNie! Keycolorów! :D Co do gry, czy brak crackowanego Photoshopa prowadzi aż do takiej grafiki? Przecież istnieje Gimp/CP/czy inne szmatławce. :) Powstrzymam się od i tak już zaniżonej oceny {:
Jaklub Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 nawet w niezarejestrowanym GM8 można dodawać kanał alpha do obrazków lol
DobryZiom Opublikowano 15 Listopada 2010 Autor Opublikowano 15 Listopada 2010 hmm...w sumie to wpadłem na pomysł zrobienia innej gierki, platformówki :] Ta gra jest w miarę grywalna więc ją tak zostawiam :D Jeśli ktoś by chciał mogę dać source...
Will Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 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.
DobryZiom Opublikowano 15 Listopada 2010 Autor Opublikowano 15 Listopada 2010 ...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
zelman Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 Doda ma problemy ze słowami powyżej 5 literek...
DobryZiom Opublikowano 15 Listopada 2010 Autor Opublikowano 15 Listopada 2010 haha xD dobre :P ciekawe ile się uczyła tego "masakra"
zelman Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 To się robi tak: najpierw mówi masa, a później kra. W ten sposób mozna nauczyć się wielu długich słów (5+ liter)
PsichiX Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 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
DobryZiom Opublikowano 15 Listopada 2010 Autor Opublikowano 15 Listopada 2010 małe x i y to pozycje początkowe :) jak "dednie" to się tam respi :]
PsichiX Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 a no chyba ze tak, tego nie zauwazylem w kodzie ktory dales
DobryZiom Opublikowano 15 Listopada 2010 Autor Opublikowano 15 Listopada 2010 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?
Dawidds Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 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
PsichiX Opublikowano 15 Listopada 2010 Opublikowano 15 Listopada 2010 bede musial zrobic by mozna bylo szukac kolizji podajac wiecej niz jeden typ aktora, to optymalizacyjnie jakosc wzrosnie.
Rekomendowane odpowiedzi