// Player.java
import javax.swing.*;
import java.awt.*;
public class Player extends Renderer
{
private final int ground = 425;
private final int walkingSpeed = 10;
private final int jumpForce = 10;
private final int gravity = 1;
private int x = 0;
private int y = ground;
private int speedX = 0;
private int speedY = 0;
private int kogelsnelheidl;
private int kogelsnelheidr;
private int x1 = x;
private int y1= y;
private boolean isLookingLeft = false;
private String state = "standing";
private Image[] left;
private Image[] right;
private Image[] trekkenr;
private Image[] trekkenl;
private Image[] shootingl;
private Image[] shootingr;
private Image talkingr;
private Image talkingl;
private Image currentImage;
private Image down;
private Image kogell;
private Image kogelr;
private String pad;
private int animationFrame = 0;
private int animationFrame2 = 0;
private int animationFrame3 = 0;
public void init()
{
pad ="D:\\java\\game\\src\\";
trekkenr = new Image[8];
trekkenr[0] = loadImage(pad + "trekken1r.png");
trekkenr[1] = loadImage(pad + "trekken1r.png");
trekkenr[2] = loadImage(pad + "trekken2r.png");
trekkenr[3] = loadImage(pad + "trekken2r.png");
trekkenr[4] = loadImage(pad + "trekken3r.png");
trekkenr[5] = loadImage(pad + "trekken3r.png");
trekkenr[6] = loadImage(pad + "trekken4r.png");
trekkenr[7] = loadImage(pad + "trekken4r.png");
trekkenl = new Image[8];
trekkenl[0] = loadImage(pad + "trekken1l.png");
trekkenl[1] = loadImage(pad + "trekken1l.png");
trekkenl[2] = loadImage(pad + "trekken2l.png");
trekkenl[3] = loadImage(pad + "trekken2l.png");
trekkenl[4] = loadImage(pad + "trekken3l.png");
trekkenl[5] = loadImage(pad + "trekken3l.png");
trekkenl[6] = loadImage(pad + "trekken4l.png");
trekkenl[7] = loadImage(pad + "trekken4l.png");
shootingl = new Image[8];
shootingl[0] = loadImage(pad + "schieten1l.png");
shootingl[1] = loadImage(pad + "schieten1l.png");
shootingl[2] = loadImage(pad + "schieten1l.png");
shootingl[3] = loadImage(pad + "schieten1l.png");
shootingl[4] = loadImage(pad + "schieten2l.png");
shootingl[5] = loadImage(pad + "schieten2l.png");
shootingl[6] = loadImage(pad + "schieten2l.png");
shootingl[7] = loadImage(pad + "schieten2l.png");
shootingr = new Image[8];
shootingr[0] = loadImage(pad + "schieten1r.png");
shootingr[1] = loadImage(pad + "schieten1r.png");
shootingr[2] = loadImage(pad + "schieten1r.png");
shootingr[3] = loadImage(pad + "schieten1r.png");
shootingr[4] = loadImage(pad + "schieten2r.png");
shootingr[5] = loadImage(pad + "schieten2r.png");
shootingr[6] = loadImage(pad + "schieten2r.png");
shootingr[7] = loadImage(pad + "schieten2r.png");
left = new Image[4];
left[0] = loadImage(pad + "1l.png");
left[1] = loadImage(pad + "2l.png");
left[2] = loadImage(pad + "3l.png");
left[3] = loadImage(pad + "4l.png");
right = new Image[4];
right[0] = loadImage(pad + "1r.png");
right[1] = loadImage(pad + "2r.png");
right[2] = loadImage(pad + "3r.png");
right[3] = loadImage(pad + "4r.png");
down = loadImage(pad + "down.png");
kogell = loadImage(pad + "kogell.png");
kogelr = loadImage(pad + "kogelr.png");
talkingr = loadImage(pad + "talkingr.png");
talkingl = loadImage(pad + "talkingl.png");
currentImage = right[3];
}
public void update(Keyboard keyboard)
{
if (x <= 0)
{
x = 0;
}
if (x >= 565)
{
x = 565;
}
if (keyboard.isDown("left"))
{
speedX = -walkingSpeed;
isLookingLeft = true;
x += speedX;
state = "walking";
}
if (keyboard.isDown("right"))
{
speedX = walkingSpeed;
isLookingLeft = false;
x += speedX;
state = "walking";
}
if (keyboard.isDown("up"))
{
if (y == ground)
{
speedY = jumpForce;
currentImage = right[2];
}
}
if (keyboard.isDown("enter"))
{
state = "talking";
}
if (keyboard.isReleased("enter"))
{
state ="standing";
}
if (keyboard.isDown("f1"))
{
state ="trekken";
}
if (keyboard.isPressed("space"))
{
speedX = 0;
state ="shooting";
}
if (keyboard.isReleased("space"))
{
x1 = x;
state ="standing";
}
if (keyboard.isReleased("right") & (state.equals("walking")))
{
state = "standing";
}
if (keyboard.isReleased("left") & (state.equals("walking")))
{
state = "standing";
}
if (keyboard.isReleased("f1"))
{
state ="standing";
}
y -= speedY;
if (y >= ground)
{
speedY = 0;
y = ground;
}
else
{
speedY -= gravity;
}
}
public void render()
{
// x = y as naar scherm schrijve
String x2;
x2 = Integer.toString(x);
drawString("x: "+x2, 10,20);
String y2;
y2 = Integer.toString(y);
drawString("y: "+y2, 50,20);
//stances
if (state.equals("talking"))
{
if (isLookingLeft)
{
currentImage = talkingl;
}
else
{
currentImage = talkingr;
}
}
if (state.equals("standing"))
{
if (isLookingLeft)
{
currentImage = left[3];
}
else
{
currentImage = right[3];
}
}
if (state.equals("walking"))
{
if (isLookingLeft)
{
currentImage = left[animationFrame];
}
else
{
currentImage = right[animationFrame];
}
animationFrame++;
if (animationFrame > 3)
{
animationFrame = 0;
}
}
if (state.equals("trekken"))
{
if (isLookingLeft)
{
if (y >= ground)
{
currentImage = trekkenl[animationFrame2];
}
}
else
{
if (y >= ground)
{
currentImage = trekkenr[animationFrame2];
}
}
animationFrame2++;
if (animationFrame2 > 7)
{
animationFrame2 = 0;
}
}
if (state.equals("shooting"))
{
if (isLookingLeft)
{
if (x1 <= 0)
{
x1 = x;
}
}
else
{
if (x1 >= 640)
{
x1 = x;
}
}
if (isLookingLeft)
{
if (y >= ground)
{
currentImage = shootingl[animationFrame3];
drawImage(kogell, x1 +10, y1+29);
kogelsnelheidl= -30 ;
x1 += kogelsnelheidl;
y1 = y;
}
}
else
{
if (y >= ground)
{
currentImage = shootingr[animationFrame3];
drawImage(kogelr, x1 +82, y1+29);
kogelsnelheidr = +30 ;
x1 += kogelsnelheidr;
y1 = y;
}
}
animationFrame3++;
if (animationFrame3 > 7)
{
animationFrame3 = 0;
}
}
drawImage(currentImage, x , y);
}
}