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

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;
}
}