added collision for monsters (and made test world-setup)
This commit is contained in:
@@ -18,19 +18,31 @@ public class AssetSetter {
|
||||
}
|
||||
|
||||
public void setNPC() {
|
||||
// panel.npc[0] = new OldManNPC(panel);
|
||||
// panel.npc[0].worldX = panel.tileSize*21;
|
||||
// panel.npc[0].worldY = panel.tileSize*21;
|
||||
|
||||
panel.npc[0] = new OldManNPC(panel);
|
||||
panel.npc[0].worldX = panel.tileSize*21;
|
||||
panel.npc[0].worldY = panel.tileSize*21;
|
||||
panel.npc[0].worldX = panel.tileSize*9;
|
||||
panel.npc[0].worldY = panel.tileSize*10;
|
||||
}
|
||||
|
||||
public void setMonster() {
|
||||
// panel.monster[0] = new GreenSlimeMON(panel);
|
||||
// panel.monster[0].worldX = panel.tileSize*23;
|
||||
// panel.monster[0].worldY = panel.tileSize*36;
|
||||
//
|
||||
// panel.monster[1] = new GreenSlimeMON(panel);
|
||||
// panel.monster[1].worldX = panel.tileSize*23;
|
||||
// panel.monster[1].worldY = panel.tileSize*37;
|
||||
|
||||
panel.monster[0] = new GreenSlimeMON(panel);
|
||||
panel.monster[0].worldX = panel.tileSize*23;
|
||||
panel.monster[0].worldY = panel.tileSize*36;
|
||||
panel.monster[0].worldX = panel.tileSize*11;
|
||||
panel.monster[0].worldY = panel.tileSize*10;
|
||||
|
||||
panel.monster[1] = new GreenSlimeMON(panel);
|
||||
panel.monster[1].worldX = panel.tileSize*23;
|
||||
panel.monster[1].worldY = panel.tileSize*37;
|
||||
panel.monster[1].worldX = panel.tileSize*11;
|
||||
panel.monster[1].worldY = panel.tileSize*11;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -66,36 +66,13 @@ public class CollisionHandler {
|
||||
obj.solidArea.x += obj.worldX;
|
||||
obj.solidArea.y += obj.worldY;
|
||||
|
||||
switch (entity.direction) {
|
||||
case UP:
|
||||
entity.solidArea.y -= entity.speed;
|
||||
if (entity.solidArea.intersects(obj.solidArea)) {
|
||||
if (obj.collision) entity.collisionOn = true;
|
||||
if (player) index = c;
|
||||
}
|
||||
break;
|
||||
case DOWN:
|
||||
entity.solidArea.y += entity.speed;
|
||||
if (entity.solidArea.intersects(obj.solidArea)) {
|
||||
if (obj.collision) entity.collisionOn = true;
|
||||
if (player) index = c;
|
||||
}
|
||||
break;
|
||||
case LEFT:
|
||||
entity.solidArea.x -= entity.speed;
|
||||
if (entity.solidArea.intersects(obj.solidArea)) {
|
||||
if (obj.collision) entity.collisionOn = true;
|
||||
if (player) index = c;
|
||||
}
|
||||
break;
|
||||
case RIGHT:
|
||||
entity.solidArea.x += entity.speed;
|
||||
if (entity.solidArea.intersects(obj.solidArea)) {
|
||||
if (obj.collision) entity.collisionOn = true;
|
||||
if (player) index = c;
|
||||
}
|
||||
break;
|
||||
parseSolidArea(entity);
|
||||
|
||||
if (entity.solidArea.intersects(obj.solidArea)) {
|
||||
if (obj.collision) entity.collisionOn = true;
|
||||
if (player) index = c;
|
||||
}
|
||||
|
||||
entity.solidArea.x = entity.solidAreaDefaultX;
|
||||
entity.solidArea.y = entity.solidAreaDefaultY;
|
||||
obj.solidArea.x = obj.solidAreaDefaultX;
|
||||
@@ -120,36 +97,13 @@ public class CollisionHandler {
|
||||
e.solidArea.x += e.worldX;
|
||||
e.solidArea.y += e.worldY;
|
||||
|
||||
switch (entity.direction) {
|
||||
case UP:
|
||||
entity.solidArea.y -= entity.speed;
|
||||
if (entity.solidArea.intersects(e.solidArea)) {
|
||||
entity.collisionOn = true;
|
||||
index = c;
|
||||
}
|
||||
break;
|
||||
case DOWN:
|
||||
entity.solidArea.y += entity.speed;
|
||||
if (entity.solidArea.intersects(e.solidArea)) {
|
||||
entity.collisionOn = true;
|
||||
index = c;
|
||||
}
|
||||
break;
|
||||
case LEFT:
|
||||
entity.solidArea.x -= entity.speed;
|
||||
if (entity.solidArea.intersects(e.solidArea)) {
|
||||
entity.collisionOn = true;
|
||||
index = c;
|
||||
}
|
||||
break;
|
||||
case RIGHT:
|
||||
entity.solidArea.x += entity.speed;
|
||||
if (entity.solidArea.intersects(e.solidArea)) {
|
||||
entity.collisionOn = true;
|
||||
index = c;
|
||||
}
|
||||
break;
|
||||
parseSolidArea(entity);
|
||||
|
||||
if (entity.solidArea.intersects(e.solidArea) && e != entity) {
|
||||
entity.collisionOn = true;
|
||||
index = c;
|
||||
}
|
||||
|
||||
entity.solidArea.x = entity.solidAreaDefaultX;
|
||||
entity.solidArea.y = entity.solidAreaDefaultY;
|
||||
e.solidArea.x = e.solidAreaDefaultX;
|
||||
@@ -166,28 +120,23 @@ public class CollisionHandler {
|
||||
panel.player.solidArea.x += panel.player.worldX;
|
||||
panel.player.solidArea.y += panel.player.worldY;
|
||||
|
||||
switch (entity.direction) {
|
||||
case UP:
|
||||
entity.solidArea.y -= entity.speed;
|
||||
if (entity.solidArea.intersects(panel.player.solidArea)) entity.collisionOn = true;
|
||||
break;
|
||||
case DOWN:
|
||||
entity.solidArea.y += entity.speed;
|
||||
if (entity.solidArea.intersects(panel.player.solidArea)) entity.collisionOn = true;
|
||||
break;
|
||||
case LEFT:
|
||||
entity.solidArea.x -= entity.speed;
|
||||
if (entity.solidArea.intersects(panel.player.solidArea)) entity.collisionOn = true;
|
||||
break;
|
||||
case RIGHT:
|
||||
entity.solidArea.x += entity.speed;
|
||||
if (entity.solidArea.intersects(panel.player.solidArea)) entity.collisionOn = true;
|
||||
break;
|
||||
}
|
||||
parseSolidArea(entity);
|
||||
|
||||
if (entity.solidArea.intersects(panel.player.solidArea)) entity.collisionOn = true;
|
||||
|
||||
entity.solidArea.x = entity.solidAreaDefaultX;
|
||||
entity.solidArea.y = entity.solidAreaDefaultY;
|
||||
panel.player.solidArea.x = panel.player.solidAreaDefaultX;
|
||||
panel.player.solidArea.y = panel.player.solidAreaDefaultY;
|
||||
}
|
||||
|
||||
private void parseSolidArea(Entity entity) {
|
||||
switch (entity.direction) {
|
||||
case UP -> entity.solidArea.y -= entity.speed;
|
||||
case DOWN -> entity.solidArea.y += entity.speed;
|
||||
case LEFT -> entity.solidArea.x -= entity.speed;
|
||||
case RIGHT -> entity.solidArea.x += entity.speed;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user