mirror of
https://github.com/Klagarge/PokeHES.git
synced 2024-11-30 04:33:27 +00:00
commit
32636500d0
26
src/Control/Keyboard.java
Normal file
26
src/Control/Keyboard.java
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
package Control;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.Input;
|
||||||
|
|
||||||
|
import Screen.ScreenPlayer;
|
||||||
|
|
||||||
|
public class Keyboard {
|
||||||
|
public void keyDown(int keycode, ScreenPlayer sp, Controller c) {
|
||||||
|
switch (keycode) {
|
||||||
|
case Input.Keys.Z:
|
||||||
|
if (sp.sm.zoom == 1.0) {
|
||||||
|
sp.sm.zoom = 0.5f;
|
||||||
|
} else {
|
||||||
|
sp.sm.zoom = 1;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
c.keyStatus.put(keycode, true);
|
||||||
|
}
|
||||||
|
public void onKeyUp(int keycode, ScreenPlayer sp, Controller c) {
|
||||||
|
c.keyStatus.put(keycode, false);
|
||||||
|
}
|
||||||
|
}
|
@ -32,6 +32,14 @@ public abstract class Character extends Entity{
|
|||||||
|
|
||||||
protected int pv;
|
protected int pv;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a character on the world
|
||||||
|
* @param name Name of the new character
|
||||||
|
* @param x initial x position
|
||||||
|
* @param y initial y position
|
||||||
|
* @param img the name of the spritesheet for this character
|
||||||
|
* @param map the initial map
|
||||||
|
*/
|
||||||
public Character(String name, int x, int y, String img, String map){
|
public Character(String name, int x, int y, String img, String map){
|
||||||
super(name, x, y, map);
|
super(name, x, y, map);
|
||||||
this.img = img;
|
this.img = img;
|
||||||
@ -87,7 +95,7 @@ public abstract class Character extends Entity{
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param speed The new speed of the hero.
|
* @param speed The new speed of the character.
|
||||||
*/
|
*/
|
||||||
public void setSpeed(float speed){
|
public void setSpeed(float speed){
|
||||||
this.speed = speed;
|
this.speed = speed;
|
||||||
|
@ -22,10 +22,23 @@ public abstract class Entity implements DrawableObject {
|
|||||||
protected boolean move = false;
|
protected boolean move = false;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an entity
|
||||||
|
* @param name The name of this new entity
|
||||||
|
* @param x The initial x position
|
||||||
|
* @param y The initial y position
|
||||||
|
* @param map The initial map
|
||||||
|
*/
|
||||||
public Entity(String name, int x, int y, String map){
|
public Entity(String name, int x, int y, String map){
|
||||||
this(name, new Vector2(SPRITE_WIDTH * x, SPRITE_HEIGHT * y), map);
|
this(name, new Vector2(SPRITE_WIDTH * x, SPRITE_HEIGHT * y), map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an entity
|
||||||
|
* @param name The name of this new entity
|
||||||
|
* @param initialPosition The initial position by a Vector2
|
||||||
|
* @param map The initial map
|
||||||
|
*/
|
||||||
public Entity(String name, Vector2 initialPosition, String map){
|
public Entity(String name, Vector2 initialPosition, String map){
|
||||||
this.name = name;
|
this.name = name;
|
||||||
lastPosition = new Vector2(initialPosition);
|
lastPosition = new Vector2(initialPosition);
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package Entity;
|
package Entity;
|
||||||
|
|
||||||
import java.util.TreeMap;
|
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
|
|
||||||
import com.badlogic.gdx.Input;
|
import com.badlogic.gdx.Input;
|
||||||
@ -57,7 +56,7 @@ public class Player extends Character{
|
|||||||
if (sm.isWalkable(nextCell)) {
|
if (sm.isWalkable(nextCell)) {
|
||||||
|
|
||||||
if (enemy(sm, nextPos)) {
|
if (enemy(sm, nextPos)) {
|
||||||
//turn(goalDirection);
|
turn(goalDirection);
|
||||||
System.out.println("It's a enemy !!");
|
System.out.println("It's a enemy !!");
|
||||||
} else {
|
} else {
|
||||||
setSpeed(sm.getSpeed(nextCell));
|
setSpeed(sm.getSpeed(nextCell));
|
||||||
@ -95,7 +94,7 @@ public class Player extends Character{
|
|||||||
int pY = (int) nextPos.y/sm.tileHeight;
|
int pY = (int) nextPos.y/sm.tileHeight;
|
||||||
int eX = (int) enemy.position.x/sm.tileWidth;
|
int eX = (int) enemy.position.x/sm.tileWidth;
|
||||||
int eY = (int) enemy.position.y/sm.tileHeight;
|
int eY = (int) enemy.position.y/sm.tileHeight;
|
||||||
//System.out.println("Player: " + pX + " x " + pY + " - Enemy: " + eX + " x " + eY);
|
|
||||||
if(bMap && pX==eX && pY==eY) {
|
if(bMap && pX==eX && pY==eY) {
|
||||||
lastEnemy = enemy;
|
lastEnemy = enemy;
|
||||||
frontOfEnemy = true;
|
frontOfEnemy = true;
|
||||||
|
@ -2,10 +2,7 @@ package Main;
|
|||||||
|
|
||||||
|
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
import java.util.Map.Entry;
|
|
||||||
|
|
||||||
import com.badlogic.gdx.Input;
|
import com.badlogic.gdx.Input;
|
||||||
|
|
||||||
import Control.Controller;
|
import Control.Controller;
|
||||||
import Entity.Enemy;
|
import Entity.Enemy;
|
||||||
import Entity.Entity;
|
import Entity.Entity;
|
||||||
@ -40,29 +37,34 @@ public class PokeMudry extends PortableApplication {
|
|||||||
public void onInit() {
|
public void onInit() {
|
||||||
sp.init();
|
sp.init();
|
||||||
controller.init();
|
controller.init();
|
||||||
|
|
||||||
|
// add player, create and add all enemies in entities
|
||||||
entities.add((Entity) sp.p);
|
entities.add((Entity) sp.p);
|
||||||
enemies.add(new Enemy("Mudry", 10, 15, "lumberjack_sheet32", "desert"));
|
enemies.add(new Enemy("Mudry", 10, 15, "lumberjack_sheet32", "desert"));
|
||||||
enemies.add(new Enemy("Pignat", 5, 1, "lumberjack_sheet32", "test"));
|
enemies.add(new Enemy("Pignat", 5, 1, "lumberjack_sheet32", "test"));
|
||||||
|
|
||||||
for (Enemy enemy : enemies) { entities.add(enemy); }
|
for (Enemy enemy : enemies) { entities.add(enemy); }
|
||||||
|
|
||||||
|
//Init all entities
|
||||||
for (Entity entity : entities) { entity.init(); }
|
for (Entity entity : entities) { entity.init(); }
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onGraphicRender(GdxGraphics g) {
|
public void onGraphicRender(GdxGraphics g) {
|
||||||
g.clear();
|
g.clear();
|
||||||
sp.p.manageEntity(sp.sm, controller);
|
|
||||||
sp.render(g);
|
|
||||||
System.out.println(sp.screenManager.getActiveScreen().getClass());
|
|
||||||
//System.out.println(ScreenMap.class);
|
|
||||||
for (Entity entity : entities) {
|
|
||||||
|
|
||||||
if (entity.getMap().equals(sp.sm.map) && sp.screenManager.getActiveScreen().getClass().equals(ScreenMap.class))
|
boolean onMapScreen = sp.screenManager.getActiveScreen().getClass().equals(ScreenMap.class);
|
||||||
|
|
||||||
|
if(onMapScreen) sp.p.manageEntity(sp.sm, controller);
|
||||||
|
sp.render(g);
|
||||||
|
|
||||||
|
for (Entity entity : entities) {
|
||||||
|
// Render only entities on the good map
|
||||||
|
if (entity.getMap().equals(sp.sm.map) && onMapScreen)
|
||||||
entity.graphicRender(g);
|
entity.graphicRender(g);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sp.p.frontOfEnemy && sp.screenManager.getActiveScreen().getClass().equals(ScreenMap.class)){
|
// Switch screen
|
||||||
|
if (sp.p.frontOfEnemy && onMapScreen){
|
||||||
sp.e = sp.p.lastEnemy;
|
sp.e = sp.p.lastEnemy;
|
||||||
System.out.println("switch screen");
|
System.out.println("switch screen");
|
||||||
sp.screenManager.activateNextScreen();
|
sp.screenManager.activateNextScreen();
|
||||||
|
@ -27,7 +27,7 @@ public class ScreenMap extends RenderingScreen{
|
|||||||
private MapObjects doors;
|
private MapObjects doors;
|
||||||
Map<String,TiledMap> tMap = new TreeMap<String,TiledMap>();
|
Map<String,TiledMap> tMap = new TreeMap<String,TiledMap>();
|
||||||
Map<String,TiledMapRenderer> tMapRenderer = new TreeMap<String,TiledMapRenderer>();
|
Map<String,TiledMapRenderer> tMapRenderer = new TreeMap<String,TiledMapRenderer>();
|
||||||
public String map = "test_couloir";
|
public String map;
|
||||||
public float zoom;
|
public float zoom;
|
||||||
private int width;
|
private int width;
|
||||||
public int tileWidth;
|
public int tileWidth;
|
||||||
@ -35,8 +35,6 @@ public class ScreenMap extends RenderingScreen{
|
|||||||
public int tileHeight;
|
public int tileHeight;
|
||||||
private Player player;
|
private Player player;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void createMap(String name){
|
private void createMap(String name){
|
||||||
TiledMap tm =new TmxMapLoader().load("./resources/map/"+ name + ".tmx");
|
TiledMap tm =new TmxMapLoader().load("./resources/map/"+ name + ".tmx");
|
||||||
tMap.put(name,tm);
|
tMap.put(name,tm);
|
||||||
@ -79,12 +77,9 @@ public class ScreenMap extends RenderingScreen{
|
|||||||
|
|
||||||
|
|
||||||
// Render the tileMap
|
// Render the tileMap
|
||||||
try {
|
|
||||||
g.zoom(zoom);
|
g.zoom(zoom);
|
||||||
g.moveCamera(player.getPosition().x, player.getPosition().y, width * tileWidth, height * tileHeight);
|
try {g.moveCamera(player.getPosition().x, player.getPosition().y, width * tileWidth, height * tileHeight);}
|
||||||
} catch (Exception e) {
|
catch (Exception e) {System.out.println("Fail to move camera");}
|
||||||
//TODO: handle exception
|
|
||||||
}
|
|
||||||
|
|
||||||
tMapRenderer.get(map).setView(g.getCamera());
|
tMapRenderer.get(map).setView(g.getCamera());
|
||||||
tMapRenderer.get(map).render();
|
tMapRenderer.get(map).render();
|
||||||
|
@ -12,7 +12,11 @@ public class ScreenPlayer {
|
|||||||
public ScreenBattle sb;
|
public ScreenBattle sb;
|
||||||
|
|
||||||
public void init(){
|
public void init(){
|
||||||
|
|
||||||
|
// One player by ScreenPlayer
|
||||||
p = new Player(8, 15, "desert");
|
p = new Player(8, 15, "desert");
|
||||||
|
|
||||||
|
// Create both type of screen and record for reuse
|
||||||
screenManager.registerScreen(ScreenMap.class);
|
screenManager.registerScreen(ScreenMap.class);
|
||||||
screenManager.registerScreen(ScreenBattle.class);
|
screenManager.registerScreen(ScreenBattle.class);
|
||||||
sb = screenManager.getScreenBattle();
|
sb = screenManager.getScreenBattle();
|
||||||
|
Loading…
Reference in New Issue
Block a user