public Camera() { m_location = new LocationComponent(this); m_target = new FollowTargetComponent(this, m_location); m_restrictPosition = new RestrictLocationComponent(this, m_location); m_zoom = 1.0; }
void updateCamera(Entity e) { RegularCameraComponent regularCamera = e.regularCamera; CameraComponent camera = e.camera; FollowTargetComponent target = e.followTarget; Vector2 targetPosition = target.target.position.pos; camera.camera.transform.position = new Vector3(targetPosition.x + regularCamera.offset.x, targetPosition.y + regularCamera.offset.y, regularCamera.offset.z); }
void setMissileVelocity(Entity e, HomeMissileComponent homeMissile, FollowTargetComponent targetComponent) { Entity targetEntity = targetComponent.target; Vector2 position = e.position.pos; Vector2 targetPosition = targetEntity.position.pos; VelocityComponent velocity = e.velocity; tempVector.Set((targetPosition.x - position.x), (targetPosition.y - position.y)); tempVector.Normalize(); tempVector *= homeMissile.speed; tempVector -= velocity.vel; tempVector *= Kp; velocity.vel += tempVector; }
void updateCamera(Entity e) { SmoothCameraComponent smoothCamera = e.smoothCamera; CameraComponent camera = e.camera; FollowTargetComponent target = e.followTarget; Vector2 targetPosition = target.target.position.pos; Vector3 cameraPosition = camera.camera.transform.position; temp.x = cameraPosition.x + (targetPosition.x - cameraPosition.x) * LERP_FACTOR; Vector2 position = e.position.pos; snapCamera(e, position); e.position.pos.Set(position); camera.camera.transform.position = new Vector3(temp.x, position.y, smoothCamera.offset.z); }
void navigateMissile(Entity e, float deltaTime) { //HomeMissileComponent homeMissile = e.homeMissile; FollowTargetComponent targetComponent = e.followTarget; if (targetComponent.target != null && targetComponent.target.hasGameObject) { GameObject target = targetComponent.target.gameObject.gameObject; Vector2 position = e.position.pos; Vector3 targetPosition = target.transform.position; VelocityComponent velocity = e.velocity; float velocityX = (targetPosition.x - position.x) * 15.0f; float velocityY = (targetPosition.y - position.y) * 15.0f; velocity.vel.Set(Mathf.Lerp(velocity.vel.x, velocityX, deltaTime), Mathf.Lerp(velocity.vel.y, velocityY, deltaTime)); } }
bool hasFoundTarget(FollowTargetComponent targetComponent) { return targetComponent.target != null && targetComponent.target.hasPosition; }