public static bool moveActor(Actor actor, int dX, int dY) { if (mover.actor != null) { Debug.Log("moving too fast"); return(false); } mover.actor = actor; // grid x and y mover.start = new Vector2i(actor.x, actor.y); mover.end = new Vector2i(dX, dY); // drawn x and y mover.position = getCenteredActorPosition(actor.gameObject, PerspectiveMap.renderPerspective(actor.x + 1, actor.y)); mover.destination = getCenteredActorPosition(actor.gameObject, PerspectiveMap.renderPerspective(dX + 1, dY)); mover.snapPositionTime = Time.time + 0.4f; mover.sortingOrder = Mathf.Max(getSortingOrder(mover.start.x, mover.start.y), getSortingOrder(mover.end.x, mover.end.y)); mover.actor.gameObject.GetComponent <SpriteRenderer>().sortingOrder = mover.sortingOrder; WorldGrid[actor.x, actor.y].moving = true; return(true); }
public void drawActorAtPosition(int i, int j) { var actor = WorldGrid[i, j].Actor; actor.transform.position = PerspectiveMap.renderPerspective(i + 1, j); actor.transform.position += actor.GetComponent <SpriteRenderer>().sprite.bounds.extents.y *Vector3.up; actor.transform.position -= actor.GetComponent <SpriteRenderer>().sprite.bounds.extents.x / 2 * Vector3.right; actor.GetComponent <SpriteRenderer>().sortingOrder = getSortingOrder(i, j); }
public void renderWorld() { var map = dg.map; for (int i = 0; i < ApplicationConstants.DUNGEON_WIDTH; i++) { for (int j = 0; j < ApplicationConstants.DUNGEON_HEIGHT; j++) { DungeonTile current_Tile = WorldGrid[i, j]; current_Tile.Tile = DungeonGenerator.tileFromId(map[i, j]); current_Tile.Tile.transform.position = PerspectiveMap.renderPerspective(i, j); current_Tile.Tile.GetComponent <SpriteRenderer>().sortingOrder = j * ApplicationConstants.DUNGEON_WIDTH - i - 1; WorldGrid[i, j] = current_Tile; } } }
public static Vector3 getDestination(int x, int y) { return(PerspectiveMap.renderPerspective(x, y)); }