63 lines
2.0 KiB
Java
Executable File
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); }
|
|
}
|