From d478bdab581da976b2679745618aec71ef452f9d Mon Sep 17 00:00:00 2001 From: Chara1236 Date: Sun, 19 Jun 2022 17:23:27 -0400 Subject: [PATCH] I think Im finished Fireballs --- img/misc/flame/flameDown.png | Bin 0 -> 340 bytes img/misc/flame/flameRight.png | Bin 0 -> 299 bytes img/misc/flame/flameUp.png | Bin 0 -> 321 bytes img/tiles/boxes/boxShootDown.png | Bin 0 -> 1812 bytes img/tiles/boxes/boxShootLeft.png | Bin 0 -> 1376 bytes img/tiles/boxes/boxShootRight.png | Bin 0 -> 1370 bytes .../{boxExplosive.png => boxShootUp.png} | Bin saves/Level1.txt | 8 +++--- src/FireBall.java | 14 +++++++--- src/GamePanel.java | 24 +++++++++++++++--- src/GenericSprite.java | 2 +- src/LevelManager.java | 1 + src/MapReader.java | 15 ++++++++++- src/Player.java | 16 ++++++++---- 14 files changed, 63 insertions(+), 17 deletions(-) create mode 100644 img/misc/flame/flameDown.png create mode 100644 img/misc/flame/flameRight.png create mode 100644 img/misc/flame/flameUp.png create mode 100644 img/tiles/boxes/boxShootDown.png create mode 100644 img/tiles/boxes/boxShootLeft.png create mode 100644 img/tiles/boxes/boxShootRight.png rename img/tiles/boxes/{boxExplosive.png => boxShootUp.png} (100%) diff --git a/img/misc/flame/flameDown.png b/img/misc/flame/flameDown.png new file mode 100644 index 0000000000000000000000000000000000000000..860d6c95242d718056ee24fbd42c05d0147def46 GIT binary patch literal 340 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 literal 0 HcmV?d00001 diff --git a/img/tiles/boxes/boxExplosive.png b/img/tiles/boxes/boxShootUp.png similarity index 100% rename from img/tiles/boxes/boxExplosive.png rename to img/tiles/boxes/boxShootUp.png diff --git a/saves/Level1.txt b/saves/Level1.txt index da9ae01..f7ee114 100644 --- a/saves/Level1.txt +++ b/saves/Level1.txt @@ -7,12 +7,12 @@ sssssssssssssssssd 1 1lllllllll1 1 1 sssssssssssssssssd 1 sssssssssssssssssd qe qe - qwe ad ! ad qre - a d qwe qwe atwwwrd qwwwwwwellllqwwwwwwwe ad -sssssssssssssssssd zxc asd asd zxxxxxc zxxxxxxxllllxxxxxxxxc ad + u qwe ad ! ad qre + h k a d qwe qwe atwwwrd qwwwwwwellllqwwwwwwwe ad +sssssssssssssssssd m zxc asd asd zxxxxxc zxxxxxxxllllxxxxxxxxc ad sssssssssssssssssd 1 zxc zxc vvvvvvvvwwwwvvvvvvvvv ad sssssssssssssssssd qe vvvvvvvvvvvvvvvvvvvvv ad sssssssssssssssssdlllllad 2 qwwwwwwwwe vvvvvvvvvvvvvvvvvvvvv ad sssssssssssssssssdlllllad bbb s qrsssslssstwe vvvvvvvvvvvvvvvvvvvvv ad -sssssssssssssssssdllllladbb s ooqwwrssssllssssstwe ! b h !!! qwe vvvvvvvvvvvvvvvvvvvvv + ad +sssssssssssssssssdllllladbb s ooqwwrssssllssssstwe ! b h !!! qwek vvvvvvvvvvvvvvvvvvvvv + ad ssssssssssssssssstwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwrsssssssssssssssstwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwrstwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww3 \ No newline at end of file diff --git a/src/FireBall.java b/src/FireBall.java index f40b0bd..4ff74f2 100644 --- a/src/FireBall.java +++ b/src/FireBall.java @@ -7,14 +7,19 @@ public class FireBall extends GenericSprite{ public boolean dead; - public static final int height = 8; - public static final int width = 16; - public FireBall(int x, int y, int xv, int yv, String dir) { + + public FireBall(int x, int y, int xv, int yv, String dir,int height, int width) { super(x, y, height, width); xVelocity = xv; yVelocity = yv; if(dir.equals("left")){ spritePath = "img/misc/flame/flameLeft.png"; + } else if(dir.equals("right")){ + spritePath = "img/misc/flame/flameRight.png"; + } else if(dir.equals("up")){ + spritePath = "img/misc/flame/flameUp.png"; + } else if(dir.equals("down")){ + spritePath = "img/misc/flame/flameDown.png"; } realX = 0; dead = false; @@ -42,6 +47,9 @@ public class FireBall extends GenericSprite{ dead = true; GameFrame.game.player.reset(); } +// if(y<0||y>GameFrame.game.HEIGHT){ +// dead = true; +// } } public void draw(Graphics g) throws IOException { g.drawImage(GamePanel.getImage(spritePath),x-GameFrame.game.camera.x,y,null); diff --git a/src/GamePanel.java b/src/GamePanel.java index 633344b..747024b 100644 --- a/src/GamePanel.java +++ b/src/GamePanel.java @@ -180,7 +180,13 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ if (mouseAlreadyTranslated) { mouseAlreadyTranslated = false; } else if (!isDialogue && !isPaused) { - player.mouseReleased(e); + try { + player.mouseReleased(e); + } catch (IOException ex) { + throw new RuntimeException(ex); + } catch (SpriteException ex) { + throw new RuntimeException(ex); + } } } @@ -189,7 +195,13 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ }); addMouseMotionListener(new MouseAdapter() { public void mouseDragged(MouseEvent e) { - player.mouseDragged(e); + try { + player.mouseDragged(e); + } catch (IOException ex) { + throw new RuntimeException(ex); + } catch (SpriteException ex) { + throw new RuntimeException(ex); + } } public void mouseMoved(MouseEvent e) { player.mouseMoved(e); @@ -467,7 +479,13 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ public void updateShootingBlock(){ for(Tile i: shootingTiles){ if(i.shootingDir.equals("left")){ - fireballs.add(new FireBall(i.x-20,i.y+Tile.length/2-FireBall.height/2,-fireballSpeed,0,"left")); + fireballs.add(new FireBall(i.x-20,i.y+Tile.length/2-4,-fireballSpeed,0,"left",8,16)); + } else if(i.shootingDir.equals("up")){ + fireballs.add(new FireBall(i.x+Tile.length/2,i.y-20,0,-fireballSpeed,"up",16,8)); + } else if(i.shootingDir.equals("right")){ + fireballs.add(new FireBall(i.x+Tile.length+20,i.y+Tile.length/2-4,fireballSpeed,0,"right",8,16)); + } else if(i.shootingDir.equals("down")){ + fireballs.add(new FireBall(i.x+Tile.length/2,i.y+Tile.length+10,0,fireballSpeed,"down",16,8)); } } } diff --git a/src/GenericSprite.java b/src/GenericSprite.java index bb611ba..0c92354 100644 --- a/src/GenericSprite.java +++ b/src/GenericSprite.java @@ -54,7 +54,7 @@ public class GenericSprite extends Rectangle implements Serializable { } - public void mouseReleased(MouseEvent e) { + public void mouseReleased(MouseEvent e) throws IOException, SpriteException { } public void move() throws IOException { diff --git a/src/LevelManager.java b/src/LevelManager.java index 688af19..da59017 100644 --- a/src/LevelManager.java +++ b/src/LevelManager.java @@ -16,6 +16,7 @@ public class LevelManager implements Serializable { public static int bombs; public static void setLevel(int level){ GameFrame.game.bombs.clear(); + GameFrame.game.fireballs.clear(); GameFrame.game.player.yVelocity = 0; GameFrame.game.player.xVelocity = 0; LevelManager.level = level; diff --git a/src/MapReader.java b/src/MapReader.java index 6107da2..25bfc21 100644 --- a/src/MapReader.java +++ b/src/MapReader.java @@ -31,6 +31,7 @@ public class MapReader implements Serializable { GameFrame.game.enemy.clear(); GameFrame.game.particleTiles.clear(); GameFrame.game.shootingTiles.clear(); + GameFrame.game.fireballs.clear(); for(int i=0; i