level 3 + fixed amendment counter

This commit is contained in:
2026-04-19 23:45:55 -05:00
parent 71aacc10c1
commit 8cd4c216fd
3 changed files with 72 additions and 50 deletions

View File

@@ -16,7 +16,7 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
static final int MAXYVELO = 15;
static final int MAXXVELO = 5;
static final int totalLevels = 10;
static int[] numAm = {4, 5, 0, 0, 0, 0, 0, 0, 0, 0};
static int[] numAm = {4, 5, 10, 0, 0, 0, 0, 0, 0, 0};
// game objects
Player player;
@@ -84,19 +84,21 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
gameTimer.start();
// if i wanna add a button
/*JButton gameStart = new JButton("Start Game");
gameStart.addActionListener(e -> {
loadLevel(currentLevel);
gameTimer.start();
this.remove(gameStart);
this.revalidate();
this.repaint();
});
gameStart.setBorderPainted(false);
gameStart.setFocusPainted(false);
gameStart.setBounds(193,200,114,15);
gameStart.setForeground(new Color(52, 152, 219));
this.add(gameStart);*/
/*
* JButton gameStart = new JButton("Start Game");
* gameStart.addActionListener(e -> {
* loadLevel(currentLevel);
* gameTimer.start();
* this.remove(gameStart);
* this.revalidate();
* this.repaint();
* });
* gameStart.setBorderPainted(false);
* gameStart.setFocusPainted(false);
* gameStart.setBounds(193,200,114,15);
* gameStart.setForeground(new Color(52, 152, 219));
* this.add(gameStart);
*/
}
// gameloop
@@ -166,7 +168,7 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
}
// fall out of world
if (player.y > 1400) {
if (player.y > 1400) { // 1400/20 = 70 rows to work with per level
loadLevel(currentLevel);
player.health--;
}
@@ -338,11 +340,20 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
int amTens = player.numAmendments / 10;
if (currentLevel > 0 && player.numAmendments < numAm[currentLevel - 1]) {
int lvlAmOnes = numAm[currentLevel - 1] % 10;
int lvlAmTens = numAm[currentLevel - 1] / 10;
if (amTens > 0) g.drawImage(numbers.get(amTens), flag.x - 20, flag.y - 30, null);
g.drawImage(numbers.get(amOnes), flag.x + 5, flag.y - 30, null);
g.drawImage(slash, flag.x + 28, flag.y - 32, null);
g.drawImage(numbers.get(numAm[currentLevel - 1]), flag.x + 55, flag.y - 30, null);
g.drawImage(amendmentImg, flag.x + 85, flag.y - 30, null);
if (lvlAmTens > 0) {
g.drawImage(numbers.get(lvlAmTens), flag.x + 55, flag.y - 30, null);
g.drawImage(numbers.get(lvlAmOnes), flag.x + 80, flag.y - 30, null);
g.drawImage(amendmentImg, flag.x + 110, flag.y - 30, null);
} else {
g.drawImage(numbers.get(lvlAmOnes), flag.x + 55, flag.y - 30, null);
g.drawImage(amendmentImg, flag.x + 85, flag.y - 30, null);
}
}
g.translate(cameraX, cameraY);
@@ -373,7 +384,8 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
int x = xBase + (i * spacing);
// y uses a sine wave
// Math.sin takes radians. We use (startTime + i) to give each letter a different phase.
// Math.sin takes radians. We use (startTime + i) to give each letter a
// different phase.
double waveOffset = Math.sin(startTime + i * 0.5) * 10;
int y = yBase + (int) waveOffset;
@@ -398,22 +410,31 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
if (amTens > 0) g.drawImage(numbers.get(amTens), 315, 10, null);
g.drawImage(numbers.get(amOnes), 340, 10, null);
int lvlAmOnes = numAm[currentLevel - 1] % 10;
int lvlAmTens = numAm[currentLevel - 1] / 10;
g.drawImage(slash, 363, 12, null);
g.drawImage(numbers.get(numAm[currentLevel - 1]), 390, 10, null);
g.drawImage(amendmentImg, 420, 10, null);
if (lvlAmTens > 0) {
g.drawImage(numbers.get(lvlAmTens), 390, 10, null);
g.drawImage(numbers.get(lvlAmOnes), 415, 10, null);
// draw powerup timer
if (player.curPower == 1) {
int secs = player.powerTimer / 66;
int tens = secs / 10;
int ones = secs % 10;
if (tens > 0) {
g.drawImage(numbers.get(tens), 184, 10, null);
}
g.drawImage(numbers.get(ones), 205, 10, null);
g.drawImage(powerImg, 220, 10, null);
g.drawImage(amendmentImg, 445, 10, null);
} else {
g.drawImage(numbers.get(lvlAmOnes), 390, 10, null);
g.drawImage(amendmentImg, 420, 10, null);
}
}
// draw powerup timer
if (player.curPower == 1) {
int secs = player.powerTimer / 66;
int tens = secs / 10;
int ones = secs % 10;
if (tens > 0) {
g.drawImage(numbers.get(tens), 184, 10, null);
}
g.drawImage(numbers.get(ones), 205, 10, null);
g.drawImage(powerImg, 220, 10, null);
}
}
// is key pressed