master
Chara1236 2022-06-17 21:39:14 -04:00
parent 5080aeb539
commit ae4e8906fb
4 changed files with 34 additions and 7 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -1,14 +1,22 @@
import java.awt.*;
import java.io.IOException;
public class FireBall extends GenericSprite{
public FireBall(int x, int y, int height, int width, int xv, int yv) {
public String spritePath;
public FireBall(int x, int y, int height, int width, int xv, int yv, String dir) {
super(x, y, height, width);
xVelocity = xv;
yVelocity = yv;
if(dir.equals("left")){
spritePath = "src/img/misc/flame/flameLeft.png";
}
}
public void draw(Graphics g){
public void move(){
x += xVelocity;
y += yVelocity;
}
public void draw(Graphics g) throws IOException {
g.drawImage(GamePanel.getImage(spritePath),x-GameFrame.game.camera.x,y,null);
}
}

View File

@ -61,6 +61,8 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ
public ArrayList<Tile>particleTiles = new ArrayList<Tile>();
public ArrayList<Tile>shootingTiles = new ArrayList<Tile>();
public ArrayList<FireBall>fireballs = new ArrayList<FireBall>();
public ArrayList<NonPlayer>enemy = new ArrayList<NonPlayer>();
public ArrayList<StickyBomb>bombs = new ArrayList<>();
public BombDirectionShow bombDir = null;
@ -319,6 +321,11 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ
particles.get(i).move();
}
}
for(int i=0; i<fireballs.size(); i++){
if(fireballs.get(i)!=null){
fireballs.get(i).move();
}
}
}
//handles all collision detection and responds accordingly
@ -376,12 +383,13 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ
double ns = 1000000000/amountOfTicks;
double delta = 0;
long now;
int fireballCounter = 0;
while(true){ //this is the infinite game loop
now = System.nanoTime();
delta = delta + (now-lastTime)/ns;
lastTime = now;
if(fireballCounter<0){fireballCounter = 20;}
fireballCounter--;
//only move objects around and update screen if enough time has passed
if(delta >= 1){
if ((!isPaused && !isDialogue) && MenuPanel.gameStart) {
@ -393,6 +401,9 @@ public class GamePanel extends JPanel implements Runnable, KeyListener, Serializ
}
checkCollision();
updateEnemy();
if(fireballCounter == 0) {
updateShootingBlock();
}
try {
updateParticle();
} catch (IOException e) {
@ -433,6 +444,14 @@ 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,i.y,80,41,-1,0))
}
}
}
public void updateParticle() throws IOException {
if(particles.size()<10) {
for (int i = 0; i < particleTiles.size(); i++) {

View File

@ -109,7 +109,7 @@ public class GenericSprite extends Rectangle implements Serializable {
}
//called frequently from the GamePanel class
//draws the current location of the ball to the screen
public void draw(Graphics g){
public void draw(Graphics g) throws IOException {
}