sound effects
This commit is contained in:
BIN
Platformer.class
BIN
Platformer.class
Binary file not shown.
@@ -5,6 +5,7 @@ import java.io.*;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
import javax.sound.sampled.*;
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
|
|
||||||
public class Platformer extends JPanel implements KeyListener, ActionListener {
|
public class Platformer extends JPanel implements KeyListener, ActionListener {
|
||||||
@@ -44,6 +45,7 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
|
|||||||
boolean gameStarted;
|
boolean gameStarted;
|
||||||
Image heart, emptyHeart, slash, amendmentImg, powerImg, pressRImg, endImg, winImg, titleImg;
|
Image heart, emptyHeart, slash, amendmentImg, powerImg, pressRImg, endImg, winImg, titleImg;
|
||||||
ArrayList<Image> numbers;
|
ArrayList<Image> numbers;
|
||||||
|
Clip jumpSound, shootSound, hitSound, collectSound;
|
||||||
|
|
||||||
public Platformer(int boardWidth, int boardHeight, int tileSize) {
|
public Platformer(int boardWidth, int boardHeight, int tileSize) {
|
||||||
// setup game
|
// setup game
|
||||||
@@ -68,6 +70,10 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
|
|||||||
endImg = new ImageIcon("Sprites/end.png").getImage();
|
endImg = new ImageIcon("Sprites/end.png").getImage();
|
||||||
pressRImg = new ImageIcon("Sprites/PressR.png").getImage();
|
pressRImg = new ImageIcon("Sprites/PressR.png").getImage();
|
||||||
winImg = new ImageIcon("Sprites/win.png").getImage();
|
winImg = new ImageIcon("Sprites/win.png").getImage();
|
||||||
|
jumpSound = loadClip("Sounds/jump.wav");
|
||||||
|
shootSound = loadClip("Sounds/shoot.wav");
|
||||||
|
hitSound = loadClip("Sounds/hit.wav");
|
||||||
|
collectSound = loadClip("Sounds/collect.wav");
|
||||||
gameTimer = new Timer(15, this);
|
gameTimer = new Timer(15, this);
|
||||||
player = new Player(-20, 0, tileSize, tileSize);
|
player = new Player(-20, 0, tileSize, tileSize);
|
||||||
collidables = new ArrayList<>();
|
collidables = new ArrayList<>();
|
||||||
@@ -172,11 +178,13 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
|
|||||||
boolean jumpKeyDown = (isKeyPressed(KeyEvent.VK_W) || isKeyPressed(KeyEvent.VK_UP));
|
boolean jumpKeyDown = (isKeyPressed(KeyEvent.VK_W) || isKeyPressed(KeyEvent.VK_UP));
|
||||||
if (jumpKeyDown && !jumpPressed) {
|
if (jumpKeyDown && !jumpPressed) {
|
||||||
if (player.onGround) {
|
if (player.onGround) {
|
||||||
|
playClip(jumpSound);
|
||||||
player.yVelo = -15;
|
player.yVelo = -15;
|
||||||
player.onGround = false;
|
player.onGround = false;
|
||||||
jumpPressed = true;
|
jumpPressed = true;
|
||||||
player.airJumps = 0;
|
player.airJumps = 0;
|
||||||
} else if (player.curPower == 1 && player.airJumps < 1) {
|
} else if (player.curPower == 1 && player.airJumps < 1) {
|
||||||
|
playClip(jumpSound);
|
||||||
player.yVelo = -15;
|
player.yVelo = -15;
|
||||||
player.airJumps++;
|
player.airJumps++;
|
||||||
jumpPressed = true;
|
jumpPressed = true;
|
||||||
@@ -220,6 +228,7 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
|
|||||||
Amendment am = (Amendment) c;
|
Amendment am = (Amendment) c;
|
||||||
if (player.collidesWith(am)) {
|
if (player.collidesWith(am)) {
|
||||||
player.numAmendments++;
|
player.numAmendments++;
|
||||||
|
playClip(collectSound);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -268,6 +277,7 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
|
|||||||
// shoot
|
// shoot
|
||||||
// projectiles
|
// projectiles
|
||||||
if (isKeyPressed(KeyEvent.VK_SPACE) && player.shootCooldown == 0) {
|
if (isKeyPressed(KeyEvent.VK_SPACE) && player.shootCooldown == 0) {
|
||||||
|
playClip(shootSound);
|
||||||
int projX = player.facing == 1 ? player.x + player.width : player.x - 10;
|
int projX = player.facing == 1 ? player.x + player.width : player.x - 10;
|
||||||
projectiles.add(new Projectile(projX, player.y, tileSize, 10, currentLevel, player.facing));
|
projectiles.add(new Projectile(projX, player.y, tileSize, 10, currentLevel, player.facing));
|
||||||
player.shootCooldown = Player.SHOOT_COOLDOWN;
|
player.shootCooldown = Player.SHOOT_COOLDOWN;
|
||||||
@@ -291,6 +301,7 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
|
|||||||
// enemy hits player
|
// enemy hits player
|
||||||
if (player.collidesWith(e)) {
|
if (player.collidesWith(e)) {
|
||||||
player.takeDamage();
|
player.takeDamage();
|
||||||
|
playClip(hitSound);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -557,4 +568,23 @@ public class Platformer extends JPanel implements KeyListener, ActionListener {
|
|||||||
// dont need
|
// dont need
|
||||||
@Override
|
@Override
|
||||||
public void keyTyped(KeyEvent e) {}
|
public void keyTyped(KeyEvent e) {}
|
||||||
|
|
||||||
|
public Clip loadClip(String path) {
|
||||||
|
try {
|
||||||
|
AudioInputStream audio = AudioSystem.getAudioInputStream(new File(path));
|
||||||
|
Clip clip = AudioSystem.getClip();
|
||||||
|
clip.open(audio);
|
||||||
|
return clip;
|
||||||
|
} catch (Exception e) {
|
||||||
|
System.out.println("Could not load sound: " + path);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void playClip(Clip clip) {
|
||||||
|
if (clip != null) {
|
||||||
|
clip.setFramePosition(0); // rewind to start
|
||||||
|
clip.start();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
BIN
Sounds/collect.wav
Normal file
BIN
Sounds/collect.wav
Normal file
Binary file not shown.
BIN
Sounds/hit.wav
Normal file
BIN
Sounds/hit.wav
Normal file
Binary file not shown.
BIN
Sounds/jump.wav
Normal file
BIN
Sounds/jump.wav
Normal file
Binary file not shown.
BIN
Sounds/shoot.wav
Normal file
BIN
Sounds/shoot.wav
Normal file
Binary file not shown.
Reference in New Issue
Block a user