Ignore:
Timestamp:
2018-06-07 14:51:57 (12 months ago)
Author:
saniitty
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 2017/24/SamuelN/Endless/Endless/Endless/Endless.cs

    r9628 r9667  
    99public class Endless : PhysicsGame 
    1010{ 
     11    bool a = false; 
     12    bool b = false; 
     13    bool c = false; 
     14    bool d = false; 
     15    bool e = false; 
     16    PhysicsObject coin; 
     17    Light valo; 
     18 
    1119    public Font f = LoadFont("font1"); 
    1220    string ship; 
     
    1523 
    1624    PhysicsObject player; 
    17  
     25    PhysicsObject black; 
    1826    PhysicsObject ufo; 
    1927    PhysicsObject ufo2; 
     28 
     29    PhysicsObject leftB; 
     30    PhysicsObject rightB; 
     31    PhysicsObject bottomB; 
     32    PhysicsObject topB; 
    2033 
    2134    AssaultRifle playerGun; 
     
    3548 
    3649    int round = 1; 
     50    int ufohp2 = 100; 
    3751    Label roundtxt; 
    3852 
    3953    MultiSelectWindow menu; 
     54    MultiSelectWindow startMenu; 
    4055    DoubleMeter healthCounter; 
    4156    IntMeter scoreCounter; 
     
    5065 
    5166        ufoAnim = LoadAnimation("ufoAnim"); 
    52         IsFullScreen = true; 
     67        //IsFullScreen = true; 
    5368        IsMouseVisible = true; 
    5469        Start(); 
     
    5873    { 
    5974        ship = "bgspeedship"; 
    60         MediaPlayer.Play("If Im wrong"); 
     75        MediaPlayer.IsRepeating = true; 
     76        MediaPlayer.Play("8 Bit Summer"); 
    6177 
    6278        Level.Background.Color = Color.Black; 
     
    6884        Level.Background.FitToLevel(); 
    6985 
    70         w = new Widget(563, 61); 
    71         w.X = -600; 
    72         w.Y = 300; 
    73         w.Image = LoadImage("heder"); 
     86        w = new Widget(1500, 71); 
     87        w.X = 0; 
     88        w.Y = 400; 
     89        w.Image = LoadImage("header"); 
    7490        Add(w); 
    7591 
    76         MultiSelectWindow startMenu = new MultiSelectWindow("", "Select GameMode", "Scores", "Exit"); 
     92        startMenu = new MultiSelectWindow("", "Select GameMode", "Scores", "Credits", "Clear scores", "Exit"); 
    7793        startMenu.DefaultCancel = -1; 
    7894        startMenu.Color = Color.Transparent; 
     
    84100        startMenu.AddItemHandler(0, GameSelect); 
    85101        startMenu.AddItemHandler(1, BestScores); 
    86         startMenu.AddItemHandler(2, Exit); 
     102        startMenu.AddItemHandler(2, ShowCredits); 
     103        startMenu.AddItemHandler(3, ClearList); 
     104        startMenu.AddItemHandler(4, Exit); 
    87105        startMenu.Font = f; 
    88106        Add(startMenu); 
     107    } 
     108    void ClearList() 
     109    { 
     110        DataStorage.Delete(@"raqyrff_fpberf.xml"); 
     111        Start(); 
     112    } 
     113    void ShowCredits() 
     114    { 
     115        Label credits = new Label(); 
     116        credits.Font = f; 
     117        credits.Y = -700; 
     118        credits.Text = "Game by Samuel Niittyla\n\nUFOs and Spaceships by MillionthVector\nhttp://millionthvector.blogspot.com/\n\nMusic\n\nJeremy L - Wolf\nhttps://youtu.be/Ahfu1E_BBSI\n\nHeatleyBros - 8 Bit Summer\nhttps://youtu.be/TiE9Vvmlxew\n\n"; 
     119        credits.TextColor = Color.White; 
     120        Add(credits); 
     121 
     122        Timer t = new Timer(); 
     123        t.Interval = 0.03; 
     124        t.Timeout += delegate { credits.Y += 2; }; 
     125        t.Start(); 
     126        Timer t2 = new Timer(); 
     127        t2.Interval = 1; 
     128        t2.Timeout += delegate { credits.FadeColorTo(RandomGen.NextColor(), 1); }; 
     129        t2.Start(); 
    89130    } 
    90131    void GameSelect() 
     
    125166    { 
    126167        InputWindow speedselect = new InputWindow("Enter UFO Follow Speed"); 
    127         speedselect.TextEntered += HPSelect; 
     168        speedselect.TextEntered += UfoHPSelect; 
    128169        Add(speedselect); 
     170    } 
     171    void UfoHPSelect(InputWindow i) 
     172    { 
     173        string answ = i.InputBox.Text; 
     174        try 
     175        { 
     176            int value = int.Parse(answ); 
     177            if (value >= 0) 
     178            { 
     179                ufohp2 = value; 
     180                ufohp = ufohp2; 
     181                InputWindow hpselect = new InputWindow("Enter UFO HP: "); 
     182                hpselect.TextEntered += HPSelect; 
     183                Add(hpselect); 
     184            } 
     185            else 
     186            { 
     187                MessageDisplay.Add("NOT CORRECT VALUE"); 
     188                Start(); 
     189            } 
     190        } 
     191        catch (Exception ex) 
     192        { 
     193            MessageDisplay.Add(ex.Message); 
     194            Start(); 
     195        } 
    129196    } 
    130197    void HPSelect (InputWindow i) 
     
    229296    void GameStart(int value) 
    230297    { 
    231          
     298        //Level.AmbientLight = 0.8; 
    232299        hp = value; 
    233300        Blip(); 
     
    244311 
    245312        Level.Background.Image = LoadImage("level3bg"); 
    246         MediaPlayer.Play("Edge_of_Tomorrow"); 
     313        MediaPlayer.Play("Wolf"); 
    247314        ADD(); 
    248315 
     
    256323    void ADD() 
    257324    { 
    258         ufohp = 100; 
     325        ufohp = ufohp2; 
    259326        AddPlayer(); 
    260327        AddControls(); 
     
    263330        AddHealthBar(); 
    264331        AddEnemies(); 
     332        AddMiniUfos(new Vector(-450, 0)); 
    265333        AddTimers(); 
    266334        //DataStorage.Load(@"C:\Users\" + Environment.UserName + "", ""); 
     
    288356    void AddMiniUfos (Vector pos) 
    289357    { 
     358        if (pos.X <= leftB.X || pos.X >= rightB.X || pos.Y <= bottomB.Y || pos.Y >= topB.Y) 
     359        { 
     360            return; 
     361        } 
    290362        ufo2 = new PhysicsObject(25, 25); 
    291363        ufo2.Image = LoadImage("ufo1"); 
    292364        ufo2.Shape = Shape.FromImage(LoadImage("ufo1")); 
    293365        ufo2.Animation = ufoAnim; 
     366         
    294367        ufo2.Position = pos; 
     368 
    295369        ufo2.Animation.Start(); 
    296370        ufo2.CanRotate = false; 
     
    316390        AddCollisionHandler(player, "ufo", HitByEnemy); 
    317391        AddCollisionHandler(player, "MiniUfo", HitByEnemy); 
     392        AddCollisionHandler(player, "coin", CoinHit); 
     393         
    318394        player.Tag = "player"; 
     395         
    319396        Add(player); 
    320397 
     
    353430        nothing.Image = LoadImage("coin"); 
    354431        Add(nothing); 
    355         PhysicsObject nothing2 = new PhysicsObject(20, 20); 
    356         nothing2.Tag = "n"; 
    357         nothing2.X = 1000; 
    358         nothing2.Y = -50; 
    359         nothing2.Image = LoadImage("coin"); 
    360         Add(nothing2); 
     432 
     433 
     434        //valo = new Light(); 
     435        //valo.Intensity = 2; 
     436        //valo.Distance = 200; 
     437        //Add(valo); 
    361438    } 
    362439    void HitByEnemy(PhysicsObject player, PhysicsObject enemy) 
     
    381458        Mouse.Listen(MouseButton.Left, ButtonState.Down, Shoot, null, playerGun); 
    382459        Mouse.Listen(MouseButton.Left, ButtonState.Down, Shoot, null, playerGun2); 
    383         //Keyboard.Listen(Key.End, ButtonState.Pressed, delegate { scoreCounter.Value += RandomGen.NextInt(1000, 100000); }, null); 
     460        Keyboard.Listen(Key.PageDown, ButtonState.Down, move, null, new Vector(2, 0)); 
     461        Keyboard.Listen(Key.Delete, ButtonState.Down, move, null, new Vector(-2, 0)); 
     462        Keyboard.Listen(Key.Home, ButtonState.Down, move, null, new Vector(0, 2)); 
     463        Keyboard.Listen(Key.End, ButtonState.Down, move, null, new Vector(0, -2)); 
     464 
     465        Keyboard.Listen(Key.F1, ButtonState.Pressed, delegate { a = true; }, null); 
     466        Keyboard.Listen(Key.Insert, ButtonState.Pressed, delegate { b = true; }, null); 
     467        Keyboard.Listen(Key.Home, ButtonState.Pressed, delegate { c = true; }, null); 
     468        Keyboard.Listen(Key.F4, ButtonState.Pressed, delegate { d = true; }, null); 
     469        Keyboard.Listen(Key.End, ButtonState.Pressed, delegate { e = true; }, null); 
    384470 
    385471 
     
    387473        //Mouse.ListenMovement(0.01, Tahtaa, null); 
    388474    } 
    389  
     475    void move (Vector pos) 
     476    { 
     477        if (a && b && c && d && e) 
     478        { 
     479            player.Position += pos; 
     480        } 
     481    } 
    390482    void RotatePlayer() 
    391483    { 
     
    411503        healthBar.FlipImage(); 
    412504        healthBar.Angle = Angle.RightAngle; 
    413         Add(healthBar); 
     505        Add(healthBar, -1); 
    414506         
    415507    } 
     
    428520    { 
    429521        Pause(); 
    430         menu = new MultiSelectWindow("Options","Close", "Main Menu", "Quit Game"); 
     522        black = new PhysicsObject(4096, 2160); 
     523        black.Color = Color.Black; 
     524        Add(black, 2); 
     525        menu = new MultiSelectWindow("","Close", "Main Menu", "Quit Game"); 
    431526        menu.ItemSelected += MenuBtnPressed; 
    432         menu.Color = Color.LightCyan; 
     527        menu.Color = Color.Transparent; 
    433528        menu.Font = f; 
    434529        menu.SelectionColor = Color.Magenta; 
     
    442537            case 0: 
    443538                Pause(); 
     539                black.Destroy(); 
    444540                break; 
    445541            case 1: 
     
    455551    void AddBorders() 
    456552    { 
    457         PhysicsObject leftB = PhysicsObject.CreateStaticObject(20, 1200); 
     553        leftB = PhysicsObject.CreateStaticObject(20, 1200); 
    458554        leftB.X = -800; 
    459555        leftB.Color = Color.White; 
     
    462558        Add(leftB); 
    463559 
    464         PhysicsObject rightB = PhysicsObject.CreateStaticObject(20, 1200); 
     560        rightB = PhysicsObject.CreateStaticObject(20, 1200); 
    465561        rightB.X = -100; 
    466562        rightB.Color = Color.White; 
     
    469565        Add(rightB); 
    470566 
    471         PhysicsObject bottomB = PhysicsObject.CreateStaticObject(700, 20); 
     567        bottomB = PhysicsObject.CreateStaticObject(700, 20); 
    472568        bottomB.Y = -530; 
    473569        bottomB.X = -450; 
     
    477573        Add(bottomB); 
    478574 
    479         PhysicsObject topB = PhysicsObject.CreateStaticObject(700, 20); 
     575        topB = PhysicsObject.CreateStaticObject(700, 20); 
    480576        topB.Y = 530; 
    481577        topB.X = -450; 
     
    490586        PhysicsObject ammus = gun.Shoot(); 
    491587        //ammo.Text = "Ammo: " + playerGun.Ammo.Value.ToString(); 
    492          
    493     } 
    494  
     588 
     589    } 
    495590    void AddLabels() 
    496591    { 
     
    500595        health.Y = 350; 
    501596        health.Font = f; 
    502         Add(health); 
     597        Add(health, -1); 
    503598 
    504599        enemyHP = new Label("UFO HP: " + ufohp); 
     
    507602        enemyHP.Y = 300; 
    508603        enemyHP.Font = f; 
    509         Add(enemyHP); 
     604        Add(enemyHP, -1); 
    510605 
    511606        roundtxt = new Label("Round " + round); 
     
    514609        roundtxt.Y = 200; 
    515610        roundtxt.Font = f; 
    516         Add(roundtxt); 
     611        Add(roundtxt, -1); 
    517612 
    518613        scoreCounter = new IntMeter(0); 
     
    526621 
    527622        scorelabel.BindTo(scoreCounter); 
    528         Add(scorelabel); 
     623        Add(scorelabel, -1); 
    529624    } 
    530625    int i = 0; 
     
    540635            if (ufohp <= 0) 
    541636            { 
     637                for (int i = 0; i < 20; i++) 
     638                { 
     639                    AddCoin(target.Position); 
     640                } 
    542641                target.Destroy(); 
    543642                AddEnemies(); 
     
    557656                } 
    558657            } 
     658             
    559659        } 
    560660        else if (target.Tag.ToString() == "MiniUfo") 
     
    577677            ammus.Destroy(); 
    578678        } 
     679        if (scoreCounter.Value >= 2000000) 
     680        { 
     681            ClearAll(); 
     682            ShowCredits(); 
     683        } 
     684    } 
     685    void AddCoin(Vector pos) 
     686    { 
     687        coin = new PhysicsObject(15, 15); 
     688        coin.Image = LoadImage("coin"); 
     689        coin.Position = pos + new Vector(RandomGen.NextInt(-100, 100), RandomGen.NextInt(-100, 100)); 
     690        coin.IgnoresExplosions = true; 
     691        coin.Tag = "coin"; 
     692        Add(coin); 
     693        FollowerBrain f = new FollowerBrain(player); 
     694        f.Active = true; 
     695        f.Speed = 300; 
     696        coin.Brain = f; 
     697    } 
     698    void CoinHit(PhysicsObject pelaaja, PhysicsObject target) 
     699    { 
     700        blip.Play(); 
     701        scoreCounter.Value += 5; 
     702        target.Destroy(); 
     703         
    579704    } 
    580705    void AmmoShot2(PhysicsObject ammus, PhysicsObject target) 
     
    630755        a.Timeout += delegate { AddMiniUfos(ufo.Position + new Vector (RandomGen.SelectOne(-100, 100, 0), RandomGen.SelectOne(-100, 100, 0))); }; 
    631756        a.Start(); 
     757 
     758        Timer checkPos = new Timer(); 
     759        checkPos.Interval = 0.2; 
     760        checkPos.Timeout += CheckPosition; 
     761        checkPos.Start(); 
     762 
     763        Timer valonliikuttaja = new Timer(); 
     764        valonliikuttaja.Interval = 0.05; 
     765        valonliikuttaja.Timeout += delegate { valo.Position = player.Position - player.Angle.GetVector() * 100; }; 
     766        //valonliikuttaja.Start(); 
     767    } 
     768    void CheckPosition() 
     769    { 
    632770         
    633771    } 
Note: See TracChangeset for help on using the changeset viewer.