1.0下的Sprite

来源:互联网 发布:php 数组最大下标 编辑:程序博客网 时间:2024/04/28 03:00

 
 * Sprite.java
 *
 * Copyright 2001 SkyArts. All Rights Reserved.
 */
import javax.microedition.lcdui.*;

/**
 * Sprite类(显示贴图零件)
 *
 * @author  Hideki Yonekawa
 * @version 1.0
 */
abstract class Sprite {
 /** 储存了X坐标的变量 */
 protected int    x;
 /** 储存了Y坐标的变量 */
 protected int    y;
 /** 储存横宽的变量 */
 protected int    width;
 /** 储存高度的变量 */
 protected int    height;

 /** 代表是否为Alive状态的标志变量 */
 protected boolean   isAlive    = true;
 /** 代表是否为Hit状态的标志变量 */
 protected boolean   isHit    = false;
 /** 储存了TicK计数的变量 */
 protected int    tickCount   = 0;

 /**
  * 设定X坐标的方法
  * @param x 要设定的X坐标值
  */
 void setX(int x) {
  this.x = x;
 }

 /**
  * 传回X坐标的方法
  * @return int 被设定的X坐标值
  */
 int getX() {
  return x;
 }

 /**
  * 设定Y坐标的方法
  * @param y 要设定的y坐标值
  */
 void setY(int y) {
  this.y = y;
 }

 /**
  * 传回Y坐标值的方法
  * @return int 被设定的Y坐标值
  */
 int getY() {
  return y;
 }

 /**
  * 传回横宽的方法
  * @return int 横宽值
  */
 int getWidth() {
  return width;
 }

 /**
  * 传回高度的方法
  * @return int 高度值
  */
 int getHeight() {
  return height;
 }

 /**
  * 设定Alive状态的方法
  * @param isAlive Alive状态的话就是true、不是Alive状态就是false
  */
 void setAlive(boolean isAlive) {
  this.isAlive = isAlive;
 }

 /**
  * 传回Alive状态的方法
  * @return boolean Alive状态就是true、不是Alive状态就是false
  */
 boolean isAlive() {
  return isAlive;
 }

 /**
  * 设定Hit状态的方法
  * @param isAlive Hit状态就是true、不是Hit状态就是false
  */
 void setHit(boolean isHit) {
  this.isHit = isHit;
  tickCount  = 0;
 }

 /**
  * 传回Hit状态的方法
  * @return boolean Hit状态就是true、不是Hit状态就是false
  */
 boolean isHit() {
  return isHit;
 }

 /**
  * 传回这个Sprite(this)是否有与其他Sprite重叠的方法
  * @return boolean 有重叠的话就是true、没有重叠的话是false
  */
 boolean isOverlaps(Sprite otherSprite) {
  if( (otherSprite.getX() <= x && otherSprite.getX() + otherSprite.getWidth() >= x) || //右
   (otherSprite.getX() >= x && otherSprite.getX() <= x + width) ) {   //左
   if( (otherSprite.getY() <= y && otherSprite.getY() + otherSprite.getHeight() >= y) ||//上
    (otherSprite.getY() >= y && otherSprite.getY() <= y + height) ) {  //下
    return true;
   }
  }
  return false;
 }

 /** 要移动Sprite所调用的方法 */
 abstract void doMove();

 /** 要描绘Sprite所调用的方法 */
 abstract void doDraw(Graphics g);
}

原创粉丝点击