⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sprite.java

📁 goldminer游戏
💻 JAVA
字号:
package com.hbwhzdg.goldminer.graphics;

import java.awt.Image;

/**
 *
 * <p>Title: 角色</p>
 *
 * <p>Description: 以毫秒为级别,以指定动画生成角色在运动中过程中的位置以及要显示的动画帧。</p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class Sprite {

    protected Animation anim;//该角色的动画形态。
    // 该角色的位置。
    private float x;
    private float y;
    // 每毫秒的象素移动速度,仅该角色为移动状态时使用。
    private float dx;
    private float dy;
    private String name=null;//该角色的名称。

   /**
    * 用指定的动画创建角色。
    * @param anim Animation
    */
   public Sprite(Animation anim) {
        this.anim = anim;
    }

   /**
    * 更新动画。
    * 该动画在当前的位置该显示哪一帧。
    * 对于移动的角色请重写该方法,以计算出角色当前所处的位置(x,y)。
    * @param elapsedTime long 与上次更新时间的差值,毫秒级
    */
   public void update(long elapsedTime) {
        anim.update(elapsedTime);
    }

    /**
     * 该角色当前位置的X轴。
     * @return float
     */
    public float getX() {
        return x;
    }

    /**
     * 该角色当前位置的Y轴。
     * @return float
     */
    public float getY() {
        return y;
    }

    public Animation getAnim() {
        return anim;
    }

    public String getName() {
        return name;
    }

    /**
     * 设置该角色当前位置的X轴。
     * @param x float
     */
    public void setX(float x) {
        this.x = x;
    }

    /**
     * 设置该角色当前位置的Y轴。
     * @param y float
     */
    public void setY(float y) {
        this.y = y;
    }

    public void setName(String name) {
        this.name = name;
    }

    /**
     * 该角色的宽度。
     * @return int
     */
    public int getWidth() {
        return anim.getImage().getWidth(null);
    }

    /**
     * 该角色的长度。
     * @return int
     */
    public int getHeight() {
        return anim.getImage().getHeight(null);
    }

   /**
    * 该角色每毫秒沿X轴移动的像素数量。
    * @return float
    */
   public float getVelocityX() {
        return dx;
    }

    /**
     * 该角色每毫秒沿Y轴移动的像素数量。
     * @return float
     */
    public float getVelocityY() {
        return dy;
    }

    /**
     * 设置该角色每毫秒沿X轴移动的像素数量。
     * @param dx float
     */
    public void setVelocityX(float dx) {
        this.dx = dx;
    }

    /**
     * 设置该角色每毫秒沿Y轴移动的像素数量。
     * @param dy float
     */
    public void setVelocityY(float dy) {
        this.dy = dy;
    }

    /**
     * 该角色当前要显示的图片。
     * @return Image
     */
    public Image getImage() {
        return anim.getImage();
    }

    /**
     *
     * @return int
     */
    public int getFramesSize(){
        return anim.getFramesSize();
    }

    public void setCurrFrameIndex(int currFrameIndex){
        anim.setCurrFrameIndex(currFrameIndex);
    }

    /**
     * 克隆一个副本。
     * @return Object
     */
    public Object clone() {
        Sprite sprite = new Sprite(anim);
        sprite.setName(getName());
        return sprite;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -