1
Support / Re: Two Questions (Camera / Tilebased Movement)
« on: February 06, 2013, 02:51:54 am »
Excellent, thanks! And yes you're probably right about the caching.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
tk2dCamera.inst.mainCamera.transform.position = new Vector3(this.transform.position.x - tk2dCamera.inst.nativeResolutionWidth / 2,
this.transform.position.y - tk2dCamera.inst.nativeResolutionHeight / 2, tk2dCamera.inst.transform.position.z);
if (tk2dCamera.inst.transform.position.x < 0)
tk2dCamera.inst.transform.position = new Vector3(0, tk2dCamera.inst.transform.position.y, tk2dCamera.inst.transform.position.z);
if (tk2dCamera.inst.transform.position.y < 0)
tk2dCamera.inst.transform.position = new Vector3(tk2dCamera.inst.transform.position.x, 0, tk2dCamera.inst.transform.position.z);
if (tk2dCamera.inst.transform.position.x > map.data.tileSize.x * map.width - tk2dCamera.inst.nativeResolutionWidth)
tk2dCamera.inst.transform.position = new Vector3(map.data.tileSize.x * map.width - tk2dCamera.inst.nativeResolutionWidth, tk2dCamera.inst.transform.position.y, tk2dCamera.inst.transform.position.z);
if (tk2dCamera.inst.transform.position.y > map.data.tileSize.y * map.height - tk2dCamera.inst.nativeResolutionHeight)
tk2dCamera.inst.transform.position = new Vector3(tk2dCamera.inst.transform.position.x, map.data.tileSize.y * map.height - tk2dCamera.inst.nativeResolutionHeight, tk2dCamera.inst.transform.position.z);
void pCamera()
{
tk2dCamera.inst.mainCamera.transform.position = new Vector3(this.transform.position.x - tk2dCamera.inst.nativeResolutionWidth / 2,
this.transform.position.y - tk2dCamera.inst.nativeResolutionHeight / 2, tk2dCamera.inst.transform.position.z);
if (tk2dCamera.inst.transform.position.x < 0)
tk2dCamera.inst.transform.position = new Vector3(map.width - map.partitionSizeX * map.width, tk2dCamera.inst.transform.position.y, tk2dCamera.inst.transform.position.z);
if (tk2dCamera.inst.transform.position.y < 0)
tk2dCamera.inst.transform.position = new Vector3(tk2dCamera.inst.transform.position.x, map.height - map.partitionSizeY * map.height, tk2dCamera.inst.transform.position.z);
if (tk2dCamera.inst.transform.position.x > map.partitionSizeX * map.width - tk2dCamera.inst.nativeResolutionWidth)
tk2dCamera.inst.transform.position = new Vector3(map.partitionSizeX * map.width - tk2dCamera.inst.nativeResolutionWidth, tk2dCamera.inst.transform.position.y, tk2dCamera.inst.transform.position.z);
if (tk2dCamera.inst.transform.position.y > map.partitionSizeY * map.height - tk2dCamera.inst.nativeResolutionHeight)
tk2dCamera.inst.transform.position = new Vector3(tk2dCamera.inst.transform.position.x, map.partitionSizeY * map.height - tk2dCamera.inst.nativeResolutionHeight, tk2dCamera.inst.transform.position.z);
}
// UP
if (Input.GetKey(KeyCode.UpArrow))
{
direction = 0;
walk = true;
// this.transform.position = new Vector3(this.transform.position.x, this.transform.position.y + 1, this.transform.position.z);
if (map.GetTileAtPosition(currTile, out mapX, out mapY))
{
destTile = new Vector3(currTile.x, map.GetTilePosition(mapX, mapY + 1).y + (map.partitionSizeY / 2), currTile.z);
HOTween.To(this.transform, 1, "position", destTile);
}
}
tk2dCamera.inst.mainCamera.transform.position = new Vector3(this.transform.position.x , this.transform.position.y, tk2dCamera.inst.transform.position.z);
// Player Movement
void move() {
// UP
if (Input.GetKey(KeyCode.W))
{
direction = 0;
this.transform.position = new Vector3(this.transform.position.x, this.transform.position.y + 1, 0);
}
// LEFT
if (Input.GetKey(KeyCode.A))
{
direction = 1;
this.transform.position = new Vector3(this.transform.position.x - 1, this.transform.position.y, 0);
}
// DOWN
if (Input.GetKey(KeyCode.S))
{
direction = 2;
this.transform.position = new Vector3(this.transform.position.x, this.transform.position.y - 1, 0);
}
// RIGHT
if (Input.GetKey(KeyCode.D))
{
direction = 3;
this.transform.position = new Vector3(this.transform.position.x + 1, this.transform.position.y, 0);
}
// IDLE
if (Input.GetKeyUp(KeyCode.W) || Input.GetKeyUp(KeyCode.A) ||
Input.GetKeyUp(KeyCode.S) || Input.GetKeyUp(KeyCode.D))
{
pSprite.Play("idle");
pSprite.animationCompleteDelegate = null;
walk = false;
}
// WALKING ANIMATIONS
if (Input.GetKeyDown(KeyCode.W))
{
pSprite.Play("walk_up");
pSprite.animationCompleteDelegate = null;
walk = true;
}
if (Input.GetKeyDown(KeyCode.A))
{
pSprite.Play("walk_left");
pSprite.animationCompleteDelegate = null;
walk = true;
}
if (Input.GetKeyDown(KeyCode.S))
{
pSprite.Play("walk_down");
pSprite.animationCompleteDelegate = null;
walk = true;
}
if (Input.GetKeyDown(KeyCode.D))
{
pSprite.Play("walk_right");
pSprite.animationCompleteDelegate = null;
walk = true;
}
}