/// <summary>
        /// Inicijalizacija igre
        /// mora se dodati u prvu scenu prije pozivanja
        /// </summary>
        public void Initialize()
        {
            OnBegin = delegate
            {
                Neprijatelj.Postavljanje();
                Stit.Postavljanje();
                GlavnaScena scene = Program.Igra.GetScene <GlavnaScena>();

                Ufo = new UFO();

                Program.Igra.GetScene <GlavnaScena>().Add(Ufo);

                // Create player and add to scene
                Igrac = new Igrac();
                Add(Igrac);
                // Gametext for the entire game pretty much
                #region gameText

                var background = new Image("Slike/background.png");
                background.Alpha = 0.4f;
                scene.AddGraphic(background);

                //Setting a default config file for the RichText to use
                var txtConfig = new RichTextConfig()
                {
                    TextAlign = TextAlign.Center,
                    CharColor = Color.Green,
                    FontSize  = 18,
                    SineAmpX  = 1,
                    SineAmpY  = 2,
                    SineRateX = 1,
                    Font      = new Font("Slike/VCR_OSD_MONO.ttf"),
                };

                // Writing the text graphics and setting position
                var livesLeftTxtLabel = new RichText("Zivoti", txtConfig);
                livesLeftTxtLabel.SetPosition(50, 16);

                scene.PreostaloZivotaText      = new RichText(scene.Igrac.ZivotiIgraca.ToString(), txtConfig);
                scene.PreostaloZivotaText.Name = "livesLeftTxt";
                scene.PreostaloZivotaText.SetPosition(70, 32);

                var curScoreTxtLabel = new RichText("Bodovi", txtConfig);
                curScoreTxtLabel.SetPosition(650, 15);

                scene.TrenutniBodoviText      = new RichText(scene.Igrac.IznosBodova.ToString(), txtConfig);
                scene.TrenutniBodoviText.Name = "curScoreTxt";
                scene.TrenutniBodoviText.SetPosition(670, 32);

                // Adds Graphic to Scene
                scene.AddGraphic(livesLeftTxtLabel);
                scene.AddGraphic(curScoreTxtLabel);

                scene.AddGraphic(scene.PreostaloZivotaText);
                scene.AddGraphic(scene.TrenutniBodoviText);

                #endregion gameText
            };
        }
        /// <summary>
        /// Sets next level, if CurLevel == 6 then ends the game
        /// </summary>
        public void NextLevel()
        {
            TrenutniLevel++;


            if (TrenutniLevel == 5)
            {
                Game.SwitchScene(new HighScoresScene(Igrac.IznosBodova));
            }

            Neprijatelj.UcitajNeprijatelje("level" + TrenutniLevel.ToString());
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Check if player bullet collides with entities.
        /// </summary>
        /// <param name="glavnaScena">scene</param>
        void ProvjeriMetakIgraca(GlavnaScena glavnaScena)
        {
            // Check if bullet is player bullet
            if (Collider.Tags[0] == (int)Oznake.Igrac)
            {
                // Provjeri je li se metak sudario s neprijateljima
                if (Collider.CollideEntity(X, Y, Oznake.Neprijatelj) != null)
                {
                    // provjeri je li metak pogodio metak
                    if ((Collider.CollideEntities(X, Y, Oznake.Neprijatelj)[0].GetType() == typeof(Metak)))
                    {
                        Collider.CollideEntities(X, Y, Oznake.Neprijatelj)[0].RemoveSelf();
                        Visible    = false;
                        Collidable = false;
                    }
                    // Check if bullet hits enemy
                    else
                    {
                        Neprijatelj neprijatelj = (Neprijatelj)Collider.CollideEntities(X, Y, Oznake.Neprijatelj)[0];
                        neprijatelj.RemoveSelf();
                        Visible    = false;
                        Collidable = false;

                        if (glavnaScena.GetEntities <Neprijatelj>().Count <= 1)
                        {
                            glavnaScena.NextLevel();
                        }

                        glavnaScena.Igrac.IznosBodova        += neprijatelj.Bodovi;
                        glavnaScena.TrenutniBodoviText.String = glavnaScena.Igrac.IznosBodova.ToString();
                        Program.TrenutniBodoviTekst           = glavnaScena.Igrac.IznosBodova.ToString();
                        glavnaScena.TrenutniBodoviText.Refresh();
                    }
                }
            }
        }
        /// <summary>
        /// Učitava sve neprijatelje po levelu
        /// </summary>
        /// <param level="level">level koji treba učitati</param>
        public static void UcitajNeprijatelje(string level)
        {
            GlavnaScena glavnaScena = Program.Igra.GetScene <GlavnaScena>();

            List <string> neprijateljiLevel = DohvatiNeprijatelje(level);

            // Current enemy position to load
            Vector2 trenutnaPozicija = new Vector2(glavnaScena.PlayPosition.X, glavnaScena.PlayPosition.Y);

            foreach (var n in neprijateljiLevel)
            {
                Neprijatelj neprijatelj = SviNeprijatelji[n]();
                neprijatelj.Position = trenutnaPozicija;
                glavnaScena.Add(neprijatelj);

                // Set enemy position
                trenutnaPozicija.X += VelicinaNeprijatelja;
                if (trenutnaPozicija.X > 420)
                {
                    trenutnaPozicija.X  = glavnaScena.PlayPosition.X;
                    trenutnaPozicija.Y += VelicinaNeprijatelja;
                }
            }
        }