package com.daasuu.FPSAnimator;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Paint;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import com.daasuu.FPSAnimator.util.UIUtil;
import com.daasuu.library.DisplayObject;
import com.daasuu.library.FPSTextureView;
import com.daasuu.library.drawer.SpriteSheetDrawer;
import com.daasuu.library.drawer.TextDrawer;
import com.daasuu.library.easing.Ease;
import com.daasuu.library.util.Util;
public class AnimationPauseSampleActivity extends AppCompatActivity {
private FPSTextureView mFPSTextureView;
private Button mTweenPauseBtn;
private Button mSpritePauseBtn;
private Button mParabolicPauseBtn;
private DisplayObject mTweenText;
private DisplayObject mTweenSpriteSheet;
private DisplayObject mParabolicMotionText;
private SpriteSheetDrawer mSpriteSheetDrawer;
public static void startActivity(Context context) {
Intent intent = new Intent(context, AnimationPauseSampleActivity.class);
context.startActivity(intent);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_animation_pause_sample);
setUpBtns();
mFPSTextureView = (FPSTextureView) findViewById(R.id.animation_texture_view);
Paint paint = new Paint();
paint.setColor(ContextCompat.getColor(this, R.color.colorAccent));
paint.setTextSize(Util.convertDpToPixel(16, this));
String tweenTxt = "TweenPause";
TextDrawer textDrawer = new TextDrawer(tweenTxt, paint)
.rotateRegistration(paint.measureText(tweenTxt) / 2, paint.getTextSize() / 2)
.scaleRegistration(paint.measureText(tweenTxt) / 2, paint.getTextSize() / 2);
mTweenText = new DisplayObject();
mTweenText.with(textDrawer)
.tween()
.tweenLoop(true)
.transform(0, 300, Util.convertAlphaFloatToInt(0.3f), 1f, 1f, 0)
.waitTime(300)
.to(1500, UIUtil.getWindowWidth(this) - paint.measureText(tweenTxt) * 1.5f, 300, Util.convertAlphaFloatToInt(1f), 2f, 2f, 720, Ease.LINEAR)
.waitTime(300)
.to(1500, 0, 300, Util.convertAlphaFloatToInt(0.3f), 1f, 1f, 0, Ease.LINEAR)
.end();
float frameWidth = Util.convertDpToPixel(82.875f, this);
float frameHeight = Util.convertDpToPixel(146.25f, this);
Bitmap baseSpriteBitmapB = BitmapFactory.decodeResource(getResources(), R.drawable.spritesheet_grant);
Bitmap spriteBitmapB = Bitmap.createScaledBitmap(
baseSpriteBitmapB,
(int) Util.convertDpToPixel(1024f, this),
(int) Util.convertDpToPixel(1024f, this),
false);
mSpriteSheetDrawer = new SpriteSheetDrawer(spriteBitmapB,
frameWidth,
frameHeight,
64,
12)
.spriteLoop(true);
mTweenSpriteSheet = new DisplayObject();
mTweenSpriteSheet.with(mSpriteSheetDrawer)
.tween()
.tweenLoop(true)
.transform(-Util.convertDpToPixel(82.875f, this), UIUtil.getWindowHeight(this) / 3)
.toX(3000, UIUtil.getWindowWidth(this))
.end();
Paint paint2 = new Paint();
paint2.setColor(ContextCompat.getColor(this, R.color.colorPrimary));
paint2.setTextSize(Util.convertDpToPixel(16, this));
mParabolicMotionText = new DisplayObject();
mParabolicMotionText.with(new TextDrawer("ParabolicMotion", paint2))
.parabolic()
.transform(UIUtil.getWindowWidth(this) / 2, UIUtil.getWindowHeight(this) / 2)
.initialVelocityY(-30)
.end();
mFPSTextureView
.addChild(mTweenText)
.addChild(mParabolicMotionText)
.addChild(mTweenSpriteSheet);
}
@Override
protected void onResume() {
super.onResume();
mFPSTextureView.tickStart();
}
@Override
protected void onStop() {
super.onStop();
mFPSTextureView.tickStop();
}
private void setUpBtns() {
mTweenPauseBtn = (Button) findViewById(R.id.tween_pause);
mSpritePauseBtn = (Button) findViewById(R.id.sprite_sheet_pause);
mParabolicPauseBtn = (Button) findViewById(R.id.parabolic_pause);
mTweenPauseBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mTweenText.isPause()) {
mTweenText.pause(false);
mTweenPauseBtn.setText("Tween Pause");
} else {
mTweenText.pause(true);
mTweenPauseBtn.setText("Tween Play");
}
}
});
mSpritePauseBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mSpriteSheetDrawer.isSpritePause()) {
mSpriteSheetDrawer.spritePause(false);
mSpritePauseBtn.setText("SpriteSheet Pause");
} else {
mSpriteSheetDrawer.spritePause(true);
mSpritePauseBtn.setText("SpriteSheet Play");
}
}
});
mParabolicPauseBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mParabolicMotionText.isPause()) {
mParabolicMotionText.pause(false);
mParabolicPauseBtn.setText("ParabolicMotion Pause");
} else {
mParabolicMotionText.pause(true);
mParabolicPauseBtn.setText("ParabolicMotion Play");
}
}
});
}
}