/*
* Copyright (C) 2016 Google Inc. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.google.android.apps.santatracker.doodles.pursuit;
import android.content.res.Resources;
import android.graphics.Canvas;
import com.google.android.apps.santatracker.doodles.shared.Actor;
import com.google.android.apps.santatracker.doodles.shared.AnimatedSprite;
import com.google.android.apps.santatracker.doodles.shared.AnimatedSprite.AnimatedSpriteListener;
import com.google.android.apps.santatracker.doodles.shared.Sprites;
/**
* A power up that speeds up the player.
*/
public class PowerUpActor extends Actor {
private static final int Z_INDEX = 0;
public static final float RADIUS_WORLD = 25f;
private boolean isPickedUp;
private AnimatedSprite sprite;
public PowerUpActor(float x, float y, Resources resources) {
zIndex = Z_INDEX;
position.x = x;
position.y = y;
isPickedUp = false;
sprite = AnimatedSprite.fromFrames(resources, Sprites.running_powerup);
sprite.setFPS(18);
sprite.setAnchor(sprite.frameWidth / 2, sprite.frameHeight / 2);
sprite.setLoop(false);
sprite.addListener(new AnimatedSpriteListener() {
@Override
public void onFinished() {
super.onFinished();
hidden = true;
}
});
}
@Override
public void update(float deltaMs) {
super.update(deltaMs);
if (isPickedUp) {
sprite.update(deltaMs);
}
}
public void pickUp() {
isPickedUp = true;
}
public boolean isPickedUp() {
return isPickedUp;
}
@Override
public void draw(Canvas canvas) {
super.draw(canvas);
if (hidden) {
return;
}
float framesPercent = ((float) sprite.getFrameIndex()) / sprite.getNumFrames();
sprite.setPosition(position.x, position.y + (3f * framesPercent * scale * sprite.frameHeight));
sprite.setScale(scale, scale);
sprite.draw(canvas);
}
}