移動用のactionメソッドを実装したクラスを作る

Sprite継承クラスオのブジェクトは、SpriteThreadオブ1ジェクトに 追加すると、その描画スレットの間隔で、actionメソッドが呼び出されるように 作られています。
よって、Sprite継承クラスブジェクトを移動するには、 actionメソッドで、その座標をインスタンス変数 x, yを変更すれば 可能となります。
これを最も簡単に行うのは、SpriteBasicを継承したクラスで、 actionメソッドをオーバーライドし、ここで自身の座標を変更することです。

以下では、SpriteBasicを継承したSpriteFishAクラスを作成して、右から左に移動し、 左に隠れたら右から出現するactionメソッドを作り、 それを使用する例を示します。
actionメソッドを作成する場合は、内部でsuper.action();または、setDrawParameter を実行させないと、位置などが反映しないので注意が必要です。)
なお、コンストラクタで初期位置と、速度と、イメージを指定できるように作っています。 これに伴い、描画素材配置の方法が簡単になります。(比較ください)

package fishgame;
import java.awt.*;
import javax.imageio.*;
import javax.swing.*;
import sprite.SpriteBasic;//ライブラリ利用
import sprite.SpriteFrame;
import sprite.SpriteThread;

class SpriteFishA extends SpriteBasic {//右から左に移動するクラス
	double speed_x; // 移動速度(1回のactionで変更する横移動量)

	SpriteFishA(Image img,int px, int py, int speed){//コンストラクタ
		super(img);
		this.x = px;//初期位置
		this.y = py;
		this.speed_x = speed; //速度
	}
	public void action(){//移動処理(SpriteThreadのanimationIntervalミリ秒ごとに実行される)
		super.action();//スーパクラス:SpriteBasicのactionを実行

		this.x += this.speed_x;//移動
		if(this.x < -100) {//左に隠れたか?
			this.x = 680;	//右の見えない所に出現させる。
			this.y = rand.nextInt(450)+30;;//出現させるY座標は乱数を使う
			this.speed_x = -( rand.nextInt(8)+4 );//速度も乱数
		}
	}
}

public class TestSplitePanel1 extends JPanel {

	static Image bg;//背景素材イメージ
	static Image ch;//素材1イメージ
	static {
		try{
			bg = ImageIO.read(TestSplitePanel1.class.getResource("aqua00.jpg"));//背景素材イメージ
			ch = ImageIO.read(TestSplitePanel1.class.getResource("sanma00.gif"));//素材1イメージ
		}
		catch(Exception e){
			e.printStackTrace();
		}
	}

	SpriteThread spriteThread;	// 描画、アニメーションスレッド
	SpriteBasic back = new SpriteBasic(bg);
	SpriteFishA fish1 = new SpriteFishA(ch,  10, 100, -1);
	SpriteFishA fish2 = new SpriteFishA(ch, 100, 200, -1);

	public TestSplitePanel1() throws Exception {
		int w = bg.getWidth(this);//背景画像サイズ取得
		int h = bg.getHeight(this);
		this.setPreferredSize(new Dimension(w,h));
		spriteThread = new SpriteThread(w, h, this);

		spriteThread.add( back );//背景を追加
		spriteThread.add( fish1 );//魚追加
		spriteThread.add( fish2 );//魚追加
		spriteThread.add( new SpriteFishA(ch, -100, 0, -1) );//見えない箇所に出現
		spriteThread.add( new SpriteFishA(ch, 0, 50, 1) );//逆方向へ移動

		spriteThread.start(10);//0.01秒のアクションスレッド スタート
	}
	public void paintComponent(Graphics g){//間隔(0.01秒)で呼び出される。
		super.paintComponent(g);
		if (spriteThread != null) spriteThread.paintTo(g);
	}

	public static void main(String[] arg) throws Exception{
		new SpriteFrame(new TestSplitePanel1());//フレーム作品実行
	}
}

また、スレッドの描画間隔(actionメソッドの実行間隔でもある)を変更し、 動作を確認ください。