source: 2017/30/MikkoH/Agario/Agario/Agario/Agario.cs @ 9073

Revision 9073, 1.6 KB checked in by mianhayr, 2 years 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 Agario : PhysicsGame
10{
11    public override void Begin()
12    {
13        Window.Width = 800; Window.Height = 600; Level.Size = new Vector(10000, 10000);
14
15        PhysicsObject p = new PhysicsObject(20, 20, Shape.Circle);
16        p.IgnoresCollisionResponse = true;
17        Add(p); Camera.Follow(p);
18        AddCollisionHandler(p, (PhysicsObject p1, PhysicsObject p2) => { if (p1.Width > p2.Width) { double d = Math.Sqrt(p2.Width) / Math.PI; p1.Size += new Vector(d,d); p2.Destroy(); } else p.Destroy(); });
19       
20        // todo hiiri
21        Keyboard.Listen(Key.Up,    ButtonState.Pressed, () => { p.Velocity += new Vector(0, 250 / p.Width); }, null);
22        Keyboard.Listen(Key.Down,  ButtonState.Pressed, () => { p.Velocity += new Vector(0, -250 / p.Width); }, null);
23        Keyboard.Listen(Key.Left,  ButtonState.Pressed, () => { p.Velocity += new Vector(-250 / p.Width, 0); }, null);
24        Keyboard.Listen(Key.Right, ButtonState.Pressed, () => { p.Velocity += new Vector(250 / p.Width, 0); }, null);
25
26        for (int i = 0; i < 2000; i++)
27        {
28            double size = RandomGen.NextDouble(5, 75);
29            PhysicsObject b = PhysicsObject.CreateStaticObject(size, size, Shape.Circle);
30            b.Color = RandomGen.NextColor();
31            b.Position = RandomGen.NextVector(Level.Left, Level.Bottom, Level.Right, Level.Top);
32            Add(b);
33        }
34
35    }
36   
37}
Note: See TracBrowser for help on using the repository browser.