如何在java游戏中播放声音文件

如何在java游戏中播放声音文件,java,audio,playback,Java,Audio,Playback,好的,我看了一些相关的问题,但没有完全找到我想要的。我正在用爪哇制作一个小游戏,游戏中有一艘宇宙飞船向敌人发射激光。使用图形和键盘侦听器进行键盘输入。我只想在他们按空格键拍摄时播放一个.WAV文件剪辑。我可以把它的代码放在VK_空间的if语句中吗?下面是我为控制输入的“Craft”类编写的一些代码 package Operation.Supernova; import java.awt.Image; import java.awt.Rectangle; import java.awt.even

好的,我看了一些相关的问题,但没有完全找到我想要的。我正在用爪哇制作一个小游戏,游戏中有一艘宇宙飞船向敌人发射激光。使用图形和键盘侦听器进行键盘输入。我只想在他们按空格键拍摄时播放一个.WAV文件剪辑。我可以把它的代码放在VK_空间的if语句中吗?下面是我为控制输入的“Craft”类编写的一些代码

package Operation.Supernova;

import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.util.ArrayList;
import javax.swing.ImageIcon;

public class Craft {

private String craft = "Craft.png";

private int dx;
private int dy;
private int x;
private int y;
private int width;
private int height;
private boolean visible;
private Image image;
private ArrayList lasers;


public Craft() {
    ImageIcon ii = new ImageIcon(this.getClass().getResource(craft));
    image = ii.getImage();
    width = image.getWidth(null);
    height = image.getHeight(null);
    lasers = new ArrayList();
    visible = true;
    x = 40;
    y = 60;
}


public void move() {

    x += dx;
    y += dy;

    if (x < 1) {
        x = 1;
    }

    if (y < 1) {
        y = 1;
    }
}

public int getX() {
    return x;
}

public int getY() {
    return y;
}

public Image getImage() {
    return image;
}

public ArrayList getLasers() {
    return lasers;
}

public void setVisible(boolean visible) {
    this.visible = visible;
}

public boolean isVisible() {
    return visible;
}

public Rectangle getBounds() {
    return new Rectangle(x, y, 1400, 750);
}

public void keyPressed(KeyEvent e) {

    int key = e.getKeyCode();

    if (key == KeyEvent.VK_SPACE) {
        fire();
    }

    if (key == KeyEvent.VK_LEFT) {
        dx = -2;
    }

    if (key == KeyEvent.VK_RIGHT) {
        dx = 2;
    }

    if (key == KeyEvent.VK_UP) {
        dy = -2;
    }

    if (key == KeyEvent.VK_DOWN) {
        dy = 2;
    }
    }

    public void fire() {
    {
      lasers.add(new Laser(x + width, y + height / 2));
    }
}
public void keyReleased(KeyEvent e) {
    int key = e.getKeyCode();

    if (key == KeyEvent.VK_LEFT) {
        dx = 0;
    }

    if (key == KeyEvent.VK_RIGHT) {
        dx = 0;
    }

    if (key == KeyEvent.VK_UP) {
        dy = 0;
    }

    if (key == KeyEvent.VK_DOWN) {
        dy = 0;
    }
}
}
封装操作。超新星;
导入java.awt.Image;
导入java.awt.Rectangle;
导入java.awt.event.KeyEvent;
导入java.util.ArrayList;
导入javax.swing.ImageIcon;
公共级船舶{
私有字符串craft=“craft.png”;
私人int dx;
私家侦探;
私人INTX;
私营企业;
私有整数宽度;
私人内部高度;
私有布尔可见;
私有图像;
专用阵列激光器;
公共船只(){
ImageIcon ii=新的ImageIcon(this.getClass().getResource(craft));
image=ii.getImage();
宽度=image.getWidth(null);
高度=image.getHeight(null);
激光器=新阵列列表();
可见=真实;
x=40;
y=60;
}
公开作废动议(){
x+=dx;
y+=dy;
if(x<1){
x=1;
}
if(y<1){
y=1;
}
}
公共int getX(){
返回x;
}
公共int getY(){
返回y;
}
公共映像getImage(){
返回图像;
}
公共阵列列表getLasers(){
返回激光;
}
公共void集合可见(布尔可见){
可见的;可见的;
}
公共布尔值可见(){
返回可见;
}
公共矩形getBounds(){
返回新矩形(x,y,1400,750);
}
按下公共无效键(按键事件e){
int key=e.getKeyCode();
if(key==KeyEvent.VK_空间){
火();
}
if(key==KeyEvent.VK_左){
dx=-2;
}
if(key==KeyEvent.VK_RIGHT){
dx=2;
}
if(key==KeyEvent.VK_UP){
dy=-2;
}
if(key==KeyEvent.VK_DOWN){
dy=2;
}
}
公共场所火灾(){
{
添加(新激光器(x+宽度,y+高度/2));
}
}
公共无效密钥已释放(密钥事件e){
int key=e.getKeyCode();
if(key==KeyEvent.VK_左){
dx=0;
}
if(key==KeyEvent.VK_RIGHT){
dx=0;
}
if(key==KeyEvent.VK_UP){
dy=0;
}
if(key==KeyEvent.VK_DOWN){
dy=0;
}
}
}

您使用的是什么游戏框架?大多数(如果不是全部的话)都为您提供音频功能。我想他使用的是纯java。对不起,我不确定框架是什么。