/// <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()); }
/// <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; } } }