www.pudn.com > 20061029005.rar > Fish.java


// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov. 
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html 
// Decompiler options: packimports(3) fieldsfirst ansi  
 
package org.cesar.inmotion.sea.basic; 
 
import java.util.Random; 
import javax.microedition.lcdui.Graphics; 
import javax.microedition.lcdui.Image; 
import org.cesar.inmotion.sea.GameCanvas; 
import org.cesar.inmotion.util.GameItem; 
 
public class Fish extends GameItem 
{ 
 
    private boolean dead; 
    private boolean up; 
    private byte cycles; 
    public static final byte DIR_LEFT = -1; 
    public static final byte DIR_RIGHT = 1; 
    public static final byte DIR_NONE = 0; 
    private byte DIR_ACTIVE; 
    private Image images[]; 
 
    public Fish(Image aimage[], byte byte0) 
    { 
        super(0, 0, aimage[0]); 
        dead = false; 
        up = false; 
        DIR_ACTIVE = 1; 
        images = aimage; 
        setDirection(byte0); 
        setXspeed(2); 
        setYspeed(1); 
        cycles = (byte)Math.abs((new Random()).nextInt() % 10); 
    } 
 
    public void ressurect() 
    { 
        dead = false; 
        setXspeed(1); 
    } 
 
    public boolean isDead() 
    { 
        return dead; 
    } 
 
    public void kill() 
    { 
        dead = true; 
    } 
 
    public void update() 
    { 
        if(getX() >= -50 && getX() <= (GameCanvas.ScreenWidth - getImage().getWidth()) + 50) 
        { 
            setX(getX() + DIR_ACTIVE * getXspeed()); 
            if(cycles == 10) 
            { 
                if(up) 
                    setY(getY() + getYspeed()); 
                else 
                    setY(getY() - getYspeed()); 
                cycles = 0; 
                up = !up; 
            } 
            cycles++; 
        } else 
        { 
            setVisible(false); 
        } 
    } 
 
    public void draw(Graphics g) 
    { 
        if(isVisible() && !dead) 
            g.drawImage(getImage(), getX(), getY(), 20); 
    } 
 
    public byte getDirection() 
    { 
        return DIR_ACTIVE; 
    } 
 
    public void setDirection(byte byte0) 
    { 
        DIR_ACTIVE = byte0; 
        switch(DIR_ACTIVE) 
        { 
        case -1:  
            setImage(images[0]); 
            break; 
 
        case 1: // '\001' 
            setImage(images[1]); 
            break; 
 
        default: 
            setVisible(false); 
            kill(); 
            break; 
        } 
    } 
}