source: 2017/24/SamuelN/Endless/Endless/Endless/Endless.cs @ 9667

Revision 9667, 22.5 KB checked in by saniitty, 11 months ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Endless : PhysicsGame
10{
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
19    public Font f = LoadFont("font1");
20    string ship;
21    Widget w;
22    SoundEffect blip = LoadSoundEffect("blip");
23
24    PhysicsObject player;
25    PhysicsObject black;
26    PhysicsObject ufo;
27    PhysicsObject ufo2;
28
29    PhysicsObject leftB;
30    PhysicsObject rightB;
31    PhysicsObject bottomB;
32    PhysicsObject topB;
33
34    AssaultRifle playerGun;
35    AssaultRifle playerGun2;
36
37    PhysicsObject tausta;
38    Label health;
39    Label enemyHP;
40    Label scorelabel;
41
42    double firerate = 15;
43    int hp = 200;
44    double spawnTime = 0.4;
45    int ufohp = 100;
46
47    int speeds;
48
49    int round = 1;
50    int ufohp2 = 100;
51    Label roundtxt;
52
53    MultiSelectWindow menu;
54    MultiSelectWindow startMenu;
55    DoubleMeter healthCounter;
56    IntMeter scoreCounter;
57
58    private Animation ufoAnim;
59
60    ScoreList topLista = new ScoreList(20, false, 1000);
61   
62    public override void Begin()
63    {
64        topLista = DataStorage.TryLoad<ScoreList>(topLista, "raqyrff_fpberf.xml");
65
66        ufoAnim = LoadAnimation("ufoAnim");
67        //IsFullScreen = true;
68        IsMouseVisible = true;
69        Start();
70    }
71
72    void Start()
73    {
74        ship = "bgspeedship";
75        MediaPlayer.IsRepeating = true;
76        MediaPlayer.Play("8 Bit Summer");
77
78        Level.Background.Color = Color.Black;
79        Level.Width = Screen.Width;
80        Level.Height = Screen.Height;
81        Level.Background.Image = LoadImage("bgImg");
82        Level.CreateBottomBorder(0, false);
83        Level.CreateTopBorder(0, false);
84        Level.Background.FitToLevel();
85
86        w = new Widget(1500, 71);
87        w.X = 0;
88        w.Y = 400;
89        w.Image = LoadImage("header");
90        Add(w);
91
92        startMenu = new MultiSelectWindow("", "Select GameMode", "Scores", "Credits", "Clear scores", "Exit");
93        startMenu.DefaultCancel = -1;
94        startMenu.Color = Color.Transparent;
95        startMenu.SelectionColor = Color.Magenta;
96
97        startMenu.X = 700;
98        startMenu.Y = 0;
99
100        startMenu.AddItemHandler(0, GameSelect);
101        startMenu.AddItemHandler(1, BestScores);
102        startMenu.AddItemHandler(2, ShowCredits);
103        startMenu.AddItemHandler(3, ClearList);
104        startMenu.AddItemHandler(4, Exit);
105        startMenu.Font = f;
106        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();
130    }
131    void GameSelect()
132    {
133        MultiSelectWindow selectG = new MultiSelectWindow("", "Deathmatch", "More coming soon");
134        selectG.DefaultCancel = -1;
135        selectG.Color = Color.Transparent;
136        selectG.SelectionColor = Color.Magenta;
137
138        selectG.X = 650;
139        selectG.Y = 0;
140
141        selectG.AddItemHandler(0, Difficulty);
142        selectG.AddItemHandler(1, Difficulty);
143        selectG.Font = f;
144        Add(selectG);
145    }
146    void Difficulty()
147    {
148        MultiSelectWindow selectD = new MultiSelectWindow("", "EZ for Noobs", "Normal", "Extreme", "Hardcore", "Extreme Hardcore 1HP", "Sandbox Mode");
149        selectD.DefaultCancel = -1;
150        selectD.Color = Color.Transparent;
151        selectD.SelectionColor = Color.Magenta;
152
153        selectD.X = 650;
154        selectD.Y = 0;
155
156        selectD.AddItemHandler(0, delegate { speeds = 80; GameStart(300); });
157        selectD.AddItemHandler(1, delegate { speeds = 100; GameStart(200); });
158        selectD.AddItemHandler(2, delegate { speeds = 300; GameStart(100); });
159        selectD.AddItemHandler(3, delegate { speeds = 400; GameStart(50); });
160        selectD.AddItemHandler(4, delegate { speeds = 300; GameStart(1); });
161        selectD.AddItemHandler(5, SandboxMode);
162        selectD.Font = f;
163        Add(selectD);
164    }
165    void SandboxMode()
166    {
167        InputWindow speedselect = new InputWindow("Enter UFO Follow Speed");
168        speedselect.TextEntered += UfoHPSelect;
169        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        }
196    }
197    void HPSelect (InputWindow i)
198    {
199        string answ = i.InputBox.Text;
200        try
201        {
202            int value = int.Parse(answ);
203            if (value >= 0)
204            {
205                speeds = value;
206                InputWindow hpselect = new InputWindow("Enter Start HP: ");
207                hpselect.TextEntered += AmmoSelect;
208                Add(hpselect);
209            }
210            else
211            {
212                MessageDisplay.Add("NOT CORRECT VALUE");
213                Start();
214            }
215        }
216        catch (Exception ex)
217        {
218            MessageDisplay.Add(ex.Message);
219            Start();
220        }
221    }
222    void AmmoSelect (InputWindow i)
223    {
224        string answ = i.InputBox.Text;
225        try
226        {
227            int value = int.Parse(answ);
228            if (value > 0)
229            {
230                hp = value;
231                InputWindow ammoselect = new InputWindow("Enter Firerate: ");
232                ammoselect.TextEntered += FireRateSelect;
233                Add(ammoselect);
234            }
235            else
236            {
237                MessageDisplay.Add("NOT CORRECT VALUE");
238                Start();
239            }
240        }
241        catch(Exception ex)
242        {
243            MessageDisplay.Add(ex.Message);
244            Start();
245        }
246    }
247    void FireRateSelect(InputWindow i)
248    {
249        string answ = i.InputBox.Text;
250        try
251        {
252            double value = double.Parse(answ);
253            if (value > 0)
254            {
255                firerate = value;
256                InputWindow hpselect = new InputWindow("Enter Spawn Time: ");
257                hpselect.TextEntered += ProcessInput;
258                Add(hpselect);
259            }
260            else
261            {
262                MessageDisplay.Add("NOT CORRECT VALUE");
263                Start();
264            }
265        }
266        catch (Exception ex)
267        {
268            MessageDisplay.Add(ex.Message);
269            Start();
270        }
271    }
272    void ProcessInput(InputWindow i)
273    {
274        string answ = i.InputBox.Text;
275        try
276        {
277            double value = double.Parse(answ);
278            if (value > 0)
279            {
280                spawnTime = value;
281                GameStart(hp);
282                w.Destroy();
283            }
284            else
285            {
286                MessageDisplay.Add("NOT CORRECT VALUE");
287                Start();
288            }
289        }
290        catch (Exception ex)
291        {
292            MessageDisplay.Add(ex.Message);
293            Start();
294        }
295    }
296    void GameStart(int value)
297    {
298        //Level.AmbientLight = 0.8;
299        hp = value;
300        Blip();
301        w.Destroy();
302        MediaPlayer.Stop();
303
304        Level.Background.Color = Color.Black;
305
306        //Label levelOneText = new Label("Level 1");
307        //levelOneText.Font = f;
308        //levelOneText.TextColor = Color.White;
309        //Add(levelOneText);
310        //levelOneText.Destroy();
311
312        Level.Background.Image = LoadImage("level3bg");
313        MediaPlayer.Play("Wolf");
314        ADD();
315
316        //tausta = new PhysicsObject(750, 1000);
317        //tausta.Image = LoadImage("pb");
318        //tausta.IgnoresCollisionResponse = true;
319        //tausta.X = -450;
320        //tausta.IgnoresExplosions = true;
321        //Add(tausta, -3);
322    }
323    void ADD()
324    {
325        ufohp = ufohp2;
326        AddPlayer();
327        AddControls();
328        AddBorders();
329        AddLabels();
330        AddHealthBar();
331        AddEnemies();
332        AddMiniUfos(new Vector(-450, 0));
333        AddTimers();
334        //DataStorage.Load(@"C:\Users\" + Environment.UserName + "", "");
335    }
336
337    void AddEnemies()
338    {
339        ufo = new PhysicsObject(75, 75);
340        ufo.Image = LoadImage("ufo1");
341        ufo.Shape = Shape.FromImage(LoadImage("ufo1"));
342        ufo.Animation = ufoAnim;
343        ufo.X = -450;
344        ufo.Y = 400;
345        ufo.Animation.Start();
346        ufo.CanRotate = false;
347        ufo.Tag = "ufo";
348        ufo.IgnoresExplosions = true;
349        Add(ufo);
350
351        FollowerBrain f = new FollowerBrain(player);
352        f.Active = true;
353        f.Speed = speeds;
354        ufo.Brain = f;
355    }
356    void AddMiniUfos (Vector pos)
357    {
358        if (pos.X <= leftB.X || pos.X >= rightB.X || pos.Y <= bottomB.Y || pos.Y >= topB.Y)
359        {
360            return;
361        }
362        ufo2 = new PhysicsObject(25, 25);
363        ufo2.Image = LoadImage("ufo1");
364        ufo2.Shape = Shape.FromImage(LoadImage("ufo1"));
365        ufo2.Animation = ufoAnim;
366       
367        ufo2.Position = pos;
368
369        ufo2.Animation.Start();
370        ufo2.CanRotate = false;
371        ufo2.Tag = "MiniUfo";
372
373        Add(ufo2);
374        //ufo2.Push(new Vector(RandomGen.NextInt(-10000, 10000), RandomGen.NextInt(-10000, 10000)));
375
376        FollowerBrain f2 = new FollowerBrain(player);
377        f2.Active = true;
378        f2.Speed = speeds + 20;
379        ufo2.Brain = f2;
380    }
381    void AddPlayer()
382    {
383        player = new PhysicsObject(60, 60);
384        player.Image = LoadImage(ship);
385        player.Shape = Shape.FromImage(LoadImage(ship));
386        //player.CanRotate = false;
387        player.X = -450;
388        player.Y = -400;
389        //player.IgnoresCollisionWith(tausta);
390        AddCollisionHandler(player, "ufo", HitByEnemy);
391        AddCollisionHandler(player, "MiniUfo", HitByEnemy);
392        AddCollisionHandler(player, "coin", CoinHit);
393       
394        player.Tag = "player";
395       
396        Add(player);
397
398        //Flame liekki = new Flame(LoadImage(""));
399        //liekki.Position = player.Position;
400        //Add(liekki);
401
402        playerGun = new AssaultRifle(30, 10);
403        playerGun.ProjectileCollision = AmmoShot;
404        playerGun.FireRate = firerate;
405        playerGun.InfiniteAmmo = true;
406        playerGun.Angle = Angle.RightAngle;
407        playerGun.Y -= 10;
408        playerGun.X -= 7;
409        playerGun.AttackSound = null;
410        playerGun.Image = LoadImage("p");
411        playerGun.AmmoIgnoresExplosions = true;
412        player.Add(playerGun);
413
414        playerGun2 = new AssaultRifle(30, 10);
415        playerGun2.ProjectileCollision = AmmoShot;
416        playerGun2.FireRate = firerate;
417        playerGun2.InfiniteAmmo = true;
418        playerGun2.Angle = Angle.RightAngle;
419        playerGun2.Y -= 10;
420        playerGun2.X += 7;
421        playerGun2.AttackSound = null;
422        playerGun2.Image = LoadImage("p");
423        playerGun2.AmmoIgnoresExplosions = true;
424        player.Add(playerGun2);
425
426        PhysicsObject nothing = new PhysicsObject(20, 20);
427        nothing.Tag = "n";
428        nothing.X = 1000;
429        nothing.Y = -520;
430        nothing.Image = LoadImage("coin");
431        Add(nothing);
432
433
434        //valo = new Light();
435        //valo.Intensity = 2;
436        //valo.Distance = 200;
437        //Add(valo);
438    }
439    void HitByEnemy(PhysicsObject player, PhysicsObject enemy)
440    {
441        if (enemy.Tag.ToString() == "ufo")
442        {
443            healthCounter.Value -= 20;
444            health.Text = "HP: " + healthCounter.Value;
445        }
446        else if (enemy.Tag.ToString() == "MiniUfo")
447        {
448            healthCounter.Value -= 5;
449            health.Text = "HP: " + healthCounter.Value;
450        }
451    }
452    void AddControls()
453    {
454        Keyboard.Listen(Key.A, ButtonState.Down, MovePlayer, null, new Vector(-500, 0));
455        Keyboard.Listen(Key.D, ButtonState.Down, MovePlayer, null, new Vector(500, 0));
456        Keyboard.Listen(Key.W, ButtonState.Down, MovePlayer, null, new Vector(0, 500));
457        Keyboard.Listen(Key.S, ButtonState.Down, MovePlayer, null, new Vector(0, -500));
458        Mouse.Listen(MouseButton.Left, ButtonState.Down, Shoot, null, playerGun);
459        Mouse.Listen(MouseButton.Left, ButtonState.Down, Shoot, null, playerGun2);
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);
470
471
472        Keyboard.Listen(Key.Escape, ButtonState.Pressed, OpenMenu, null);
473        //Mouse.ListenMovement(0.01, Tahtaa, null);
474    }
475    void move (Vector pos)
476    {
477        if (a && b && c && d && e)
478        {
479            player.Position += pos;
480        }
481    }
482    void RotatePlayer()
483    {
484
485    }
486    void Tahtaa()
487    {
488        Vector suunta = (Mouse.PositionOnWorld - player.AbsolutePosition).Normalize();
489        player.Angle = suunta.Angle + Angle.FromDegrees(-90);
490    }
491    void AddHealthBar()
492    {
493        healthCounter = new DoubleMeter(hp);
494        healthCounter.MaxValue = hp;
495        healthCounter.LowerLimit += HealthLow;
496
497        ProgressBar healthBar = new ProgressBar(300, 40);
498        healthBar.X = -70;
499        healthBar.Y = 300;
500        healthBar.Image = LoadImage("left_hbar");
501        healthBar.BarImage = LoadImage("left_hbar_full");
502        healthBar.BindTo(healthCounter);
503        healthBar.FlipImage();
504        healthBar.Angle = Angle.RightAngle;
505        Add(healthBar, -1);
506       
507    }
508
509    void HealthLow()
510    {
511        player.Destroy();
512        playerGun.Destroy();
513        playerGun2.Destroy();
514
515        HighScoreWindow topIkkuna = new HighScoreWindow(Screen.Width, Screen.Height,"Scores", "Your Score: %p! Enter name:",topLista, scoreCounter.Value);
516        topIkkuna.Closed += TallennaPisteet;
517        Add(topIkkuna);
518    }
519    void OpenMenu()
520    {
521        Pause();
522        black = new PhysicsObject(4096, 2160);
523        black.Color = Color.Black;
524        Add(black, 2);
525        menu = new MultiSelectWindow("","Close", "Main Menu", "Quit Game");
526        menu.ItemSelected += MenuBtnPressed;
527        menu.Color = Color.Transparent;
528        menu.Font = f;
529        menu.SelectionColor = Color.Magenta;
530        Add(menu);
531    }
532
533    void MenuBtnPressed(int selection)
534    {
535        switch (selection)
536        {
537            case 0:
538                Pause();
539                black.Destroy();
540                break;
541            case 1:
542                ClearAll();
543                Start();
544                break;
545            case 2:
546                ConfirmExit();
547                break;
548        }
549    }
550
551    void AddBorders()
552    {
553        leftB = PhysicsObject.CreateStaticObject(20, 1200);
554        leftB.X = -800;
555        leftB.Color = Color.White;
556        leftB.CanRotate = false;
557        leftB.Restitution = 0;
558        Add(leftB);
559
560        rightB = PhysicsObject.CreateStaticObject(20, 1200);
561        rightB.X = -100;
562        rightB.Color = Color.White;
563        rightB.CanRotate = false;
564        rightB.Restitution = 0;
565        Add(rightB);
566
567        bottomB = PhysicsObject.CreateStaticObject(700, 20);
568        bottomB.Y = -530;
569        bottomB.X = -450;
570        bottomB.Color = Color.White;
571        bottomB.CanRotate = false;
572        bottomB.Restitution = 0;
573        Add(bottomB);
574
575        topB = PhysicsObject.CreateStaticObject(700, 20);
576        topB.Y = 530;
577        topB.X = -450;
578        topB.Color = Color.White;
579        topB.CanRotate = false;
580        topB.Restitution = 0;
581        Add(topB);
582    }
583
584    void Shoot(AssaultRifle gun)
585    {
586        PhysicsObject ammus = gun.Shoot();
587        //ammo.Text = "Ammo: " + playerGun.Ammo.Value.ToString();
588
589    }
590    void AddLabels()
591    {
592        health = new Label("HP: " + hp);
593        health.X = 200;
594        health.TextColor = Color.White;
595        health.Y = 350;
596        health.Font = f;
597        Add(health, -1);
598
599        enemyHP = new Label("UFO HP: " + ufohp);
600        enemyHP.X = 200;
601        enemyHP.TextColor = Color.White;
602        enemyHP.Y = 300;
603        enemyHP.Font = f;
604        Add(enemyHP, -1);
605
606        roundtxt = new Label("Round " + round);
607        roundtxt.X = 200;
608        roundtxt.TextColor = Color.White;
609        roundtxt.Y = 200;
610        roundtxt.Font = f;
611        Add(roundtxt, -1);
612
613        scoreCounter = new IntMeter(0);
614
615        scorelabel = new Label();
616        scorelabel.X = 200;
617        scorelabel.Y = 450;
618        scorelabel.Font = f;
619        scorelabel.TextColor = Color.White;
620
621
622        scorelabel.BindTo(scoreCounter);
623        Add(scorelabel, -1);
624    }
625    int i = 0;
626
627    void AmmoShot(PhysicsObject ammus, PhysicsObject target)
628    {
629        if (target.Tag.ToString() == "ufo")
630        {
631            ammus.Destroy();
632            ufohp -= 1;
633            enemyHP.Text = "UFO HP: " + ufohp;
634            //scoreCounter.Value += 1;
635            if (ufohp <= 0)
636            {
637                for (int i = 0; i < 20; i++)
638                {
639                    AddCoin(target.Position);
640                }
641                target.Destroy();
642                AddEnemies();
643                round += 1;
644                roundtxt.Text = "Round " + round;
645                ufohp = 100 + i;
646                i += 10;
647                scoreCounter.Value += 20;
648
649                if (round >= 20 && round < 40)
650                {
651                    Level.Background.Image = LoadImage("level1bg");
652                }
653                else if (round >= 40 && round < 60)
654                {
655                    Level.Background.Image = LoadImage("level2bg");
656                }
657            }
658           
659        }
660        else if (target.Tag.ToString() == "MiniUfo")
661        {
662            Explosion rajahdys = new Explosion(50);
663            rajahdys.Position = target.Position;
664            scoreCounter.Value += 10;
665            rajahdys.Sound = LoadSoundEffect("expl");
666            Add(rajahdys);
667            target.Destroy();
668        }
669        else if (target.Tag.ToString() == "n")
670        {
671            target.Destroy();
672            PlaySound("coin2");
673            scoreCounter.Value += 1000000;
674        }
675        else if (target != tausta)
676        {
677            ammus.Destroy();
678        }
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       
704    }
705    void AmmoShot2(PhysicsObject ammus, PhysicsObject target)
706    {
707        if (target.Tag.ToString() == "player")
708        {
709           
710            hp -= 2;
711           
712            health.Text = "HP: " + hp.ToString();
713            if (hp <= 0)
714            {
715                player.Destroy();
716                HighScoreWindow topIkkuna = new HighScoreWindow(Screen.Width, Screen.Height, "Scores", "Your Score: %p! Enter name:", topLista, scoreCounter.Value);
717                topIkkuna.Closed += TallennaPisteet;
718                Add(topIkkuna);
719            }
720        }
721    }
722
723    void MovePlayer(Vector direc)
724    {
725        player.Push(direc);
726    }
727
728    void BestScores()
729    {
730        HighScoreWindow topIkkuna = new HighScoreWindow("Scores", topLista);
731        topIkkuna.Closed += TallennaPisteet;
732        Add(topIkkuna);
733    }
734    void TallennaPisteet(Window sender)
735    {
736        DataStorage.Save<ScoreList>(topLista, "raqyrff_fpberf.xml");
737        ClearAll();
738        Start();
739    }
740    void Blip()
741    {
742        //blip.Play();
743    }
744
745    void AddTimers()
746    {
747
748        Timer t = new Timer();
749        t.Interval = 0.01;
750        t.Timeout += Tahtaa;
751        t.Start();
752
753        Timer a = new Timer();
754        a.Interval = spawnTime;
755        a.Timeout += delegate { AddMiniUfos(ufo.Position + new Vector (RandomGen.SelectOne(-100, 100, 0), RandomGen.SelectOne(-100, 100, 0))); };
756        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    {
770       
771    }
772}
Note: See TracBrowser for help on using the repository browser.