IEnumerator MoveAnim(float wait, MapKind player, Vector2 vec2) { float time = 0; int x = -1, y = -1; for (int i = 0; i <= 6; i++) { for (int j = 0; j <= 6; j++) { if (map.mapInt[j, i] == (int)player) { x = i; y = j; } } } map.mapInt[y, x] = 0; map.mapInt[y - (int)vec2.y, x + (int)vec2.x] = (int)player; while (wait >= time) { time += Time.deltaTime; gameObject.transform.position = Vector3.Lerp(map.SpritePos[y][x], map.SpritePos[y - (int)vec2.y][x + (int)vec2.x], time / wait); //gameObject.transform.position += new Vector3((map.SpritePos[y - (int)vec2.y][x + (int)vec2.x].x - map.SpritePos[y][x].x) / time, (map.SpritePos[y - (int)vec2.y][x + (int)vec2.x].y - map.SpritePos[y][x].y) / time); yield return(new WaitForSeconds(Time.deltaTime)); } transform.position = new Vector3(map.SpritePos[y - (int)vec2.y][x + (int)vec2.x].x, map.SpritePos[y - (int)vec2.y][x + (int)vec2.x].y); isMove = false; map.mapInt[y - (int)vec2.y, x + (int)vec2.x] = (int)player; map.updateMap = true; yield return(new WaitForSeconds(0.1f)); map.updateMap = false; }
public void choice() { //デバック用 if (Player1) { button.interactable = false; Debug.Log("1を選択した"); playerID = MapKind.Player1; if (button.interactable == false && button2.interactable == false) { GameManager.instance.StateChange(); SceneManager.LoadScene("MainGame"); Debug.Log("GameSceneを呼んでるよ"); } } else if (Player2) { button2.interactable = false; Debug.Log("2を選択した"); playerID = MapKind.Player2; if (button.interactable == false && button2.interactable == false) { GameManager.instance.StateChange(); SceneManager.LoadScene("MainGame"); Debug.Log("GameSceneを呼んでるよ"); } } else if (Application.isEditor) { //タブレット用 if (button && Input.touchCount > 0) { if (Input.GetTouch(0).phase == TouchPhase.Began) { Debug.Log("1をタップした"); button.interactable = false; playerID = MapKind.Player1; if (button.interactable == false && button2.interactable == false) { Debug.Log("Sceneを呼んでるよ"); } } } else if (button2 && Input.touchCount > 0) { if (Input.GetTouch(0).phase == TouchPhase.Began) { Debug.Log("2をタップした"); button.interactable = false; playerID = MapKind.Player1; if (button.interactable == false && button2.interactable == false) { Debug.Log("Sceneを呼んでるよ"); } } } } }
public Map(MapKind kind, MapArchitecture architecture, List <MapEntry> managedToJava, List <MapEntry> javaToManaged, string formatVersion) { Kind = kind; Architecture = architecture; ManagedToJava = managedToJava; JavaToManaged = javaToManaged; FormatVersion = formatVersion; }
private void StartMapDecl(MapKind kind) { Contract.Requires(currentModule != null && currentModule.IsDomOrTrans); Contract.Requires(crntTypeDecl == null); crntTypeDecl = new MapDecl(crntTypeDeclSpan, crntTypeDeclName, kind, true); if (crntSentConf != null) { ((MapDecl)crntTypeDecl).SetConfig(crntSentConf); crntSentConf = null; } }
public void Move(MapKind player, Vector2 vec2) { int max = 6, min = 0; float speed = 0.5f;; for (int i = 0; i <= 6; i++) { for (int j = 0; j <= 6; j++) { if (map.mapInt[j, i] == (int)player) { bool isWarp = false; if (!((i + (int)vec2.x <= max && i + (int)vec2.x >= min) && (j - (int)vec2.y <= max && j - (int)vec2.y >= min)) && !isWarp) { //マップの端 isMove = false; PlayerDoNotMove(); return; } if (map.mapInt[j - (int)vec2.y, i + (int)vec2.x] >= (int)MapKind.Movewall0 && map.mapInt[j - (int)vec2.y, i + (int)vec2.x] <= (int)MapKind.Movewall9) { // 壁を押す if (!map.MoveWalls[map.mapInt[j - (int)vec2.y, i + (int)vec2.x] - (int)MapKind.Movewall0].GetComponent <MoveWall>().MoveCheck(vec2, map.SpritePos)) { isMove = false; return; } speed = 1f; } if (map.mapInt[j - (int)vec2.y, i + (int)vec2.x] == (int)MapKind.Wall || (map.mapInt[j - (int)vec2.y, i + (int)vec2.x] >= (int)MapKind.BreakWall1 && map.mapInt[j - (int)vec2.y, i + (int)vec2.x] <= (int)MapKind.BreakWall6)) { //動けない壁がある isMove = false; PlayerDoNotMove(); return; } if (map.mapInt[j - (int)vec2.y, i + (int)vec2.x] == (int)MapKind.Player1 || map.mapInt[j - (int)vec2.y, i + (int)vec2.x] == (int)MapKind.Player2) { //他プレイヤーがいるところに移動しないように isMove = false; PlayerDoNotMove(); return; } } } } isMove = true; // 移動 StartCoroutine(MoveAnim(speed, player, vec2)); }
internal MapDecl(Span span, string name, MapKind mapKind, bool isPartial) : base(span) { Contract.Requires(name != null); MapKind = mapKind; IsPartial = isPartial; Name = name; dom = new LinkedList <Field>(); Dom = new ImmutableCollection <Field>(dom); cod = new LinkedList <Field>(); Cod = new ImmutableCollection <Field>(cod); }
/// <summary> /// ボム範囲を出すスクリプト /// </summary> /// <param name="player"></param> /// <param name="Aria"></param> /// <param name="BombPos"></param> /// <returns></returns> public IEnumerator AriaSet(MapKind player, MapKind Aria, Vector2 BombPos) { while (gameObject.activeSelf && PI.Isbomb) { int x = 0, y = 0; switch (Player.GetComponent <Player>().rot) { case 0: //上 y = -1; break; case 1: //下 y = 1; break; case 2: //右 x = 1; break; case 3: //左 x = -1; break; } for (int i = 0; i <= 6; i++) { for (int j = 0; j <= 6; j++) { if (Map.instance.mapInt[j, i] == (int)player) { if (i + x > 6 || i + x < 0 || Map.instance.mapInt[j, i + x] != (int)MapKind.YUKA) { if ((i + x > 6 && j == Map.instance.HWarpPoint[0].y) && Map.instance.mapInt[(int)Map.instance.HWarpPoint[0].y, (int)Map.instance.HWarpPoint[0].x] == (int)MapKind.YUKA) { x = (int)Map.instance.HWarpPoint[0].x; gameObject.transform.position = new Vector3(Map.instance.SpritePos[j][x].x, Map.instance.SpritePos[j][x].y, 1); Map.instance.BombPos1 = new Vector2((int)Map.instance.HWarpPoint[0].x, (int)Map.instance.HWarpPoint[0].y); BomPos = new Vector2((int)Map.instance.HWarpPoint[0].x, (int)Map.instance.HWarpPoint[0].y); continue; } else if ((i + x < 0 && j == Map.instance.HWarpPoint[1].y) && Map.instance.mapInt[(int)Map.instance.HWarpPoint[1].y, (int)Map.instance.HWarpPoint[1].x] == (int)MapKind.YUKA) { x = (int)Map.instance.HWarpPoint[1].x; gameObject.transform.position = new Vector3(Map.instance.SpritePos[j][x].x, Map.instance.SpritePos[j][x].y, 1); Map.instance.BombPos1 = new Vector2((int)Map.instance.HWarpPoint[1].x, (int)Map.instance.HWarpPoint[1].y); BomPos = new Vector2((int)Map.instance.HWarpPoint[1].x, (int)Map.instance.HWarpPoint[1].y); continue; } else { x = 0; } } if (j + y > 6 || j + y < 0 || Map.instance.mapInt[j + y, i] != (int)MapKind.YUKA) { if ((j + y > 6 && i == Map.instance.WarpPoint[0].x) && Map.instance.mapInt[(int)Map.instance.WarpPoint[0].y, (int)Map.instance.WarpPoint[0].x] == (int)MapKind.YUKA) { y = (int)Map.instance.WarpPoint[0].y; gameObject.transform.position = new Vector3(Map.instance.SpritePos[y][i].x, Map.instance.SpritePos[y][i].y, 1); Map.instance.BombPos1 = new Vector2((int)Map.instance.WarpPoint[0].x, (int)Map.instance.WarpPoint[0].y); continue; } else if ((j + y < 0 && i == Map.instance.WarpPoint[1].x) && Map.instance.mapInt[(int)Map.instance.WarpPoint[1].y, (int)Map.instance.WarpPoint[1].x] == (int)MapKind.YUKA) { y = (int)Map.instance.WarpPoint[1].y; gameObject.transform.position = new Vector3(Map.instance.SpritePos[y][i].x, Map.instance.SpritePos[y][i].y, 1); Map.instance.BombPos1 = new Vector2((int)Map.instance.WarpPoint[1].x, (int)Map.instance.WarpPoint[1].y); continue; } else { y = 0; } } gameObject.transform.position = new Vector3(Map.instance.SpritePos[j + y][i + x].x, Map.instance.SpritePos[j + y][i + x].y, 1); Map.instance.BombPos1 = new Vector2(i + x, j + y); } } } yield return(new WaitForSeconds(Time.deltaTime)); } }
public static string GetOutputFileBaseName(string outputDirectory, string formatVersion, MapKind kind, MapArchitecture architecture) { string ret = $"typemap-v{formatVersion}-{kind}-{architecture}"; if (outputDirectory.Length == 0) { return(ret); } return(Path.Combine(outputDirectory, ret)); }
public void PullMove(MapKind player, Vector2 vec2, int wall) { int max = 6, min = 0; float speed = 0.5f; for (int i = 0; i <= 6; i++) { for (int j = 0; j <= 6; j++) { if (map.mapInt[j, i] == (int)player) { bool isWarp = false; // Debug if (!((i + (int)vec2.x <= max && i + (int)vec2.x >= min) && (j - (int)vec2.y <= max && j - (int)vec2.y >= min)) && !isWarp) { // 範囲外 isMove = false; PlayerDoNotMove(); return; } if ((wall != map.mapInt[j - (int)vec2.y, i + (int)vec2.x]) && map.mapInt[j - (int)vec2.y, i + (int)vec2.x] >= (int)MapKind.Movewall0 && map.mapInt[j - (int)vec2.y, i + (int)vec2.x] <= (int)MapKind.Movewall9) { // 移動壁を押す if (!map.MoveWalls[map.mapInt[j - (int)vec2.y, i + (int)vec2.x] - (int)MapKind.Movewall0].GetComponent <MoveWall>().MoveCheck(vec2, map.SpritePos)) { isMove = false; return; } speed = 1f; isMove = true; StartCoroutine(MoveAnim(speed, player, vec2)); return; } if (map.mapInt[j - (int)vec2.y, i + (int)vec2.x] == (int)MapKind.Wall || (map.mapInt[j - (int)vec2.y, i + (int)vec2.x] >= (int)MapKind.BreakWall1 && map.mapInt[j - (int)vec2.y, i + (int)vec2.x] <= (int)MapKind.BreakWall6)) { // 移動できない壁 isMove = false; PlayerDoNotMove(); return; } if (map.mapInt[j - (int)vec2.y, i + (int)vec2.x] == (int)MapKind.Player1 || map.mapInt[j - (int)vec2.y, i + (int)vec2.x] == (int)MapKind.Player2) { // 他プレイヤーがいる isMove = false; PlayerDoNotMove(); return; } if (PullWallCheck(vec2, wall)) { // 引き動作 isMove = true; speed = 1f; StartCoroutine(MoveAnim(speed, player, vec2)); map.MoveWalls[wall - (int)MapKind.Movewall0].GetComponent <MoveWall>().PullWall(vec2); return; } else { isMove = false; return; } } } } }