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 }
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; } }