You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
2.5 KiB
119 lines
2.5 KiB
package com.trs.main;
|
|
|
|
import com.badlogic.gdx.graphics.Texture;
|
|
import com.badlogic.gdx.graphics.g2d.Batch;
|
|
import com.badlogic.gdx.graphics.g2d.Sprite;
|
|
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
|
|
|
/**
|
|
*
|
|
* @author jonathan
|
|
*/
|
|
|
|
public class AnimatedSprite {
|
|
private int[] rowlengths = {7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 6, 6, 6, 12, 12, 12, 12, 6};
|
|
|
|
private Sprite sprite;
|
|
private TextureRegion[][] texture;
|
|
private int frame;
|
|
private int row;
|
|
private float delta;
|
|
|
|
public AnimatedSprite(Texture tx, int tileWidth, int tileHeight, boolean isPlayer){
|
|
texture = TextureRegion.split(tx, tileWidth, tileHeight);
|
|
sprite = new Sprite();
|
|
|
|
row = (int) (Math.random()*texture.length);
|
|
frame = (int) (Math.random()*texture[row].length);
|
|
|
|
if(!isPlayer) {
|
|
rowlengths = new int[tx.getHeight() / tileHeight];
|
|
for(int i = 0; i < rowlengths.length; i++) {
|
|
rowlengths[i] = texture[i].length;
|
|
}
|
|
}
|
|
|
|
sprite = new Sprite(texture[getRow()][getFrame()]);
|
|
}
|
|
|
|
public void updateAnimation(float delta){
|
|
this.delta += delta;
|
|
|
|
if(this.delta >= 0.1f) {
|
|
this.delta = 0;
|
|
if(getFrame() >= rowlengths[getRow()] - 1){
|
|
setFrame(0);
|
|
}
|
|
else{
|
|
setFrame(getFrame() + 1);
|
|
}
|
|
|
|
sprite.setRegion(texture[getRow()][getFrame()]);
|
|
}
|
|
}
|
|
|
|
public void draw(Batch batch) {
|
|
sprite.draw(batch);
|
|
}
|
|
|
|
/**
|
|
* @return the sprite
|
|
*/
|
|
public Sprite getSprite() {
|
|
return sprite;
|
|
}
|
|
|
|
/**
|
|
* @param sprite the sprite to set
|
|
*/
|
|
public void setSprite(Sprite sprite) {
|
|
this.sprite = sprite;
|
|
}
|
|
|
|
public void setSpritePosition(int xPos, int yPos){
|
|
sprite.setPosition(xPos, yPos);
|
|
}
|
|
|
|
/**
|
|
* @return the texture
|
|
*/
|
|
public TextureRegion[][] getTexture() {
|
|
return texture;
|
|
}
|
|
|
|
/**
|
|
* @param texture the texture to set
|
|
*/
|
|
public void setTexture(TextureRegion[][] texture) {
|
|
this.texture = texture;
|
|
}
|
|
|
|
/**
|
|
* @return the frame
|
|
*/
|
|
public int getFrame() {
|
|
return frame;
|
|
}
|
|
|
|
/**
|
|
* @param frame the frame to set
|
|
*/
|
|
public void setFrame(int frame) {
|
|
this.frame = frame;
|
|
}
|
|
|
|
/**
|
|
* @return the row
|
|
*/
|
|
public int getRow() {
|
|
return row;
|
|
}
|
|
|
|
/**
|
|
* @param row the row to set
|
|
*/
|
|
public void setRow(int row) {
|
|
this.row = row;
|
|
}
|
|
}
|