Npc added

This commit is contained in:
iryupnik 2020-03-17 21:34:18 +01:00
parent f1d32226bd
commit 75326f9437
3 changed files with 31 additions and 4 deletions

View File

@ -1,14 +1,19 @@
package ruscz.game.gameOfProd.Cells;
import ruscz.game.gameOfProd.Map.Map;
import ruscz.game.gameOfProd.Windows.WindowOfFreeMove;
import java.awt.*;
public class Npc extends Person {
private int[] path;
int x;
int y;
Color color;
public Npc(int x, int y, Map map) {
super(x, y, map);
this.color = Color.cyan;
}
public void move(int endX, int endY) {
@ -46,4 +51,10 @@ public class Npc extends Person {
set(x,y);
}
}
@Override
public void paint(Graphics2D g) {
g.setColor(color);
g.fillOval(getX() * WindowOfFreeMove.CELL_SIZE, getY() * WindowOfFreeMove.CELL_SIZE, WindowOfFreeMove.CELL_SIZE, WindowOfFreeMove.CELL_SIZE);
}
}

View File

@ -20,6 +20,7 @@ public class Map {
private LinkedList<Block> block;
private LinkedList<InteractionCell> interactionCells;
private LinkedList<TriggerCell> triggerCells;
private LinkedList<Npc> npcs;
private boolean isBlocked;
private int idExit;
private ImageCell imageCell;
@ -33,6 +34,7 @@ public class Map {
moveToCells = new LinkedList<EventMoveToCell>();
interactionCells = new LinkedList<InteractionCell>();
triggerCells = new LinkedList<TriggerCell>();
npcs = new LinkedList<>();
block = new LinkedList<Block>();
isBlocked = false;
imageCell = new ImageCell();
@ -63,6 +65,7 @@ public class Map {
interactionCells = new LinkedList<InteractionCell>();
triggerCells = new LinkedList<TriggerCell>();
mapArray = new TypeOfCell[height][width];
npcs = new LinkedList<>();
this.isBlocked = isBlocked;
imageCell = new ImageCell();
@ -92,6 +95,7 @@ public class Map {
block = new LinkedList<Block>();
isBlocked = false;
imageCell = new ImageCell();
npcs = new LinkedList<>();
this.mapArray = mapArray;
person = new Person(this);
}
@ -114,6 +118,7 @@ public class Map {
TypeOfCell[][] mapArray = new TypeOfCell[Integer.parseInt(size[0])][Integer.parseInt(size[1])];
Map map = new Map(mapArray);
map.setName(name);
map.npcs = new LinkedList<>();
map.getImageCell().readMapFile(name + "-tileset");
LinkedList<String[]> listOfMoveToCells = new LinkedList<>();
int y = 0;
@ -194,6 +199,14 @@ public class Map {
triggerCells.add(triggerCell);
}
public void setNpcs(Npc npc){
npcs.add(npc);
}
public LinkedList<Npc> getNpcs(){
return npcs;
}
public void setName(String name) {
this.name = name;
}

View File

@ -1,9 +1,6 @@
package ruscz.game.gameOfProd.Windows;
import ruscz.game.gameOfProd.Cells.Cell;
import ruscz.game.gameOfProd.Cells.EventMoveToCell;
import ruscz.game.gameOfProd.Cells.InteractionCell;
import ruscz.game.gameOfProd.Cells.TriggerCell;
import ruscz.game.gameOfProd.Cells.*;
import ruscz.game.gameOfProd.Dialog.Dialog;
import ruscz.game.gameOfProd.Dialog.DialogBar;
import ruscz.game.gameOfProd.Map.Map;
@ -186,6 +183,9 @@ public class WindowOfFreeMove extends JFrame {
m4.linkMaps(m4, this);
m5.linkMaps(m5, this);
Npc npc = new Npc(1,1,m5);
m5.setNpcs(npc);
map = new MapPainter(mapLinkedList, canvas);
setMap(m5);
@ -230,6 +230,9 @@ public class WindowOfFreeMove extends JFrame {
for (Cell cell : map.getActualMap().getInteractionEventCells()) {
cell.paint(g2D);
}
for (Person person: map.getActualMap().getNpcs()){
person.paint(g2D);
}
}
}
}