void Start() { // Temporary!!! myTurn = (Random.Range(0, 2) == 1) ? true : false; Input.multiTouchEnabled = false; dolls = new List <CharacterDoll>(); playerDoll = new List <CharacterDoll>(); enemyDoll = new List <CharacterDoll>(); skills = new List <Skill>(); board = Board.Instance; board.Initialize(); PushAllDolls(); DollController.Instance.Initialize(); u = GameUIManager.Instance; u.Initialize(); u.ShowCharacters(); place = PlaceMode.Instance; place.StartPlaceMode(); SoundManager.Instance.PlayBGM(gameBgm); }
private void horizontalRadio_CheckedChanged(object sender, EventArgs e) { if (mode != PlaceMode.None && horizontalRadio.Checked) { mode = (PlaceMode)((int)mode + 5); } }
public void StartDrag(PlaceMode placeMode) { if (Placed) { return; } if (Dragging) { return; } Dragging = true; Input.InputManager.Input.EditorMode.Place.UsePressed(); switch (placeMode) { case PlaceMode.None: dragCoroutine = StartCoroutine(DragProcess()); break; case PlaceMode.Click: dragCoroutine = StartCoroutine(ClickMove()); break; case PlaceMode.Drag: dragCoroutine = StartCoroutine(ClickMove()); break; } }
private void verticalRadio_CheckedChanged(object sender, EventArgs e) { if (mode != PlaceMode.None && verticalRadio.Checked) { mode = (PlaceMode)((int)mode - 5); } }
private void boatBtn_Click(object sender, EventArgs e) { if (verticalRadio.Checked) { mode = PlaceMode.VBoat; } else if (horizontalRadio.Checked) { mode = PlaceMode.HBoat; } }
private void destroyerBtn_Click(object sender, EventArgs e) { if (verticalRadio.Checked) { mode = PlaceMode.VDestroyer; } else if (horizontalRadio.Checked) { mode = PlaceMode.HDestroyer; } }
private void submarineBtn_Click(object sender, EventArgs e) { if (verticalRadio.Checked) { mode = PlaceMode.VSubmarine; } else if (horizontalRadio.Checked) { mode = PlaceMode.HSubmarine; } }
private void battleShipBtn_Click(object sender, EventArgs e) { if (verticalRadio.Checked) { mode = PlaceMode.VBattleship; } else if (horizontalRadio.Checked) { mode = PlaceMode.HBattleship; } }
/// <summary> /// Set the place mode /// </summary> /// <param name="pm">Mode</param> public void SetPlaceMode(PlaceMode pm) { switch (pm) { case PlaceMode.mousePos: placeInScreenCenter = false; break; case PlaceMode.screenCenter: placeInScreenCenter = true; break; } }
public Vector3 GridToWorld(Vector2 pos, PlaceMode placeMode = PlaceMode.Axis) { switch (placeMode) { case PlaceMode.Axis: break; case PlaceMode.TileCenter: pos = pos + Vector2.one * 0.5f; break; default: throw new NotImplementedException(); } pos = transform.TransformPoint(pos); return(pos * scale); }
private void HandleInputModes() { if (Input.GetKey(KeyCode.LeftControl)) { placeMode = PlaceMode.Flat; } else { placeMode = PlaceMode.Vertical; } if (Input.GetKey(KeyCode.LeftShift)) { continuousInput = true; } else { continuousInput = false; } }
public void Update(IXNAGame _game) { if (Game.Keyboard.IsKeyPressed(Microsoft.Xna.Framework.Input.Keys.F)) { var bol = PhysicsHelper.CreateDynamicSphereActor(Engine.Scene, 1, 1); bol.GlobalPosition = Game.SpectaterCamera.CameraPosition + Game.SpectaterCamera.CameraDirection * 5; bol.LinearVelocity = Game.SpectaterCamera.CameraDirection * 5; } Plane p = new Plane(Vector3.Up, 0); var ray = Game.GetWereldViewRay(new Vector2(Game.Window.ClientBounds.Width * 0.5f, Game.Window.ClientBounds.Height * 0.5f)); ray.Direction.Normalize(); Ray worldRay = new Ray(ray.Position, ray.Direction); //worldRay.dir.normalize(); //Important!! //var hit = Engine.Scene.RaycastClosestShape(worldRay, ShapesType.All, uint.MaxValue, 1000, uint.MaxValue, null); var numHits = Engine.Scene.RaycastAllShapes(worldRay, raycastReport, ShapesType.All); if (numHits != raycastReport.Hits.Count) { throw new InvalidOperationException("I dont seem to understand how this works"); } RaycastHit closestHit; closestHit = new RaycastHit(); closestHit.Distance = float.PositiveInfinity; closestHit.Shape = null; for (int i = 0; i < raycastReport.Hits.Count; i++) { var hit = raycastReport.Hits[i]; if (ghostComponent != null) { if (ghostComponent.ContainsShape(hit.Shape)) { continue; } } if (hit.Distance < closestHit.Distance && hit.Distance < 1000) { closestHit = hit; } } raycastReport.Hits.Clear(); if (Game.Keyboard.IsKeyDown(Keys.C)) { if (closestHit.Shape != null) { if (ghostComponent != null) { ghostComponent.PlaceAtHit(closestHit); } } } if (Game.Keyboard.IsKeyPressed(Keys.X)) { ICogComponent comp = findComponentWithShape(closestHit.Shape); if (comp != null) { comp.DisposeActors(); components.Remove(comp); } } if (Game.Keyboard.IsKeyDown(Keys.R)) { temp(Game, actor); /*mobileCog.Dispose(); * mobileCog = CreateCog(triangleMesh, engine.Scene);*/ } if (Game.Keyboard.IsKeyPressed(Keys.Enter) || Game.Keyboard.IsKeyPressed(Keys.A)) { switch (placeMode) { case PlaceMode.StaticBox: ghostComponent = new StaticBox(Engine); components.Add(ghostComponent); break; case PlaceMode.Cog: ghostComponent = new Cog(this, Engine); components.Add(ghostComponent); break; } } if (Game.Keyboard.IsKeyPressed(Keys.NumPad9)) { placeMode = PlaceMode.StaticBox; } if (Game.Keyboard.IsKeyPressed(Keys.NumPad1)) { placeMode = PlaceMode.Cog; } Engine.Update(Game.Elapsed); }
/* * PlaceMode * 1. myTurn이 true일 경우 현재 차례(order)의 캐릭터를 가져온다. * 2. UI에서 현재 차례의 캐릭터를 보여주고(스케일, 화살표 등) 타이머를 맞춘다. * 3. 보드의 격자를 선택하면 표식을 두고 다시 클릭하거나 '선택'버튼을 누르면 배치된다. * 4. 타이머가 0이 되었을 경우 랜덤(임시)으로 배치한다. * 5. 현재 차례의 캐릭터가 배치되었으면 상대방에게 차례를 넘긴다. */ void Awake() { _instance = this; }
private void playerCanvas_Click(object sender, EventArgs e) { MouseEventArgs m = (MouseEventArgs)e; shipPlacement ship; switch (mode) { case PlaceMode.HCarrier: case PlaceMode.VCarrier: ship = new shipPlacement() { x = (m.X / 32) * 32, y = (m.Y / 32) * 32, placement = mode }; if (client.PlaceShip(uid, ship)) { placements.Add(ship); carrierBtn.Visible = false; } mode = PlaceMode.None; break; case PlaceMode.HBattleship: case PlaceMode.VBattleship: ship = new shipPlacement() { x = (m.X / 32) * 32, y = (m.Y / 32) * 32, placement = mode }; if (client.PlaceShip(uid, ship)) { placements.Add(ship); battleShipBtn.Visible = false; } mode = PlaceMode.None; break; case PlaceMode.HSubmarine: case PlaceMode.VSubmarine: ship = new shipPlacement() { x = (m.X / 32) * 32, y = (m.Y / 32) * 32, placement = mode }; if (client.PlaceShip(uid, ship)) { placements.Add(ship); submarineBtn.Visible = false; } mode = PlaceMode.None; break; case PlaceMode.HDestroyer: case PlaceMode.VDestroyer: ship = new shipPlacement() { x = (m.X / 32) * 32, y = (m.Y / 32) * 32, placement = mode }; if (client.PlaceShip(uid, ship)) { placements.Add(ship); destroyerBtn.Visible = false; } mode = PlaceMode.None; break; case PlaceMode.HBoat: case PlaceMode.VBoat: ship = new shipPlacement() { x = (m.X / 32) * 32, y = (m.Y / 32) * 32, placement = mode }; if (client.PlaceShip(uid, ship)) { placements.Add(ship); boatBtn.Visible = false; } mode = PlaceMode.None; break; } Draw(); if (placements.Count >= 5) { shipPlacementGrp.Visible = false; startBtn.Enabled = true; } }
public shipPlacement(int x, int y, PlaceMode placement) { this.x = x; this.y = y; this.placement = placement; }