package com.thecherno.cherno; import java.awt.event.KeyEvent; import com.thecherno.cherno.engine.Cherno; import com.thecherno.cherno.engine.GrassTile; import com.thecherno.cherno.engine.RockTile; import com.thecherno.cherno.engine.State; import com.thecherno.cherno.engine.audio.Sound; import com.thecherno.cherno.engine.graphics.Color; import com.thecherno.cherno.engine.graphics.Sprite; import com.thecherno.cherno.engine.graphics.Texture; import com.thecherno.cherno.engine.input.Keyboard; import com.thecherno.cherno.engine.input.Mouse; import com.thecherno.cherno.engine.interfaces.Action; import com.thecherno.cherno.engine.level.TiledLevel; import com.thecherno.cherno.engine.menu.Menu; import com.thecherno.cherno.engine.menu.MenuOption; public class Main extends Cherno { private int x = 50, y = 50; private int mx, my; private TiledLevel test; private Player player; private Sprite grass, rock; private Menu menu = new Menu(new MenuOption[] { new MenuOption("Play", new Action() { public void action() { State.setState(State.GAME); } }), new MenuOption("Options", null), new MenuOption("About", null), new MenuOption("Quit", new Action() { public void action() { System.exit(0); } }) }); private void levels() { test = new TiledLevel("res/levels/level.png"); test.addTileCode(0xffffff, new GrassTile(grass.getWidth(), grass.getHeight(), grass)); test.setTileSize(32); test.addTileCode(0xff00ff, new RockTile(rock)); test.add(player); } protected void init() { grass = new Sprite(Texture.load("res/grass.png")); rock = new Sprite(Texture.load("res/rock.png")); player = new Player(); levels(); createDisplay("Cherno 0.1a", 960, 540, 2.0); setInput(KEYBOARD | MOUSE); start(); State.setState(State.MENU); } Sound sound = new Sound("res/Test.wav"); protected void update() { mx = Mouse.getX(); my = Mouse.getY(); if (Keyboard.keyPressed(KeyEvent.VK_UP)) y--; if (Keyboard.keyPressed(KeyEvent.VK_DOWN)) y++; if (Keyboard.keyPressed(KeyEvent.VK_LEFT)) x--; if (Keyboard.keyPressed(KeyEvent.VK_RIGHT)) x++; if (State.getState() == State.GAME) { if (Keyboard.keyTyped(KeyEvent.VK_ESCAPE)) State.setState(State.MENU); } if (Keyboard.keyTyped(KeyEvent.VK_S)) { sound.loop(); } if (Keyboard.keyTyped(KeyEvent.VK_Q)) { sound.play(); } if (Keyboard.keyTyped(KeyEvent.VK_A)) { sound.stop(); } menu.update(); test.setOffset(player.getX() - 960 / 8, player.getY() - 540 / 8); test.update(); } protected void render() { clear(Color.WHITE); if (State.getState() == State.GAME) { render(0, 0, test); } else if (State.getState() == State.MENU) { fillRect(0, 0, 960, 540, new Color(0xff00ff)); screen.render(mx, my, grass); menu.render(50, 50, screen); } show(); } public static void main(String[] args) { Main main = new Main(); main.init(); } }