Added Non Bomb collidable blocks like lava and finish.
parent
78b6c197e8
commit
d00b7c4834
|
@ -12,7 +12,7 @@ sssssssssssssssssd qwe q
|
||||||
sssssssssssssssssd asd asd zxxxxxc zxxxxxxxllllxxxxxxxxc
|
sssssssssssssssssd asd asd zxxxxxc zxxxxxxxllllxxxxxxxxc
|
||||||
sssssssssssssssssd 1 zxc zxc vvvvvvvvwwwwvvvvvvvvv
|
sssssssssssssssssd 1 zxc zxc vvvvvvvvwwwwvvvvvvvvv
|
||||||
sssssssssssssssssd qe vvvvvvvvvvvvvvvvvvvvv
|
sssssssssssssssssd qe vvvvvvvvvvvvvvvvvvvvv
|
||||||
sssssssssssssssssd ad qwwwwwwwwe vvvvvvvvvvvvvvvvvvvvv
|
sssssssssssssssssdlllllad qwwwwwwwwe vvvvvvvvvvvvvvvvvvvvv
|
||||||
sssssssssssssssssd ad qrsssssssstwe vvvvvvvvvvvvvvvvvvvvv
|
sssssssssssssssssdlllllad qrsssslssstwe vvvvvvvvvvvvvvvvvvvvv
|
||||||
sssssssssssssssssd ad qwwrssssssssssstwe !!! qwe vvvvvvvvvvvvvvvvvvvvv +
|
sssssssssssssssssdlllllad qwwrssssllssssstwe !!! qwe vvvvvvvvvvvvvvvvvvvvv +
|
||||||
ssssssssssssssssstwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwrsssssssssssssssstwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwrstwwwwwwwwwwwwwwwwwwwwwwwwwwwwww3
|
ssssssssssssssssstwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwrsssssssssssssssstwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwrstwwwwwwwwwwwwwwwwwwwwwwwwwwwwww3
|
|
@ -73,7 +73,8 @@ public class GenericSprite extends Rectangle{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean collide(Tile tile, double x, double y){
|
public boolean collide(Tile tile, double x, double y){
|
||||||
|
if(tile==null){return false;}
|
||||||
if(!tile.collision){
|
if(!tile.collision){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -90,7 +91,7 @@ public class GenericSprite extends Rectangle{
|
||||||
int lowY = Math.max(0,(this.y/Tile.length)-6);
|
int lowY = Math.max(0,(this.y/Tile.length)-6);
|
||||||
int highY = Math.min(lowY + 12, GamePanel.map[0].length);
|
int highY = Math.min(lowY + 12, GamePanel.map[0].length);
|
||||||
for(int i=lowX; i<highX; i++) {
|
for(int i=lowX; i<highX; i++) {
|
||||||
for (int j = 0; j < GamePanel.map[0].length; j++) {
|
for (int j = lowY; j < highY; j++) {
|
||||||
if (GamePanel.map[i][j] != null) {
|
if (GamePanel.map[i][j] != null) {
|
||||||
if (collide(GamePanel.map[i][j], this.x + x, this.y + y)) {
|
if (collide(GamePanel.map[i][j], this.x + x, this.y + y)) {
|
||||||
if (GamePanel.map[i][j].isFinish&&isPlayer) {
|
if (GamePanel.map[i][j].isFinish&&isPlayer) {
|
||||||
|
|
|
@ -85,12 +85,13 @@ public class MapReader {
|
||||||
} else if(file.charAt(i)=='+') {
|
} else if(file.charAt(i)=='+') {
|
||||||
newTile("img/tiles/boxes/finish.png");
|
newTile("img/tiles/boxes/finish.png");
|
||||||
GamePanel.map[x][y].isFinish = true;
|
GamePanel.map[x][y].isFinish = true;
|
||||||
|
GamePanel.map[x][y].nonBombCollide = true;
|
||||||
} else if(file.charAt(i)=='v'){
|
} else if(file.charAt(i)=='v'){
|
||||||
newTile("img/tiles/background/wall.png");
|
newTile("img/tiles/background/wall.png");
|
||||||
GamePanel.map[x][y].collision = false;
|
GamePanel.map[x][y].collision = false;
|
||||||
} else if(file.charAt(i)=='l'){
|
} else if(file.charAt(i)=='l'){
|
||||||
newTile("img/tiles/terrain/lava.png");
|
newTile("img/tiles/terrain/lava.png");
|
||||||
GamePanel.map[x][y].kills = true;
|
GamePanel.map[x][y].nonBombCollide = true;
|
||||||
if(y>0&&GamePanel.map[x][y-1]==null) {
|
if(y>0&&GamePanel.map[x][y-1]==null) {
|
||||||
GamePanel.particleTiles.add(GamePanel.map[x][y]);
|
GamePanel.particleTiles.add(GamePanel.map[x][y]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class Player extends GenericSprite {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean collide(Tile tile, double x, double y){
|
public boolean collide(Tile tile, double x, double y){
|
||||||
if(tile==null){return false;}
|
if(tile==null){return false;}
|
||||||
if(!tile.collision){
|
if(!tile.collision){
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -35,6 +35,8 @@ public class StickyBomb extends GenericSprite{
|
||||||
erase = false;
|
erase = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void update(){
|
public void update(){
|
||||||
realX = x - GamePanel.camera.x;
|
realX = x - GamePanel.camera.x;
|
||||||
}
|
}
|
||||||
|
@ -69,6 +71,17 @@ public class StickyBomb extends GenericSprite{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean collide(Tile tile, double x, double y){
|
||||||
|
if(!tile.collision||tile.nonBombCollide){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(x+WIDTH>tile.x&&x<tile.x+Tile.length&&y-tile.y<Tile.length&&tile.y-y<HEIGHT){
|
||||||
|
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
public void move(){
|
public void move(){
|
||||||
if(yVelocity>50){yVelocity=50;}
|
if(yVelocity>50){yVelocity=50;}
|
||||||
update();
|
update();
|
||||||
|
|
|
@ -7,6 +7,7 @@ public class Tile {
|
||||||
|
|
||||||
public boolean collision;
|
public boolean collision;
|
||||||
|
|
||||||
|
public boolean nonBombCollide;
|
||||||
public boolean isFinish;
|
public boolean isFinish;
|
||||||
|
|
||||||
public boolean kills;
|
public boolean kills;
|
||||||
|
@ -18,6 +19,7 @@ public class Tile {
|
||||||
kills = false;
|
kills = false;
|
||||||
this.x = x;
|
this.x = x;
|
||||||
this.y = y;
|
this.y = y;
|
||||||
|
nonBombCollide = false;
|
||||||
}
|
}
|
||||||
public void update(){
|
public void update(){
|
||||||
realX = x-GamePanel.camera.x;
|
realX = x-GamePanel.camera.x;
|
||||||
|
|
Loading…
Reference in New Issue