finished dialogue system
This commit is contained in:
@@ -37,7 +37,7 @@ public class GamePanel extends JPanel implements Runnable {
|
|||||||
|
|
||||||
// SYSTEM
|
// SYSTEM
|
||||||
public TileManager tileM = new TileManager(this);
|
public TileManager tileM = new TileManager(this);
|
||||||
KeyHandler keyH = new KeyHandler(this);
|
public KeyHandler keyH = new KeyHandler(this);
|
||||||
Sound se = new Sound();
|
Sound se = new Sound();
|
||||||
Sound music = new Sound();
|
Sound music = new Sound();
|
||||||
public CollisionHandler collisionH = new CollisionHandler(this);
|
public CollisionHandler collisionH = new CollisionHandler(this);
|
||||||
|
|||||||
@@ -51,10 +51,14 @@ public class UI {
|
|||||||
int height = panel.tileSize*4;
|
int height = panel.tileSize*4;
|
||||||
drawSubWindow(x, y, width, height);
|
drawSubWindow(x, y, width, height);
|
||||||
|
|
||||||
graphics2d.setFont(graphics2d.getFont().deriveFont(Font.PLAIN, 23));
|
graphics2d.setFont(graphics2d.getFont().deriveFont(Font.PLAIN, 28F));
|
||||||
x += panel.tileSize;
|
x += panel.tileSize;
|
||||||
y += panel.tileSize;
|
y += panel.tileSize;
|
||||||
graphics2d.drawString(currentDialogue, x, y);
|
|
||||||
|
for(String line : currentDialogue.split("\n")) {
|
||||||
|
graphics2d.drawString(line, x, y);
|
||||||
|
y += 40;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drawSubWindow(int x, int y, int width, int height) {
|
public void drawSubWindow(int x, int y, int width, int height) {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import java.awt.event.KeyListener;
|
|||||||
|
|
||||||
public class KeyHandler implements KeyListener {
|
public class KeyHandler implements KeyListener {
|
||||||
|
|
||||||
public boolean upPressed, downPressed, leftPressed, rightPressed;
|
public boolean upPressed, downPressed, leftPressed, rightPressed, spacePressed;
|
||||||
public GamePanel panel;
|
public GamePanel panel;
|
||||||
// DEBUG
|
// DEBUG
|
||||||
public boolean checkDrawTime = false;
|
public boolean checkDrawTime = false;
|
||||||
@@ -31,6 +31,7 @@ public class KeyHandler implements KeyListener {
|
|||||||
case KeyEvent.VK_S, KeyEvent.VK_DOWN -> downPressed = true;
|
case KeyEvent.VK_S, KeyEvent.VK_DOWN -> downPressed = true;
|
||||||
case KeyEvent.VK_A, KeyEvent.VK_LEFT -> leftPressed = true;
|
case KeyEvent.VK_A, KeyEvent.VK_LEFT -> leftPressed = true;
|
||||||
case KeyEvent.VK_D, KeyEvent.VK_RIGHT -> rightPressed = true;
|
case KeyEvent.VK_D, KeyEvent.VK_RIGHT -> rightPressed = true;
|
||||||
|
case KeyEvent.VK_SPACE -> spacePressed = true;
|
||||||
|
|
||||||
// DEBUG OPTIONS
|
// DEBUG OPTIONS
|
||||||
case KeyEvent.VK_T -> checkDrawTime = !checkDrawTime;
|
case KeyEvent.VK_T -> checkDrawTime = !checkDrawTime;
|
||||||
|
|||||||
@@ -33,7 +33,20 @@ public class Entity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setAction() {}
|
public void setAction() {}
|
||||||
public void speak() {}
|
|
||||||
|
public void speak() {
|
||||||
|
if(dialogue[dialogueIndex] == null) dialogueIndex = 0;
|
||||||
|
panel.ui.currentDialogue = dialogue[dialogueIndex];
|
||||||
|
dialogueIndex++;
|
||||||
|
|
||||||
|
switch(panel.player.direction) {
|
||||||
|
case UP -> direction = Direction.DOWN;
|
||||||
|
case DOWN -> direction = Direction.UP;
|
||||||
|
case LEFT -> direction = Direction.RIGHT;
|
||||||
|
case RIGHT -> direction = Direction.LEFT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void update() {
|
public void update() {
|
||||||
setAction();
|
setAction();
|
||||||
collisionOn = false;
|
collisionOn = false;
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ public class OldManNPC extends Entity {
|
|||||||
|
|
||||||
public void setDialogue() {
|
public void setDialogue() {
|
||||||
dialogue[0] = "Hello, lad.";
|
dialogue[0] = "Hello, lad.";
|
||||||
dialogue[1] = "So you've come to this island to find the treasure?";
|
dialogue[1] = "So you've come to this island to \nfind the treasure?";
|
||||||
dialogue[2] = "I used to be a great wizard but now... I'm a bit too old for taking an adventure";
|
dialogue[2] = "I used to be a great wizard but now... \nI'm a bit too old for taking an \nadventure";
|
||||||
dialogue[3] = "Well, good luck on you.";
|
dialogue[3] = "Well, good luck on you.";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,18 +45,4 @@ public class OldManNPC extends Entity {
|
|||||||
if(i > 75) direction = Direction.RIGHT;
|
if(i > 75) direction = Direction.RIGHT;
|
||||||
actionLock = 0;
|
actionLock = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void speak() {
|
|
||||||
if(dialogue[dialogueIndex] == null) dialogueIndex = 0;
|
|
||||||
panel.ui.currentDialogue = dialogue[dialogueIndex];
|
|
||||||
dialogueIndex++;
|
|
||||||
|
|
||||||
switch(panel.player.direction) {
|
|
||||||
case UP -> direction = Direction.DOWN;
|
|
||||||
case DOWN -> direction = Direction.UP;
|
|
||||||
case LEFT -> direction = Direction.RIGHT;
|
|
||||||
case RIGHT -> direction = Direction.LEFT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -95,12 +95,19 @@ public class Player extends Entity {
|
|||||||
|
|
||||||
public void interactNPC(int index) {
|
public void interactNPC(int index) {
|
||||||
if(index == 999) return;
|
if(index == 999) return;
|
||||||
|
//if(!panel.keyH.spacePressed) return; //Only uncomment if text should only appear if player hits space
|
||||||
panel.gameState = GameState.DIALOGUE;
|
panel.gameState = GameState.DIALOGUE;
|
||||||
panel.npc[index].speak();
|
panel.npc[index].speak();
|
||||||
|
panel.keyH.spacePressed = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void draw(Graphics2D graphics2d) {
|
public void draw(Graphics2D graphics2d) {
|
||||||
graphics2d.drawImage(parseSprite(), screenX, screenY, null);
|
graphics2d.drawImage(parseSprite(), screenX, screenY, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void speak() {
|
||||||
|
//This method only exists for character specific things later...
|
||||||
|
super.speak();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user