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

📄 supersprite.java

📁 java 写的飞行射击游戏。是游戏的基础。可以参考一下。对游戏开发有帮助。
💻 JAVA
字号:
package airplane;

import java.awt.Graphics;
import java.awt.Image;
import java.applet.Applet;

public class SuperSprite { //这是Sprite父类
    int X, Y, width, height;
    boolean visible, active;
    Image SpriteImage; //Sprite本身的图像
    Applet Game; //在绘制图像时会用到

    public SuperSprite(Image SpriteImage,
                       int startX,
                       int startY, //起始位置
                       Applet Game){
      this.SpriteImage = SpriteImage;
      this.Game = Game;
      width = SpriteImage.getWidth(Game);
      height = SpriteImage.getHeight(Game);
      setLocation(startX, startY); //设定起始位置
      setVisible(true); //可见
      setMove(true); //可移动
    }

    public void paintSprite(Graphics g){
      if (visible == true){
        g.drawImage(SpriteImage, X, Y, Game); //在最后一个参数中输入Applet
      }
    }

    public void updateState(){   }  //此方法必须被覆盖

    public int getX() {
        return X;
    }

    public int getY() {
        return Y;
    }

    public void setLocation(int X, int Y) {
        this.X = X;
        this.Y = Y;
    }

    public int getWidth() {
        return width;
    }

    public int getHeight() {
        return height;
    }

    public void setSize(int width, int height) {
        this.width = width;
        this.height = height;
    }

    public boolean canVisible() {
        return visible;
    }

    public void setVisible(boolean v) {
        visible = v;
    }

    public boolean canMove() {
        return active;
    }

    public void setMove(boolean m) {
        active = m;
    }

    //检测碰撞
    public boolean isCollide(SuperSprite targetSprite) {
      boolean collided = false;
      if(targetSprite.visible == true && this.visible == true){
        //头部碰撞
        if(targetSprite.getX() <= (this.getX()+ this.getWidth()) &&
           targetSprite.getX() >= this.getX()) {
          if((targetSprite.getY()+targetSprite.getHeight())>=this.getY()&&
             ((targetSprite.getY()+targetSprite.getHeight())<=(this.getY()+this.getHeight()))){  //左下角碰撞
            collided = true;
          }
          if((targetSprite.getY()<=(this.getY() + this.getHeight()))&&
             (targetSprite.getY()>=this.getY())){  //左上角碰撞
            collided = true;
          }
        }
        //尾部碰撞
        if(this.getX() <= (targetSprite.getX()+ targetSprite.getWidth()) &&
           this.getX() >= targetSprite.getX()) {
          if((targetSprite.getY()+targetSprite.getHeight())>=this.getY()&&
             ((targetSprite.getY()+targetSprite.getHeight())<=(this.getY()+this.getHeight()))){  //左下角碰撞
            collided = true;
          }
          if((targetSprite.getY()<=(this.getY() + this.getHeight()))&&
             (targetSprite.getY()>=this.getY())){  //左上角碰撞
            collided = true;
          }
        }
      }
      return collided;
    }


}

⌨️ 快捷键说明

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