Exemplo n.º 1
0
        protected override void LoadContent()
        {
            camera              = new Camera(GraphicsDevice.Viewport);
            zombelest           = new List <ObjectNew>();
            spriteBatch         = new SpriteBatch(GraphicsDevice);
            this.IsMouseVisible = true;
            _screenCenter       = new Vector2(graphics.GraphicsDevice.Viewport.Width / 2f, graphics.GraphicsDevice.Viewport.Height / 2f);
            _view           = Matrix.Identity;
            _cameraPosition = Vector2.Zero;
            ConvertUnits.SetDisplayUnitToSimUnitRatio(200f);

            var texture       = Content.Load <Texture2D>("New_1");
            var groundtexture = Content.Load <Texture2D>("grass_tile");
            var textureZ      = Content.Load <Texture2D>("ugnd");

            tiles = new List <Tile>();
            for (int i = -10; i < 10; i++)
            {
                for (int j = -10; j < 10; j++)
                {
                    Tile tmp = new Tile(groundtexture, new Vector2(groundtexture.Width * i, groundtexture.Height * j));
                    // tiles.Add(tmp);
                }
            }
            //отрисовка только одного тайла
            Tile casetile = new Tile(groundtexture, new Vector2(0, 0));

            #region Ящики состоящие из двух 4х угольников с размером в 5 раз больше текстуры
            tiles.Add(casetile);
            test          = new TestS();
            test.Box_6txt = Content.Load <Texture2D>("box_2");
            Vertices vertices1 = new Vertices(4);
            vertices1.Add(ConvertUnits.ToSimUnits(new Vector2(-72, -29)) * 5f);
            vertices1.Add(ConvertUnits.ToSimUnits(new Vector2(-24, -60)) * 5f);
            vertices1.Add(ConvertUnits.ToSimUnits(new Vector2(19, -8)) * 5f);
            vertices1.Add(ConvertUnits.ToSimUnits(new Vector2(-37, 29)) * 5f);
            Vertices vertices2 = new Vertices(4);
            vertices2.Add(ConvertUnits.ToSimUnits(new Vector2(56, -14)) * 5f);
            vertices2.Add(ConvertUnits.ToSimUnits(new Vector2(81, 42)) * 5f);
            vertices2.Add(ConvertUnits.ToSimUnits(new Vector2(22, 64)) * 5f);
            vertices2.Add(ConvertUnits.ToSimUnits(new Vector2(-6, 12)) * 5f);

            List <Vertices> boxlist = new List <Vertices>(2);
            boxlist.Add(vertices1);
            boxlist.Add(vertices2);
            test.Box_6          = BodyFactory.CreateCompoundPolygon(_world, boxlist, 2f);
            test.Box_6.BodyType = BodyType.Static;
            test.Box_6.Position = ConvertUnits.ToSimUnits(new Vector2(600, 300));
            #endregion

            #region Границы по размеру 1 тайла земли
            test.Case = BodyFactory.CreateBody(_world);
            {
                Vertices casevert = new Vertices();
                casevert.Add(ConvertUnits.ToSimUnits(new Vector2(0, 0)));
                casevert.Add(ConvertUnits.ToSimUnits(new Vector2(0, 1190)));
                casevert.Add(ConvertUnits.ToSimUnits(new Vector2(1540, 1190)));
                casevert.Add(ConvertUnits.ToSimUnits(new Vector2(1540, 0)));
                casevert.Add(ConvertUnits.ToSimUnits(new Vector2(0, 0)));

                for (int i = 0; i < casevert.Count - 1; ++i)
                {
                    FixtureFactory.AttachEdge(casevert[i], casevert[i + 1], test.Case);
                }
            }
            test.Case.BodyType = BodyType.Static;
            #endregion

            #region Игрок - 8угольная фигура
            player = new ObjectNew(texture, new Vector2(600, 600), _world)
            {
                _Size = new Vector2(0.5f, 0.5f),
                input = new Input {
                    Left = Keys.A, Right = Keys.D, Up = Keys.W, Down = Keys.S
                },
                centreScreen = new Vector2(GraphicsDevice.Viewport.Width / 2, GraphicsDevice.Viewport.Height / 2),
            };
            Vertices bodyvert = new Vertices(8);
            bodyvert.Add(ConvertUnits.ToSimUnits(new Vector2(-90, 51)));
            bodyvert.Add(ConvertUnits.ToSimUnits(new Vector2(-59, -49)));
            bodyvert.Add(ConvertUnits.ToSimUnits(new Vector2(22, -104)));
            bodyvert.Add(ConvertUnits.ToSimUnits(new Vector2(60, -63)));
            bodyvert.Add(ConvertUnits.ToSimUnits(new Vector2(86, 4)));
            bodyvert.Add(ConvertUnits.ToSimUnits(new Vector2(77, 81)));
            bodyvert.Add(ConvertUnits.ToSimUnits(new Vector2(9, 105)));
            bodyvert.Add(ConvertUnits.ToSimUnits(new Vector2(-44, 109)));

            PolygonShape playershape = new PolygonShape(bodyvert, 1f);

            player.body = BodyFactory.CreateBody(_world);
            player.body.CreateFixture(playershape);

            player.body.BodyType    = BodyType.Dynamic;
            player.body.UserData    = "Player";
            player.body.Restitution = 0.3f;
            player.body.Friction    = 0.5f;
            player.body.Position    = new Vector2(5f, 5f);
            #endregion

            #region Player(old collision)
            //player = new ObjectNew(texture, new Vector2(600, 600), _world)
            //{
            //    _Size = new Vector2(0.3f, 0.3f),
            //    input = new Input { Left = Keys.A, Right = Keys.D, Up = Keys.W, Down = Keys.S },
            //    centreScreen = new Vector2(GraphicsDevice.Viewport.Width / 2, GraphicsDevice.Viewport.Height / 2),

            //};
            //player.body= BodyFactory.CreateCircle(_world, ConvertUnits.ToSimUnits(texture.Width / 2 * player._Size.X), 3f, ConvertUnits.ToSimUnits(new Vector2(600, 600)), BodyType.Dynamic);//)
            //player.body.UserData="Player";
            //player.body.Restitution = 0.3f;
            //player.body.Friction = 0.5f;
            #endregion

            #region Zombe(old collisions)
            for (int i = 0; i < 10; i++)
            {
                Random rnd = new Random();
                Thread.Sleep(20);
                Vector2 _position = new Vector2();
                //_position.X = rnd.Next(-1540*10, 1540 * 10);
                //_position.Y = rnd.Next(-1190*10, 1190 * 10);

                _position.X = rnd.Next(-100, 200);
                _position.Y = rnd.Next(-100, 200);

                zombie                  = new ObjectNew(textureZ, _position, _world);
                zombie.body             = BodyFactory.CreateCircle(_world, ConvertUnits.ToSimUnits(zombie.texture.Width / 2 * zombie._Size.X), 0.2f, ConvertUnits.ToSimUnits(_position), BodyType.Dynamic);
                zombie.body.Restitution = 0.3f;
                zombie.body.Friction    = 0.5f;
                zombelest.Add(zombie);
                zombie.body.UserData = "Zombie";
            }
            #endregion
        }
