1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
| package Jclasses.sprite;
import java.awt.*;
import java.lang.Math;
class sprite{
private Image imageSprite=null;
private int posX=0, posY=0, sizeX=0, sizeY=0, speedX, speedY, margeX, margeY, marge;
//initialise le sprite
public sprite(Image image, int PX, int PY, int SX, int SY){
imageSprite=image;
sizeX=SX; sizeY=SY;
posX=PX; posY=PY;
}
public sprite(Image image, int PX, int PY, int SX, int SY, int spX, int spY){
imageSprite=image;
sizeX=SX; sizeY=SY;
posX=PX; posY=PY;
speedX=spX; speedY=spY;
}
public sprite(int PX, int PY, int SX, int SY){
sizeX=SX; sizeY=SY;
posX=PX; posY=PY;
}
public sprite(int PX, int PY, int SX, int SY, int spX, int spY){
sizeX=SX; sizeY=SY;
posX=PX; posY=PY;
speedX=spX; speedY=spY;
}
//les méthodes SET
public void setImage(Image image){
imageSprite=image;
}
public void setPos(int X, int Y){
posX=X; posY=Y;
}
public void setSize(int X, int Y){
sizeX=X; sizeY=Y;
}
public void setPosX(int X){posX=X;}
public void setPosY(int Y){posY=Y;}
public void setSizeX(int X){sizeX=X;}
public void setSizeY(int Y){sizeY=Y;}
public void setSpeedX(int X){speedX=X;}
public void setSpeedY(int Y){speedY=Y;}
//les méthodes GET
public Image getImage(){
return imageSprite;
}
public int getSizeX(){return sizeX;}
public int getSizeY(){return sizeY;}
public int getPosX(){return posX;}
public int getPosY(){return posY;}
public int getSpeedX(){return speedX;}
public int getSpeedY(){return speedY;}
public int getArea(){
return (sizeX*sizeY);
}
//les méthode move
public void move(int X, int Y){
posX+=X; posY+=Y;
}
public void moveX(int X){
posX+=X;
}
public void moveY(int Y){
posY+=Y;
}
public void move(){
posX+=speedX; posY+=speedY;
}
public void moveX(){
posX+=speedX;
}
public void moveY(){
posY+=speedY;
}
//les méthodes checkCollision qui renvoient true s'il y a une collision ou sinon false
public boolean checkCollision(sprite Sprite){
if(posX+sizeX<=Sprite.getPosX() || posX>=Sprite.getPosX()+Sprite.getSizeX() || posY+sizeY<=Sprite.getPosY() || posY>=Sprite.getPosY()+Sprite.getSizeY()){
return false;
}
else{return true;}
}
public boolean checkCollision(int PX, int PY, int SX, int SY){
if(posX+sizeX<=PX || posX>=PX+SX || posY+sizeY<=PY || posY>=PY+SY){
return false;
}
else{return true;}
}
//les méthodes checkCollisionExt qui renvoient quelle partie du sprite cible est touchée
public String checkCollisionExt(sprite Sprite, int V){
if(!(posX+sizeX<Sprite.getPosX() || posX>Sprite.getPosX()+Sprite.getSizeX() || posY+sizeY<Sprite.getPosY() || posY>Sprite.getPosY()+Sprite.getSizeY())){
if(posX+sizeX-V<=Sprite.getPosX()){return "left";}
if(posX+V>=Sprite.getPosX()+Sprite.getSizeX()){return "right";}
if(posY+sizeY-V<=Sprite.getPosY()){return "top";}
if(posY+V>=Sprite.getPosY()+Sprite.getSizeY()){return "bottom";}
}
else{return "null";}
return "null";
}
public String checkCollisionExt(sprite Sprite){
if(!(posX+sizeX<Sprite.getPosX() || posX>Sprite.getPosX()+Sprite.getSizeX() || posY+sizeY<Sprite.getPosY() || posY>Sprite.getPosY()+Sprite.getSizeY())){
margeX=Math.abs(speedX)+Math.abs(Sprite.getSpeedX()); margeY=Math.abs(speedY)+Math.abs(Sprite.getSpeedY());
if(posX+sizeX-margeX<=Sprite.getPosX()){return "left";}
if(posX+margeX>=Sprite.getPosX()+Sprite.getSizeX()){return "right";}
if(posY+sizeY-margeY<=Sprite.getPosY()){return "top";}
if(posY+margeY>=Sprite.getPosY()+Sprite.getSizeY()){return "bottom";}
}
else{return "null";}
return "null";
}
public String checkCollisionExt(int PX, int PY, int SX, int SY, int VS, int VO){
if(!(posX+sizeX<PX || posX>PX+SX || posY+sizeY<PY || posY>PY+SY)){
marge=Math.abs(VS)+Math.abs(VO);
if(posX+sizeX-marge<=PX){return "left";}
if(posX+marge>=PX+SX){return "right";}
if(posY+sizeY-marge<=PY){return "top";}
if(posY+marge>PY+SY){return "bottom";}
}
else{return "null";}
return "null";
}
public String checkCollisionExt(int PX, int PY, int SX, int SY, int V){
if(!(posX+sizeX<PX || posX>PX+SX || posY+sizeY<PY || posY>PY+SY)){
margeX=Math.abs(speedX)+V; margeY=Math.abs(speedY)+V;
if(posX+sizeX-margeX<=PX){return "left";}
if(posX+margeX>=PX+SX){return "right";}
if(posY+sizeY-margeY<=PY){return "top";}
if(posY+margeY>PY+SY){return "bottom";}
}
else{return "null";}
return "null";
}
}//fin class sprite |
Partager