/*for(int i = 1; i <= events.result.length(); i++){
try{ thread.sleep(millisPer);//0.5s pause between characters }catch(InterruptedException ex){ Thread.currentThread().interrupt(); } g.drawString(events.result.substring(0, i), 300, 300); }*/
for(int i = 1; i <= events.result.length(); i++) {
try{
thread.sleep(millisPer);//0.5s pause between characters
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
g.drawString(events.result.substring(0, i), 300, 300);
}
package mains;
import java.awt.Graphics;
public class Typewriter{ long stallTime = 0;
package mains;
import java.awt.Graphics;
public class Typewriter{
long stallTime = 0;
public void typeResult(Graphics g, String result) {
int spacing = 300;
for(int i = 0; i < result.length(); i++) {
if(getElapsedTime() > 1) {
g.drawString(result.substring(i, i+1), spacing, 300);
spacing+=5;
}
}
}
public int getElapsedTime(){
return (int)((System.currentTimeMillis()-stallTime)/1000);
}
public void setStallTime(){
stallTime=System.currentTimeMillis();
}
}
}
package mains;
import java.awt.Canvas; import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferStrategy; import java.awt.image.BufferedImage;
public class Game extends Canvas implements Runnable{
private static final long serialVersionUID = -6672699999969016018L;
private boolean isRunning = false;
private Thread thread;
private GameState state;
Window window = new Window(1000,800,"Prototype", this);
EventManager events = new EventManager();
BufferedImage image = ImageLoader.loadImage("/textures/Syria.png");
Typewriter typewriter = new Typewriter();package mains;
public Game()import {java.awt.Canvas;
import thisjava.addMouseListener(new MouseInput(this));awt.Color;
import thisjava.addMouseListener(window);awt.Graphics;
state =import statejava.MainMenu;awt.image.BufferStrategy;
import start();java.awt.image.BufferedImage;
}
public static void main(String args[]) {
new Game();
}
privatepublic voidclass start()Game extends Canvas implements Runnable{
private static final long serialVersionUID = -6672699999969016018L;
private boolean isRunning = true;false;
threadprivate Thread thread;
private GameState state;
Window window = new ThreadWindow(1000,800,"Prototype", this);
threadEventManager events = new EventManager();
BufferedImage image = ImageLoader.startloadImage("/textures/Syria.png");
Typewriter typewriter = new Typewriter();
public Game() {
this.addMouseListener(new MouseInput(this));
this.addMouseListener(window);
state = state.MainMenu;
start();
}
private void stop() {
isRunning = false;
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public GameStatestatic getGameStatevoid main(String args[]) {
return state; new Game();
}
public private void setGameStatestart(GameState state) {
this.state isRunning = state;true;
} thread = new Thread(this);
thread.start();
public void run() {
//game loop - lifted from Zach from RealTutsGML
this.requestFocus();}
long lastTimeprivate =void System.nanoTimestop();
double amountOfTicks = 60.0;
double ns = 100000000 / amountOfTicks;{
double delta = 0;
long timerisRunning = System.currentTimeMillis();false;
int frames = 0;
while(isRunning)try {
long now = System thread.nanoTimejoin();
delta += (now - lastTime) / ns;
lastTime = now;
} catch while(delta >=InterruptedException 1e) {
ticke.printStackTrace();
//updates++;
delta--;
}
render();
frames++;
if(System.currentTimeMillis() - timer > 1000) {
timer += 1000;
frames = 0;}
//updatespublic =GameState 0;getGameState(){
}return state;
}
stop();
}
public void setGameState(GameState state){
this.state = state;
}
private void tick() {
events.tick();
ifpublic void run(events) {
//game loop - lifted from Zach from RealTutsGML
this.distancerequestFocus();
>= 100 long lastTime = System.nanoTime();
double amountOfTicks = 60.0;
double ns = 100000000 / amountOfTicks;
double delta = 0;
long timer = System.currentTimeMillis();
int frames = 0;
while(isRunning) {
state long now = stateSystem.Escape;nanoTime();
delta += (now - lastTime) / ns;
lastTime = now;
while(delta >= 1) {
tick();
//updates++;
delta--;
}
render();
frames++;
} if(System.currentTimeMillis() - timer > 1000) {
timer += 1000;
frames = 0;
if(events.getHealth() <= 0) {
state //updates = state.Death;0;
}
}
stop();
}
}
private void tick() {
events.tick();
private void render() {
BufferStrategy bs = this.getBufferStrategy();
if(bsevents.distance ==>= null100) {
this.createBufferStrategy(3);
return;
state = }state.Escape;
Graphics g = bs.getDrawGraphics();
//ANYTHING BETWEEN THIS LINE AND g.dispose() IS RENDERED}
if(stateevents.getHealth() ==<= state.MainMenu0) {
g.drawImage(image,-100,0, null);
state = g.setColor(Colorstate.red);Death;
g.fillRect(100, 700, 50, 50);}
}
if(stateprivate ==void state.Escaperender() {
gBufferStrategy bs = this.setColorgetBufferStrategy(Color.blue);
g.fillRectif(0, 0,bs 1000,== 800null); {
g this.setColorcreateBufferStrategy(Color.white3);
g.drawString("YOU ESCAPED! :)", 500,500); return;
}
} Graphics g = bs.getDrawGraphics();
//ANYTHING BETWEEN THIS LINE AND g.dispose() IS RENDERED
if(state == state.DeathMainMenu) {
g.drawImage(image,-100,0, null);
g.setColor(Color.blackred);
g.fillRect(0100, 0700, 100050, 80050);
g.drawString("YOU DIED! :(", 500,500);}
}
if(state == state.Escape) {
g.setColor(Color.blue);
g.fillRect(0, 0, 1000, 800);
g.setColor(Color.white);
g.drawString("YOU ESCAPED! :)", 500,500);
}
if(state == state.CharScreenDeath) {
g.setColor(Color.black);
g.fillRect(0,0,1000,1000);
g.setColor(Color.blue);
g.fillRect(200, 700, 50, 50);
g.setColor(Color.yellow);
g.fillRect(700, 200, 100, 50);
g.setColor(Color.green);
g.fillRect(700, 300, 100, 50);
g.setColor(Color.red);
g.fillRect(700, 400, 100, 50black);
g.setColor(Color.orange);
g.fillRect(7000, 5000, 1001000, 50800);
g.setColor(Color.white);
g.drawString("Day " + events.getDays(), 300, 100);
"YOU DIED! g.drawString:("Time " + events.getHours(), 300500, 200500);
typewriter.typeResult(g, events.result);
//g.drawString(events.result, 300, 300);
g.drawString("Distance: " + events.distance, 500, 200);
g.drawString("Health: " + events.getHealth(), 300, 400);
g.drawString("Sustenance: " + events.getSustenance(), 300, 500);
g.drawString("Sanity: " + events.getSanity(), 300, 600);
g.drawString("Exhaustion: " + events.getExhaustion(), 300, 700);}
}
if(state == state.CharScreen) {
g.setColor(Color.black);
g.fillRect(0,0,1000,1000);
g.setColor(Color.blue);
g.fillRect(200, 700, 50, 50);
g.setColor(Color.yellow);
g.fillRect(700, 200, 100, 50);
g.setColor(Color.green);
g.fillRect(700, 300, 100, 50);
g.setColor(Color.red);
g.fillRect(700, 400, 100, 50);
g.setColor(Color.orange);
g.fillRect(700, 500, 100, 50);
g.setColor(Color.white);
g.drawString("Day " + events.getDays(), 300, 100);
g.drawString("Time " + events.getHours(), 300, 200);
typewriter.typeResult(g, events.result);
//g.drawString(events.result, 300, 300);
g.drawString("Distance: " + events.distance, 500, 200);
g.drawString("Health: " + events.getHealth(), 300, 400);
g.drawString("Sustenance: " + events.getSustenance(), 300, 500);
g.drawString("Sanity: " + events.getSanity(), 300, 600);
g.drawString("Exhaustion: " + events.getExhaustion(), 300, 700);
}
g.dispose();
bs.show();
}
}
}