Skip to content

Commit 607f2d6

Browse files
committed
Added basic event handling code for the player class
Added a sprite for player being idle.
1 parent 6d05aef commit 607f2d6

File tree

5 files changed

+74
-15
lines changed

5 files changed

+74
-15
lines changed

src/bomberman/GameLoop.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public class GameLoop
99
{
1010
static double tickDuration;
1111
final static long startNanoTime = System.nanoTime();
12-
static Player player = new Player();
12+
public static Player player = new Player();
1313

1414
public static double getTickDuration() {
1515
return tickDuration;
@@ -23,7 +23,7 @@ public void handle(long currentNanoTime) {
2323
gc.clearRect(0, 0, 512, 512);
2424
player.draw();
2525
//Change this too see the different sprites and movement in action
26-
player.move(Direction.RIGHT);
26+
//player.move(Direction.RIGHT);
2727
}
2828
}.start();
2929
}

src/bomberman/Renderer.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ public static void playAnimation(GraphicsContext gc, double time, int actualSize
6161
int newSpriteSheetX = reversePlay ? startingPointX + index * actualSize : startingPointX;
6262
// newY represents the X coardinate of image in the spritesheet image to be drawn on screen
6363
int newSpriteSheetY = reversePlay ? startingPointY : startingPointY + index * actualSize;
64-
System.out.println("Time, Total Frames" + time + ", " + numberOfFrames);
65-
System.out.println("index=" + index + " newSpriteSheetX=" + newSpriteSheetX + " newSpriteSheetY=" + newSpriteSheetY + " width=" + width + " height=" + height + " x=" + x + " y=" + y + " width=" + width * scale + " height=" + height * scale);
64+
//System.out.println("Time, Total Frames" + time + ", " + numberOfFrames);
65+
//System.out.println("index=" + index + " newSpriteSheetX=" + newSpriteSheetX + " newSpriteSheetY=" + newSpriteSheetY + " width=" + width + " height=" + height + " x=" + x + " y=" + y + " width=" + width * scale + " height=" + height * scale);
6666
//img, sx, sy, w, h, dx, dy, dw, dh
6767
gc.drawImage(img, newSpriteSheetX, newSpriteSheetY, width, height, x, y, width * scale, height * scale);
6868
}

src/bomberman/animations/PlayerAnimations.java

