master
John 2022-06-20 19:09:22 -07:00
parent 69e18a53a8
commit 5f9491b2ef
6 changed files with 24 additions and 17 deletions

Binary file not shown.

View File

@ -45,7 +45,7 @@ public class LevelManager implements Serializable {
xSpawn = -1100;
ySpawn = 460;
filePath = "saves/Level4.txt";
bombs = 5;
bombs = 6;
} else if(level == 5){
//-1100/460
xSpawn = -1100;
@ -105,8 +105,6 @@ public class LevelManager implements Serializable {
} catch (IOException | SpriteException | UnsupportedAudioFileException | LineUnavailableException e) {
throw new RuntimeException(e);
}
//GamePanel.player.reset();
//System.out.println("done111");
}

View File

@ -1,13 +1,22 @@
// Eric Li, Charlie Zhao, ICS4U, Finished 5/30/2022
/* Main class starts the game
All it does is run the constructor in GameFrame class
/* Main class starts the game, suppresses all output to console
This also runs the constructor in GameFrame class
This is a common technique among coders to keep things organized (and handy when coding in repl.it since we're forced to call a class Main, which isn't always very descriptive)
*/
import java.io.OutputStream;
import java.io.PrintStream;
class Main {
public static void main(String[] args) {
System.setOut(new PrintStream(new OutputStream() {
public void write(int b) {
// does nothing
}
}));
new GameFrame();
}

View File

@ -182,6 +182,9 @@ public class MenuPanel extends JPanel implements Runnable, KeyListener{
// if the user presses "New Game", reset GamePanel and navigate to it
if (textBoxArray.get(currentBox).id.equals("game-start")) {
try {
// temporary variable so was not declared earlier
// save middleware array to re-add after game is created again
ArrayList<Middleware> oldMiddlewareArray = (ArrayList<Middleware>)GameFrame.game.middlewareArray.clone();
// remove the old GamePanel from the CardLayout CameraPanel
GameFrame.main.remove(GameFrame.game);
// stop the run() while loop, effectively killing the thread
@ -192,6 +195,8 @@ public class MenuPanel extends JPanel implements Runnable, KeyListener{
// reset the tile map to prevent race conditions
GameFrame.game.map = new Tile[1000][18];
GameFrame.game = new GamePanel(GameFrame.main); //run GamePanel constructor
// readd middleware array
GameFrame.game.middlewareArray = oldMiddlewareArray;
// make it so that the game can be resumed if the player leaves
GameFrame.game.isContinue = true;
textBoxArray.add(continueGame);

View File

@ -203,7 +203,7 @@ public class Player extends GenericSprite {
if(GameFrame.game.map[x][y]!=null&&!GameFrame.game.map[x][y].replaceAble){canPlaceSteel = false; return;}
//If you can't reach an area because of blocks in the way, you can't place.
if(!canReach(xx,yy)){canPlaceSteel = false; return;};
if(!canReach(xx,yy)){canPlaceSteel = false;}
}
@ -220,7 +220,7 @@ public class Player extends GenericSprite {
}
//Stops player from glitching into corner
if(canUpdate(xVelocity, 0)&&canUpdate(0, yVelocity)&&!canUpdate(xVelocity, yVelocity)){
GameFrame.game.camera.x += -Math.signum(xVelocity);
GameFrame.game.camera.x -= Math.signum(xVelocity);
}
//Prevents player from passing tiles in the x-direction
@ -434,16 +434,10 @@ public class Player extends GenericSprite {
yy.add(newY);
}
}
} catch (Exception e) {
} catch (Exception ignored) {}
}
}
}
if (dis[x][y] <= 6) {
return true;
}
return false;
return dis[x][y] <= 6;
}catch(Exception e){
return false;
}

View File

@ -1,3 +1,4 @@
Press P to skip to the next level.
Delete local/game_state if you bound the wrong controls and are not having a good time.
Use bombs sparingly.
The game is fairly computationally expensive, so there may be five-second pauses when the game is rendering more tiles; if this happens, don't quit the game.