Example #1
0
 public Entity()
 {
     animation = new Dictionary<string, AnimationController>();
     worldPosition = new Vector2();
     screenPosition = new Vector2();
     reverseSprite = false;
     physics = new PhysicalReality();
 }
Example #2
0
        public MegaGame(ContentManager cm, Vector2 dim)
        {
            levelSize = new Vector2(4000.0f, 1024.0f);
            screenSize = dim;
            screenPos = new Vector2();

            #region Player
            player = new Player();
            //put in player.loadAnimation()
            player.animation.Add(player.standing, new AnimationController(AnimationType.WRAP, 0.25f, 0.0f, false));
            player.animation[player.standing].frames.Add(cm.Load<Texture2D>("raptorstand1"));
            player.animation[player.standing].frames.Add(cm.Load<Texture2D>("raptorstand2"));
            player.animation[player.standing].frames.Add(cm.Load<Texture2D>("raptorstand3"));
            player.animation.Add(player.moving, new AnimationController(AnimationType.WRAP, 0.2f, 0.0f, false));
            player.animation[player.moving].frames.Add(cm.Load<Texture2D>("raptorstand3"));
            player.animation[player.moving].frames.Add(cm.Load<Texture2D>("raptorstand2"));
            player.animation[player.moving].frames.Add(cm.Load<Texture2D>("raptorstand1"));

            /*string playerfile = "Walking\\balls";
            for(int i = 1; i <= 9; i++)
            {
                player.animation[player.moving].frames.Add(cm.Load<Texture2D>(playerfile + i));
            }*/
            player.currentAnimation = player.standing;
            player.screenPosition.Y = 545;
            player.animation[player.standing].setFrames(player.animation[player.standing].frames);
            player.animation[player.moving].setFrames(player.animation[player.moving].frames);
            player.physics.particles.Add(new Particle(1.0f, player.screenPosition));
            player.physics.externalGlobalForces.Add(new Vector2(0.0f, 120.0f));
            #endregion

            ground = new Ground(new Vector2(1280,1024));
            ground.geometry.Add(new Line(0, 768, 500, 868));
            ground.geometry.Add(new Line(500, 868, 700, 768));
            ground.geometry.Add(new Line(700, 768, 1024, 768));

            #region Backgrounds
            /*
            Texture2D main = cm.Load<Texture2D>("player");
            levelSize.X = main.Width;

            backgrounds = new BackgroundManager(levelSize, screenSize);
            backgrounds.Add(new StaticBackground(new Vector2(1280.0f, 1024.0f), new Vector2(0.2f, 0.0f), cm.Load<Texture2D>("forestp1"), Vector2.Zero, -2), false);
            backgrounds.Add(new StaticBackground(new Vector2(1280.0f, 1024.0f), new Vector2(0.2f, 0.0f), cm.Load<Texture2D>("forestp2"), Vector2.Zero, -3), false);
            backgrounds.Add(new StaticBackground(new Vector2(1280.0f, 1024.0f), new Vector2(0.15f, 0.0f), cm.Load<Texture2D>("forestp3"), Vector2.Zero, -4), false);
            backgrounds.Add(new StaticBackground(new Vector2(1280.0f, 1024.0f), new Vector2(0.2f, 0.0f), cm.Load<Texture2D>("forestLIGHT1"), Vector2.Zero, -1), false);
            backgrounds.Add(new StaticBackground(new Vector2(1280.0f, 1024.0f), new Vector2(0.2f, 0.0f), cm.Load<Texture2D>("forestLIGHT2"), Vector2.Zero, 3), false);
            backgrounds.Add(new StaticBackground(new Vector2(1280.0f, 1024.0f), new Vector2(0.3f, 0.0f), cm.Load<Texture2D>("dirt"), new Vector2(0.0f, 500.0f),1), false);
            backgrounds.Add(new StaticBackground(new Vector2(1280.0f, 1024.0f), new Vector2(0.3f, 0.0f), main, new Vector2(0.0f, 495.0f),2), true);
            backgrounds.Add(new StaticBackground(new Vector2(1280.0f, 1024.0f), new Vector2(0.1f, 0.0f), cm.Load<Texture2D>("skybignowidescreen"), Vector2.Zero, -6), false);

            DynamicBackground rocks = new DynamicBackground(screenSize, new Vector2(0.1f, 0.0f), Vector2.Zero, -4);

            Entity rock1 = new Entity();
            AnimationController arock1 = new AnimationController(AnimationType.SINGLE, 0.0f, 0.0f, false);
            rock1.worldPosition.X = 100.0f;
            rock1.worldPosition.Y = 700.0f;
            arock1.frames.Add(cm.Load<Texture2D>("platform1"));
            rock1.animation.Add("1", arock1);
            rock1.currentAnimation = "1";
            Entity rock2 = new Entity();
            AnimationController arock2 = new AnimationController(AnimationType.SINGLE, 0.0f, 0.0f, false);
            rock2.worldPosition.X = 400.0f;
            rock2.worldPosition.Y = 600.0f;
            arock2.frames.Add(cm.Load<Texture2D>("platform2"));
            rock2.animation.Add("1", arock2);
            rock2.currentAnimation = "1";
            Entity rock3 = new Entity();
            AnimationController arock3 = new AnimationController(AnimationType.SINGLE, 0.0f, 0.0f, false);
            rock3.worldPosition.X = 900.0f;
            rock3.worldPosition.Y = 500.0f;
            arock3.frames.Add(cm.Load<Texture2D>("platform3"));
            rock3.animation.Add("1", arock3);
            rock3.currentAnimation = "1";

            rocks.objects.Add(rock1);
            rocks.objects.Add(rock2);
            rocks.objects.Add(rock3);
            rocks.SetDimensions(levelSize);
            backgrounds.Add(rocks, false);

            DynamicBackground sun = new DynamicBackground(screenSize, Vector2.Zero, Vector2.Zero, -5);
            Entity sunOb = new Entity();
            sunOb.worldPosition.X = 650.0f;
            sunOb.worldPosition.Y = 70.0f;
            //sunOb.reverseSprite = false;
            AnimationController sunA = new AnimationController(AnimationType.LOOP, 0.05f, 0.0f, false);
            string sunFile = "Sun\\Sun_Layer ";

            for (int i = 1; i <= 40; i++)
            {
                sunA.frames.Add(cm.Load<Texture2D>(sunFile + i));
            }
            sunOb.animation.Add("1", sunA);
            sunOb.currentAnimation = "1";
            sun.objects.Add(sunOb);
            sun.SetDimensions(levelSize);
            backgrounds.Add(sun,false);

            DynamicBackground clouds = new DynamicBackground(new Vector2(1280.0f, 1024.0f), new Vector2(0.2f, 0.0f), Vector2.Zero, 0);
            Entity c1 = new Entity();
            c1.worldPosition.X = 200.0f;
            c1.worldPosition.Y = 200.0f;
            AnimationController a1 = new AnimationController(AnimationType.WRAP, 0.7f,0.0f,false);
            AnimationController a2 = new AnimationController(AnimationType.WRAP, 0.05f, 0.23f, false);
            a1.frames.Add(cm.Load<Texture2D>("Clouds\\Cloud1\\C1"));
            a1.frames.Add(cm.Load<Texture2D>("Clouds\\Cloud1\\C2"));
            a1.frames.Add(cm.Load<Texture2D>("Clouds\\Cloud1\\C3"));
            a1.frames.Add(cm.Load<Texture2D>("Clouds\\Cloud1\\C4"));
            a1.frames.Add(cm.Load<Texture2D>("Clouds\\Cloud1\\C5"));

            string filename = "Clouds\\Cloud9\\Cloud9_Layer ";
            for (int i = 1; i <= 82; i++)
            {
                a2.frames.Add(cm.Load<Texture2D>(filename + i));
            }

            Entity c2 = new Entity();
            c2.worldPosition.X = 600.0f;
            c2.worldPosition.Y = 300.0f;
            c1.animation.Add("1", a1);
            c1.currentAnimation = "1";
            c2.animation.Add("1", a2);
            c2.currentAnimation = "1";
            clouds.objects.Add(c1);
            clouds.objects.Add(c2);
            clouds.SetDimensions(levelSize);
            backgrounds.Add(clouds,false);

            backgrounds.Initialize();
            */
            #endregion

            #region Physics

            ps = new PhysicalReality();
            ps2 = new PhysicalReality();
            startPos = new Vector2(200.0f, 200.0f);
            Random rand = new Random();
            cockInKrisButt = new Vector2(1000.0f, 200.0f);

            List<Vector2> start;
            start = new List<Vector2>();
            start.Add(new Vector2(200.0f, 200.0f));
            start.Add(new Vector2(200.0f, 400.0f));
            start.Add(new Vector2(400.0f, 400.0f));
            start.Add(new Vector2(400.0f, 200.0f));

            for (int i = 0; i < 4; i++)
            {
                ps.particles.Add(new Particle(mass, start[i]));
                //ps.particles[i].force += new Vector2((float)(12000.0 * Math.Cos((i * Math.PI) / 20)), (float)(18000 * Math.Sin((i * Math.PI) / 20)));
            }
            for (int i = 0; i < (ps.particles.Count - 1); i++)
            {
                ps.springs.Add(new Spring(40.0f, 20.0f, 200.0f));
                ps.springs[i].index1 = i;
                ps.springs[i].index2 = i + 1;
            }

            Spring s1 = new Spring(20.0f, 20.0f, (float)Math.Sqrt(80000.0));
            Spring s2 = new Spring(20.0f, 20.0f, (float)Math.Sqrt(80000.0));
            Spring b1 = new Spring(40.0f, 20.0f, 200.0f);
            s1.index1 = 0;
            s1.index2 = 2;
            s2.index1 = 1;
            s2.index2 = 3;
            b1.index1 = 0;
            b1.index2 = 3;
            ps.springs.Add(s1);
            ps.springs.Add(s2);
            ps.springs.Add(b1);

            Particle fix = new Particle(mass, new Vector2(700.0f, 100.0f));
            //fix.physicsActivated = false;
            Particle p1 = new Particle(mass, new Vector2(800.0f, 100.0f));

            ps2.particles.Add(fix);
            ps2.particles.Add(p1);

            Spring sfix1 = new Spring(20.0f, 20.0f, 100.0f);
            sfix1.index1 = 0;
            sfix1.index2 = 1;

            Particle p2 = new Particle(mass, new Vector2(900.0f, 100.0f));
            ps2.particles.Add(p2);

            Spring s12 = new Spring(20.0f, 20.0f, 100.0f);
            s12.index1 = 1;
            s12.index2 = 2;

            Particle p3 = new Particle(mass, new Vector2(1000.0f, 100.0f));
            ps2.particles.Add(p3);

            Spring s23 = new Spring(20.0f, 20.0f, 100.0f);
            s23.index1 = 2;
            s23.index2 = 3;

            Particle p4 = new Particle(mass, new Vector2(1100.0f, 100.0f));
            ps2.particles.Add(p4);

            Spring s34 = new Spring(20.0f, 20.0f, 100.0f);
            s34.index1 = 3;
            s34.index2 = 4;

            Particle p5 = new Particle(mass, new Vector2(1200.0f, 100.0f));
            ps2.particles.Add(p5);

            Spring s45 = new Spring(20.0f, 20.0f, 100.0f);
            s45.index1 = 4;
            s45.index2 = 5;

            ps2.springs.Add(sfix1);
            ps2.springs.Add(s12);
            ps2.springs.Add(s23);
            ps2.springs.Add(s34);
            ps2.springs.Add(s45);

            //ps.externalGlobalForces.Add(new Vector2(0.0f, 120.81f));
            ps2.externalGlobalForces.Add(new Vector2(0.0f, 120.81f));

            img = cm.Load<Texture2D>("redsquare");
            //sp = cm.Load<Texture2D>("spring");

            #endregion
        }
Example #3
0
 public PhysicsDemo()
 {
     ps = new PhysicalReality();
 }