Exemplo n.º 2
0
    private void SpawnPlayer(string playerName, int conId, Vector3 pos)
    {
        int type = int.Parse(playerName[playerName.Length - 1].ToString());

        //  Vector3 pos;

        if (type == rpgC && conId != ourClientId)
        {
            GameObject go1;
            print("entered");
            go1 = Instantiate(playerPre, new Vector3(pos.x, pos.y, pos.z), transform.rotation) as GameObject;
            Player P = new Player();

            P.avatar       = go1;
            P.playerName   = playerName;
            P.connectionId = conId;
            P.playerType   = rpgC;
            //   P.avatar.GetComponentInChildren<TextMesh>().text = playerName;

            players.Add(conId, P);
        }
        else if (type == strgC) // strategy player
        {
            Player P = new Player();
            //   P.teamNo = GameObject.Find("Team").GetComponentInChildren<Dropdown>().value;
            //  GameObject go;
            if (conId == ourClientId)
            {
                //   go = Instantiate(playerPrefab, new Vector3(pos.x, pos.y, pos.z), transform.rotation) as GameObject;
                P.teamNo = GameObject.Find("Team").GetComponentInChildren <Dropdown>().value;
                GameObject.Find("strCam").GetComponent <cameraController>().TeamNo = conId;
                //      go.GetComponent<unit>().TeamNo = conId;
                //    go.transform.Find("selected").gameObject.active = true;
                pointer.myConId = ourClientId;
                print("Client test" + P.teamNo + "   " + ourClientId);
                P.playerName     = playerName;
                P.connectionId   = conId;
                P.myUnits        = new List <Unit>();
                P.EnemyUnits     = new List <Unit>();
                P.myBuildings    = new List <Unit>();
                P.EnemyBuildings = new List <Unit>();
                // pos.y = 0;

                pos.y = 0;
                Vector3 EnemyPos = pos;

                if (ourClientId == 1)
                {
                    foreach (GameObject fooObj in GameObject.FindGameObjectsWithTag("townhall"))
                    {
                        if (fooObj.transform.position.z < 500)
                        {
                            Unit u = new Unit();
                            u.go  = fooObj;
                            u.pos = fooObj.transform.position;
                            u.id  = myBuildingId;
                            myBuildingId++;
                            P.myBuildings.Add(u);
                            u.go.GetComponent <unit>().clientId = 1;
                        }
                        else
                        {
                            Unit u = new Unit();
                            u.go  = fooObj;
                            u.pos = fooObj.transform.position;
                            u.id  = EnemeyBuildId;
                            EnemeyBuildId++;
                            P.EnemyBuildings.Add(u);
                            u.go.GetComponent <unit>().clientId = 0;
                        }
                    }


                    //  pos.x -=300;
                    EnemyPos.z += 2770;
                    EnemyPos.x += 1850;
                }

                //
                else
                {
                    // {
                    pos.z += 2770;
                    pos.x += 1850;
                    foreach (GameObject fooObj in GameObject.FindGameObjectsWithTag("townhall"))
                    {
                        if (fooObj.transform.position.z > 500)
                        {
                            Unit u = new Unit();
                            u.go  = fooObj;
                            u.pos = fooObj.transform.position;
                            u.id  = myBuildingId;
                            u.go.GetComponent <unit>().clientId = 1;
                            myBuildingId++;
                            P.myBuildings.Add(u);
                        }
                        if (fooObj.GetComponent <unit>().clientId == 1)
                        {
                            Unit u = new Unit();
                            u.go  = fooObj;
                            u.pos = fooObj.transform.position;
                            u.id  = EnemeyBuildId;
                            EnemeyBuildId++;
                            u.go.GetComponent <unit>().clientId = 0;
                            P.EnemyBuildings.Add(u);
                        }
                    }
                }
                //   pos.y = 0;

                //  }*/
                for (int i = 0; i < 5; i++)
                {
                    Vector3 testPos = Vector3.zero;


                    Unit u = new Unit();


                    pos.x += ((i + 1) * 6);
                    GameObject go = Instantiate(worker, new Vector3(pos.x, pos.y, pos.z), transform.rotation) as GameObject;

                    u.go       = go;
                    u.unitName = "worker(Clone)";
                    u.id       = TestS.getCountId();
                    TestS.IdCount++;
                    u.unitName = go.name;



                    u.Enemy = false;
                    u.go.GetComponent <unit>().clientId         = 1;
                    u.go.GetComponent <ClickToMove>().enabled   = true;
                    u.go.GetComponent <SoldierScript>().enabled = true;
                    u.rot = 0;
                    //      u.pos = pos;
                    P.myUnits.Add(u);
                }

                for (int i = 0; i < 5; i++)
                {
                    int clr;
                    if (conId == 1)
                    {
                        clr = 2;
                    }
                    else
                    {
                        clr = 1;
                    }

                    EnemyPos.x += ((i + 1) * 10);
                    GameObject go = Instantiate(worker, new Vector3(EnemyPos.x, EnemyPos.y, EnemyPos.z), transform.rotation) as GameObject;

                    Unit u = new Unit();
                    u.go = go;
                    //        u.pos = EnemyPos;
                    u.Enemy = true;
                    u.id    = EnemtId;
                    EnemtId++;


                    u.rot = 0;

                    Renderer[] rs;
                    rs = go.gameObject.GetComponentsInChildren <Renderer>();
                    foreach (Renderer r in rs)
                    {
                        foreach (Material m in r.materials)
                        {
                            r.material.mainTexture = getColors(clr);
                        }
                    }
                    P.EnemyUnits.Add(u);
                }

                myPlayerHandler = P;
                players.Add(conId, P);
            }


            if (P.teamNo != 0)
            {
                // GameObject go = Instantiate(playerPrefab) as GameObject;
                //   if()
                GameObject cam    = GameObject.Find("strCam").gameObject;
                Vector3    camPos = cam.transform.position;
                var        camRot = cam.transform.localRotation.eulerAngles;
                camRot.y += 180;
                camRot.x  = 57;
                camRot.z  = 0;
                //  camRot.x += 56;

                // camRot.z = cam.transform.localRotation.z;

                cam.transform.eulerAngles = camRot;
                camPos.z = 2900;
                camPos.x = 2100;
                cam.transform.position = camPos;
                print(cam.transform.position + "    " + cam.transform.localRotation);
            }
        }

        else
        {       //no my id
            var angles = transform.rotation.eulerAngles;
            UnityEngine.Random.Range(0f, 360F);

            angles.y = UnityEngine.Random.Range(0f, 360F);;
            //   go = Instantiate(otherStrg, new Vector3(pos.x, pos.y, pos.z), Quaternion.Euler(angles)) as GameObject;
        }    //type strgc
             //  P.avatar = go;


        if (conId == ourClientId)   // remove entery page (name info)

        // go.AddComponent<playerMotor>();

        {
            if (playerType == rpgC)//destroy old cam and create rpg + camera
            {
                Player     P = new Player();
                GameObject go2;
                go2       = Instantiate(myPlayer) as GameObject;
                rpgCamera = Instantiate(rpgCamera);

                P.teamNo = GameObject.Find("Team").GetComponentInChildren <Dropdown>().value;


                ThirdPersonCamera camera1 = rpgCamera.transform.GetChild(0).GetComponent <ThirdPersonCamera>();
                ThirdPersonCamera camera2 = rpgCamera.transform.GetChild(1).GetComponent <ThirdPersonCamera>();
                camera1.target = go2.transform.GetChild(2);
                camera2.target = go2.transform.GetChild(2);
                P.avatar       = go2;
                P.playerName   = playerName;
                P.connectionId = conId;
                P.playerType   = rpgC;
                //   P.avatar.GetComponentInChildren<TextMesh>().text = playerName;
                players.Add(conId, P);

                Destroy(GameObject.Find("strCam"));
            }

            GameObject.Find("Canvas").SetActive(false);
            isStarted = true;
        }
    }