ScrollingShooter.RightClaw.Update C# (CSharp) Method

Update() public method

Updates the Claw
public Update ( float elapsedTime ) : void
elapsedTime float The in-game time between the previous and current frame
return void
        public override void Update(float elapsedTime)
        {
            timer += elapsedTime;
            switch (phase)
            {
               case AlienClawPhase.Wait:
                    if (timer < 1)
                        drawBounds[(int)AlienClawParts.Claw].X = screenWidth + 120;
                    else
                    {
                        timer = 0;
                        phase = AlienClawPhase.Begin;
                    }
                    break;

                case AlienClawPhase.Begin:
                    if (timer >= .1)
                    {
                        timer = 0;
                        drawBounds[(int)AlienClawParts.Claw].X -= 5;
                        if (drawBounds[(int)AlienClawParts.Claw].X < screenWidth + 60)
                            phase = AlienClawPhase.Hover;

                    }
                    break;

                case AlienClawPhase.Hover:
                     if (timer >= 1)
                     {
                        timer = 0;
                        phase = AlienClawPhase.Attack;
                     }
                     break;

                case AlienClawPhase.Attack:
                    if(timer >= .1)
                    {
                        timer = 0;
                        drawBounds[(int)AlienClawParts.Claw].X -= 30;
                        if (drawBounds[(int)AlienClawParts.Claw].X < screenWidth - 25)
                            phase = AlienClawPhase.Extend;
                    }
                    break;

                case AlienClawPhase.Extend:
                    if (timer >= 1)
                    {
                        timer = 0;
                        phase = AlienClawPhase.Retract;
                    }
                    break;

                case AlienClawPhase.Retract:
                    if (timer >= .1)
                    {
                        timer = 0;
                        drawBounds[(int)AlienClawParts.Claw].X += 20;
                        if (drawBounds[(int)AlienClawParts.Claw].X >= screenWidth + 120)
                            phase = AlienClawPhase.Wait;
                    }
                    break;
            }

            drawBounds[(int)AlienClawParts.Shaft].X = drawBounds[(int)AlienClawParts.Claw].X + spriteBounds[(int)AlienClawParts.Claw].Width;
        }