Animaçao de tiles

Galera to tentando animar esses tiros do jogo abençoado de deus em nome de jesus amem,
mas mas não consegui podem de da uma mão, e se poder um pé tb ja q sou meio lezo nisso kkk
====clase dos tiros

public class Tiros extends Entity {

	private int direçaoX;
	private int direçaoY;
	private double speedT=4;
	
	public boolean right_Tiros, up_Tiros, left_Tiros,down_Tiros;
	public int right_dir_Tiros=0, up_dir_Tiros=1, left_dir_Tiros=3,down_dir_Tiros=4;
	public int dir_Tiros = down_dir_Tiros;
	private int frames_Tiros =0, maxFrame_Tiros=7, index_Tiros =1,maxIndex_Tiros=2;
	public boolean muved_Tiros = false;
	private int mascaraXTiros=16 ,mascaraYTiros=16,mascaraWTiros=30, mascaraHTiros=30;
	
	private BufferedImage[] right_imTiros;
	private BufferedImage[] left_imTiros;
	private BufferedImage[] up_imTiros;
	private BufferedImage[] down_imTiros;
	
	public Tiros(int x, int y, int width, int height, BufferedImage sprite, int dx, int dy) {
		super(x, y, width, height, null);
		
		this.direçaoX =dx;
		this.direçaoY =dy;
		
		this.right_imTiros = new BufferedImage[3];
		this.left_imTiros = new BufferedImage[3];
		this.up_imTiros = new BufferedImage[3];
		this.down_imTiros= new BufferedImage[3];
		
		for(int i=0; i<3;i++) {
			this.right_imTiros [i]=Game.spriteSheet.getSprite(64*3+(i*64), 64*6, 64, 64);
			this.left_imTiros [i]=Game.spriteSheet.getSprite(64*3+(i*64), 64*5, 64, 64);
			this.up_imTiros [i]=Game.spriteSheet.getSprite(64*3+(i*64), 64*7, 64, 64);
			this.down_imTiros [i]=Game.spriteSheet.getSprite(64*3+(i*64), 64*4, 64, 64);
		}
	
	}
	
	public void tick(){
		x+=this.direçaoX*speedT;
		y+=this.direçaoY*speedT;
		
		
		if (Game.player.atirando==true && muved_Tiros==true) {
			
			frames_Tiros++;
			if(frames_Tiros == maxFrame_Tiros) {
				frames_Tiros=0;
				index_Tiros ++;
				if(index_Tiros >maxIndex_Tiros) {
					index_Tiros=0;
				}
			}
		}
		
	}
	
	public void render(Graphics g) {

		if(dir_Tiros ==right_dir_Tiros) {
			g.drawImage(right_imTiros[index_Tiros], this.getX()-Camera.x, this.getY()-Camera.y,null);	
		}
		else if(dir_Tiros ==left_dir_Tiros) {
			g.drawImage(left_imTiros[index_Tiros], this.getX()-Camera.x, this.getY()-Camera.y,null);
		}
		else if(dir_Tiros ==up_dir_Tiros) {
			g.drawImage(up_imTiros[index_Tiros], this.getX()-Camera.x, this.getY()-Camera.y,null);
		}
		else if(dir_Tiros ==down_dir_Tiros) {
			g.drawImage(down_imTiros[index_Tiros], this.getX()-Camera.x, this.getY()-Camera.y,null);
		}
		
	//	g.setColor(Color.BLACK);
	//	g.fillOval(this.getX()-Camera.x, this.getY()-Camera.y, width, height);
	}
}

===== Tick da clase Player

if(atirando && temArma && muniçao>0) {
			atirando = false;
			int dx =0;
			int dy =0;
			if(dir==this.right_dir) {
				dx =1;
				Tiros tiros = new Tiros(this.getX()+70, this.getY()+45,10,10,null,dx,dy);
				tiros.muved_Tiros = true; 
				tiros.dir_Tiros=tiros.right_dir_Tiros;
				Game.tiros.add(tiros);
				muniçao-=1;
			}
			else	if(dir==this.left_dir) {
				dx =-1;
				Tiros tiros = new Tiros(this.getX()-15, this.getY()+45,10,10,null,dx,dy);
				tiros.muved_Tiros = true; 
				tiros.dir_Tiros=tiros.left_dir_Tiros;
				Game.tiros.add(tiros);
				muniçao-=1;
			}
			else	if(dir==this.up_dir) {
				dy =-1;
				Tiros tiros = new Tiros(this.getX()+45, this.getY()+10,10,10,null,dx,dy);
				tiros.muved_Tiros = true; 
				tiros.dir_Tiros=tiros.up_dir_Tiros;
				Game.tiros.add(tiros);
				muniçao-=1;
			}
			else	if(dir==this.down_dir) {
				dy =1;
				Tiros tiros = new Tiros(this.getX()+10, this.getY()+40,10,10,null,dx,dy);
				tiros.muved_Tiros = true; 
				tiros.dir_Tiros=tiros.down_dir_Tiros;
				Game.tiros.add(tiros);
				muniçao-=1;
			}