public override void Update(float deltaSeconds) { base.Update(deltaSeconds); Vector2 deltaToOwliver = Global.Game.Owliver.GetWorldSpatialData().Position - this.GetWorldSpatialData().Position; if (deltaToOwliver.X < 0) { Animation.ChangeActiveAnimation(SpriteAnimationType.Tankton_Idle_Left); } else if (deltaToOwliver.X > 0) { Animation.ChangeActiveAnimation(SpriteAnimationType.Tankton_Idle_Right); } }
private void OnCollisionWithTrigger(Fixture myFixture, Fixture theirFixture, Contact contact) { Debug.Assert(myFixture.Body == Trigger.Body); GameObject go = ((BodyComponent)theirFixture.UserData).Owner; foreach (KeyRingComponent keyRing in go.GetComponents <KeyRingComponent>()) { if (keyRing[KeyTypeToUnlock] > 0) { keyRing[KeyTypeToUnlock]--; Trigger.Body.OnCollision -= OnCollisionWithTrigger; Global.Game.World.RemoveBody(Trigger.Body); Trigger.Body = null; if (Animation != null) { Animation.ChangeActiveAnimation(SpriteAnimationType.Gate_Open); } Body blockingBody = InnerBodyComponent.Body; if (blockingBody != null) { Global.Game.World.RemoveBody(blockingBody); InnerBodyComponent.Body = null; } break; } } }
public override void Update(float deltaSeconds) { base.Update(deltaSeconds); if (Chaser != null && Chaser.IsHoming) { // Change the facing direction to the target. Vector2 myPosition = Owner.GetWorldSpatialData().Position; Vector2 targetPosition = Chaser.Target.GetWorldSpatialData().Position; if (targetPosition.X < myPosition.X) { Animation.ChangeActiveAnimation(AnimationType_Idle_Left); } else if (targetPosition.X > myPosition.X) { Animation.ChangeActiveAnimation(AnimationType_Idle_Right); } } }
public override void Update(float deltaSeconds) { base.Update(deltaSeconds); // TODO(manu): This could be its own component (it's a recurring thing). if (Homing.IsHoming) { // Change the facing direction to the target. Vector2 myPosition = this.GetWorldSpatialData().Position; Vector2 targetPosition = Homing.TargetSensor.CurrentMainTarget.Position; if (targetPosition.X < myPosition.X) { Animation.ChangeActiveAnimation(SpriteAnimationType.Slurp_Idle_Left); } else if (targetPosition.X > myPosition.X) { Animation.ChangeActiveAnimation(SpriteAnimationType.Slurp_Idle_Right); } } }
public void ChangeState(ref OwliverState newState) { OwliverState oldState = CurrentState; CurrentState = newState; OnStateChanged?.Invoke(oldState, newState); bool transferAnimationState = oldState.MovementMode == newState.MovementMode && oldState.FacingDirection != newState.FacingDirection; SpriteAnimationType animType = GetAnimationType(ref newState); if (Animation.ChangeActiveAnimation(animType)) { Console.WriteLine(); } }