📄 supersprite.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 + -