Files
Forlorn-Hope/src/player/Player.java
Mitch Weaver 464bda0b44 initial commit
2017-11-26 03:00:36 +01:00

63 lines
2.0 KiB
Java
Executable File

package player;
import static sjgs.core.jython.Jython.pi;
import static sjgs.utils.pyutils.PyUtils.java2py;
import java.awt.Graphics2D;
import org.python.core.PyFunction;
import org.python.core.PyObject;
import core.Main;
import jmp3.MP3Player;
import sjgs.base_objects.PlayerBase;
import sjgs.physics.structs.CollisionResponse;
public class Player extends PlayerBase {
public static final float WALKING_SPEED = Main.TILE_SIZE/6, JUMPING_SPEED = -Main.TILE_SIZE/2;
public static final float WIDTH = Main.TILE_SIZE, HEIGHT = Main.TILE_SIZE;
private boolean prone, lookingUp;
private final PyObject self;
private final int playerMaxHealth;
public Player(final float x, final float y) {
super(x, y, WIDTH, HEIGHT);
self = java2py(this);
playerMaxHealth = 7;
setHealth(playerMaxHealth);
}
@Override
protected void init() {}
@Override
public void tick() {
final CollisionResponse response = applyPhysics();
response.discard();
manageJumping();
runAnimations.__call__(self);
}
@Override
public void render(final Graphics2D g2d) { PlayerRenderer.render(this, g2d); }
@Override
protected void destroy() { removeFromHandler(); }
// ------------------------- GETTERS AND SETTERS ------------------------------------------------------------------------------//
public boolean getProne() { return prone; }
public boolean getLookingUp() { return lookingUp; }
public void setProne(final boolean prone) { this.prone = prone; }
public void setLookingUp(final boolean lookingUp) { this.lookingUp = lookingUp; }
public PyObject getSelf() { return self; }
// ------------------------ END GETTERS AND SETTERS ---------------------------------------------------------------------------//
public void jump() {
setVelY(Player.JUMPING_SPEED); setJumping(true);
MP3Player.play("/jump_sound.mp3");
}
public float getPlayerMaxHealth() { return playerMaxHealth; }
private static PyFunction runAnimations;
public static void createPyFuncs() { runAnimations = pi.get("run_player_animations", PyFunction.class); }
}