Como animo os tiles

Galera o que ta errado no meu codigo como faço para animar os tiles do tiro do meu game…
========== ==============

package Pack.Entities;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;

import Pack.World.Camera;
import Pack.World.World;
import Pack.game.Game;

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

=========== classe player ======================

public void tick() {
		muved = false;
		// se precisonasr right
		if (right && World.caminhoLivre((int) (x + speed), this.getY())) {
			muved = true;
			dir = right_dir;
			x += speed;
			// System.out.println("valor"+x);
		} else if (left && World.caminhoLivre((int) (x - speed), this.getY())) {
			muved = true;
			dir = left_dir;
			x -= speed;
		} else if (up && World.caminhoLivre(this.getX(), (int) (y - speed))) {
			muved = true;
			dir = up_dir;
			y -= speed;
		} else if (down && World.caminhoLivre(this.getX(), (int) (y + speed))) {
			muved = true;
			dir = down_dir;
			y += speed;
		}
		//
		if (muved) {
			frames++;
			if (frames == maxFrame) {
				frames = 0;
				index++;
				if (index > maxIndex) {
					index = 0;
				}
			}
		}
		checarColisao_PVida();
		checarColisao_Arma();
		checarColisao_Muniçao();
		//playColideComParede();

		if (tomandoDano) {
			danoFrames++;
			if (danoFrames == 8) {
				danoFrames = 0;
				tomandoDano = false;
			}
		}
// 
		if(atirando && temArma && municao>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()+5,10,10,null,dx,dy);
				tiros.muved_Tiros = true; 
				tiros.dir_Tiros=tiros.right_dir_Tiros;
				Game.tiros.add(tiros);
				municao-=1;
			}
			else	if(dir==this.left_dir) {
				dx =-1;
				Tiros tiros = new Tiros(this.getX()-70, this.getY()+5,10,10,null,dx,dy);
				tiros.muved_Tiros = true; 
				tiros.dir_Tiros=tiros.left_dir_Tiros;
				Game.tiros.add(tiros);
				municao-=1;
			}
			else	if(dir==this.up_dir) {
				dy =-1;
				Tiros tiros = new Tiros(this.getX()+15, this.getY()-30,10,10,null,dx,dy);
				tiros.muved_Tiros = true; 
				tiros.dir_Tiros=tiros.up_dir_Tiros;
				Game.tiros.add(tiros);
				municao-=1;
			}
			else	if(dir==this.down_dir) {
				dy =1;
				Tiros tiros = new Tiros(this.getX()-15, this.getY()+45,10,10,null,dx,dy);
				tiros.muved_Tiros = true; 
				tiros.dir_Tiros=tiros.down_dir_Tiros;
				Game.tiros.add(tiros);
				municao-=1;
			}
		}