first step towards interactions
This commit is contained in:
parent
d1d553949f
commit
76739987aa
@ -1,6 +1,7 @@
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
|
|
||||||
public class InteractionCell extends Cell {
|
public class InteractionCell extends Cell {
|
||||||
|
|
||||||
InteractionCell(){
|
InteractionCell(){
|
||||||
super(-1,-1, WindowOfFreeMove.CELL_SIZE, Color.ORANGE);
|
super(-1,-1, WindowOfFreeMove.CELL_SIZE, Color.ORANGE);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,6 +13,7 @@ public class Map {
|
|||||||
private Person person;
|
private Person person;
|
||||||
private LinkedList<EventMoveToCell> moveToCells;
|
private LinkedList<EventMoveToCell> moveToCells;
|
||||||
private LinkedList<Block> block;
|
private LinkedList<Block> block;
|
||||||
|
private LinkedList<InteractionCell> eventCells;
|
||||||
private boolean isBlocked;
|
private boolean isBlocked;
|
||||||
private int idExit;
|
private int idExit;
|
||||||
private ImageCell imageCell;
|
private ImageCell imageCell;
|
||||||
@ -49,6 +50,7 @@ public class Map {
|
|||||||
idExit = 0;
|
idExit = 0;
|
||||||
moveToCells = new LinkedList<EventMoveToCell>();
|
moveToCells = new LinkedList<EventMoveToCell>();
|
||||||
block = new LinkedList<Block>();
|
block = new LinkedList<Block>();
|
||||||
|
eventCells = new LinkedList<InteractionCell>();
|
||||||
mapArray = new TypeOfCell[height][width];
|
mapArray = new TypeOfCell[height][width];
|
||||||
this.isBlocked = isBlocked;
|
this.isBlocked = isBlocked;
|
||||||
imageCell = new ImageCell();
|
imageCell = new ImageCell();
|
||||||
@ -80,6 +82,11 @@ public class Map {
|
|||||||
moveToCells.add(moveToCell);
|
moveToCells.add(moveToCell);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void addInteractionEvent(InteractionCell interactionCell) {
|
||||||
|
mapArray[interactionCell.getX()][interactionCell.getY()] = TypeOfCell.EVENT;
|
||||||
|
eventCells.add(interactionCell);
|
||||||
|
}
|
||||||
|
|
||||||
public void setName(String name) {
|
public void setName(String name) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
@ -104,6 +111,10 @@ public class Map {
|
|||||||
return moveToCells;
|
return moveToCells;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public LinkedList<InteractionCell> getInteractionEventCells() {
|
||||||
|
return eventCells;
|
||||||
|
}
|
||||||
|
|
||||||
public void setIdExit(int id) {
|
public void setIdExit(int id) {
|
||||||
this.idExit = id;
|
this.idExit = id;
|
||||||
}
|
}
|
||||||
@ -182,6 +193,13 @@ public class Map {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean isCellEvent(int x, int y) {
|
||||||
|
for (InteractionCell cell : eventCells)
|
||||||
|
if (x == cell.getX() && y == cell.getY() && cell.getClass().getName().equals("InteractionCell"))
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
EventMoveToCell findEventByXY(int x, int y) {
|
EventMoveToCell findEventByXY(int x, int y) {
|
||||||
for (EventMoveToCell cell : moveToCells)
|
for (EventMoveToCell cell : moveToCells)
|
||||||
if (x == cell.getX() && y == cell.getY())
|
if (x == cell.getX() && y == cell.getY())
|
||||||
|
|||||||
@ -75,11 +75,13 @@ public class Person extends Cell {
|
|||||||
y = 0;
|
y = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (directionMove != 0 && !map.isBusyCell(x, y)) {
|
if (directionMove != 0 && !map.isBusyCell(x, y) && !map.isCellEvent(x, y)) {
|
||||||
directionMoveLast = directionMove;
|
directionMoveLast = directionMove;
|
||||||
isMoving = true;
|
isMoving = true;
|
||||||
} else if (directionMove != 0 && map.isBusyCell(x, y)) {
|
} else if (directionMove != 0 && map.isBusyCell(x, y)) {
|
||||||
directionMoveLast = 0;
|
directionMoveLast = 0;
|
||||||
|
} else if (directionMove != 0 && map.isCellEvent(x, y)) {
|
||||||
|
directionMoveLast = 0;
|
||||||
}
|
}
|
||||||
if (map.isCellMoveTo(x, y)) {
|
if (map.isCellMoveTo(x, y)) {
|
||||||
set(x, y);
|
set(x, y);
|
||||||
@ -88,13 +90,36 @@ public class Person extends Cell {
|
|||||||
map.findEventByXY(x, y).moveToMap();
|
map.findEventByXY(x, y).moveToMap();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!map.isBusyCell(x, y)) {
|
if (!map.isBusyCell(x, y) && !map.isCellEvent(x,y)) {
|
||||||
set(x, y);
|
set(x, y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
directionMove = 0;
|
directionMove = 0;
|
||||||
|
|
||||||
|
if (isEventInFront(x,y,directionSight)) {
|
||||||
|
System.out.println("showEvent");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isEventInFront(int x, int y, int directionSight) {
|
||||||
|
switch (directionSight) {
|
||||||
|
case 1:
|
||||||
|
x--;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
x++;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
y--;
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
y++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return map.isCellEvent(x, y);
|
||||||
|
}
|
||||||
|
|
||||||
public void stopPerson(){
|
public void stopPerson(){
|
||||||
directionMove = 0;
|
directionMove = 0;
|
||||||
directionMoveLast = 0;
|
directionMoveLast = 0;
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
public enum TypeOfCell {
|
public enum TypeOfCell {
|
||||||
BLOCK, EMPTY, MOVETO, SPAWNPOINT;
|
BLOCK, EMPTY, MOVETO, EVENT, SPAWNPOINT;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -149,6 +149,7 @@ public class WindowOfFreeMove extends JFrame {
|
|||||||
|
|
||||||
m1.addMoveToEvent(new EventMoveToCell(1, 1, 8, 8, m2, this));
|
m1.addMoveToEvent(new EventMoveToCell(1, 1, 8, 8, m2, this));
|
||||||
m1.addMoveToEvent(new EventMoveToCell(4, 3, 8, 1, m4, this));
|
m1.addMoveToEvent(new EventMoveToCell(4, 3, 8, 1, m4, this));
|
||||||
|
m1.addInteractionEvent(new InteractionCell(5, 5));
|
||||||
|
|
||||||
m2.addMoveToEvent(new EventMoveToCell(2, 1, 8, 8, m3, this));
|
m2.addMoveToEvent(new EventMoveToCell(2, 1, 8, 8, m3, this));
|
||||||
m2.addMoveToEvent(new EventMoveToCell(1, 3, 8, 1, m1, this));
|
m2.addMoveToEvent(new EventMoveToCell(1, 3, 8, 1, m1, this));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user