+15-11
Original file line numberDiff line numberDiff line change
@@ -17,28 +17,32 @@ public class PlayerAnimations {
1717
Sprite moveLeft;
1818
Sprite moveUp;
1919
Sprite moveDown;
20-
21-
public PlayerAnimations (Entity e) {
22-
moveDown = new Sprite(e,30, 0.1, 3, 0, 0, GlobalConstants.PLAYER_WIDTH, GlobalConstants.PLAYER_HEIGHT, 2, false);
23-
moveLeft = new Sprite(e,30, 0.1, 30, 0, 3, GlobalConstants.PLAYER_WIDTH, GlobalConstants.PLAYER_HEIGHT, 2, false);
24-
moveUp = new Sprite(e,30, 0.1, 60, 0, 3, GlobalConstants.PLAYER_WIDTH-1.5, GlobalConstants.PLAYER_HEIGHT, 2, false);
25-
moveRight = new Sprite(e,30, 0.1, 90, 0, 3, GlobalConstants.PLAYER_WIDTH, GlobalConstants.PLAYER_HEIGHT, 2, false);
20+
Sprite idle;
21+
22+
public PlayerAnimations(Entity e) {
23+
moveDown = new Sprite(e, 30, 0.1, 0, 0, 3, GlobalConstants.PLAYER_WIDTH, GlobalConstants.PLAYER_HEIGHT, 2, false);
24+
moveLeft = new Sprite(e, 30, 0.1, 30, 0, 3, GlobalConstants.PLAYER_WIDTH, GlobalConstants.PLAYER_HEIGHT, 2, false);
25+
moveUp = new Sprite(e, 30, 0.1, 60, 0, 3, GlobalConstants.PLAYER_WIDTH - 1.5, GlobalConstants.PLAYER_HEIGHT, 2, false);
26+
moveRight = new Sprite(e, 30, 0.1, 90, 0, 3, GlobalConstants.PLAYER_WIDTH, GlobalConstants.PLAYER_HEIGHT, 2, false);
27+
idle = new Sprite(e, 30, 0.1,118, 0, 1, GlobalConstants.PLAYER_WIDTH + 2, GlobalConstants.PLAYER_HEIGHT, 2, false);
2628
}
2729

2830
public Sprite getMoveRightSprite() {
29-
return moveRight;
31+
return moveRight;
3032
}
3133

3234
public Sprite getMoveLeftSprite() {
33-
return moveLeft;
35+
return moveLeft;
3436
}
3537

3638
public Sprite getMoveUpSprite() {
37-
return moveUp;
39+
return moveUp;
3840
}
3941

4042
public Sprite getMoveDownSprite() {
41-
return moveDown;
43+
return moveDown;
44+
}
45+
public Sprite getPlayerIdleSprite(){
46+
return idle;
4247
}
43-
4448
}

src/bomberman/gamecontroller/EventHandler.java

+53
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,63 @@
55
*/
66
package bomberman.gamecontroller;
77

8+
import bomberman.GameLoop;
9+
import bomberman.constants.Direction;
10+
import bomberman.entity.player.Player;
11+
import bomberman.scenes.Sandbox;
12+
import com.sun.javafx.sg.prism.NGCanvas;
13+
import javafx.scene.Scene;
14+
import javafx.scene.input.KeyCode;
15+
import javafx.scene.input.KeyEvent;
16+
817
/**
918
*
1019
* @author ashish.padalkar
1120
*/
1221
public class EventHandler {
22+
public static char lastKeyPress;
23+
public static char lastKeyReleased;
24+
25+
public static void attachEventHandlers(Scene s){
26+
keyReleaseHanlder krh = new keyReleaseHanlder(GameLoop.player);
27+
keyPressedHandler kph = new keyPressedHandler(GameLoop.player);
28+
s.setOnKeyReleased(krh);
29+
s.setOnKeyPressed(kph);
30+
}
31+
}
32+
class keyReleaseHanlder implements javafx.event.EventHandler<KeyEvent>{
33+
Player player;
34+
35+
public keyReleaseHanlder(Player p) {
36+
this.player=p;
37+
}
38+
@Override
39+
public void handle(KeyEvent evt) {
40+
player.move(0,Direction.LEFT);
41+
System.out.println("The key released is : "+evt.getText()+" with keycode "+evt.getCode().getName());
42+
}
43+
}
44+
class keyPressedHandler implements javafx.event.EventHandler<KeyEvent>{
45+
Player player;
46+
47+
public keyPressedHandler(Player p) {
48+
this.player=p;
49+
}
1350

51+
@Override
52+
public void handle(KeyEvent evt) {
53+
System.out.println("The key pressed is : "+evt.getText()+" with keycode "+evt.getCode().getName());
54+
if(evt.getCode()==KeyCode.UP){
55+
player.move(5,Direction.UP);
56+
}
57+
if(evt.getCode()==KeyCode.DOWN){
58+
player.move(5,Direction.DOWN);
59+
}
60+
if(evt.getCode()==KeyCode.LEFT){
61+
player.move(5,Direction.LEFT);
62+
}
63+
if(evt.getCode()==KeyCode.RIGHT){
64+
player.move(5,Direction.RIGHT);
65+
}
66+
}
1467
}

src/bomberman/scenes/Sandbox.java

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
import bomberman.GameLoop;
1414
import bomberman.Renderer;
15+
import bomberman.gamecontroller.EventHandler;
1516
import javafx.scene.Group;
1617
import javafx.scene.Scene;
1718
import javafx.scene.canvas.Canvas;
@@ -43,6 +44,7 @@ private static void init() {
4344
gc.setStroke(Color.BLUE);
4445
gc.setLineWidth(2);
4546
gc.setFill(Color.BLUE);
47+
EventHandler.attachEventHandlers(s);
4648
Renderer.init();
4749
GameLoop.start(gc);
4850
}

0 commit comments

Comments
 (0)