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

时间:2013-12-12 23:07:09

标签: java audio playback

好吧,我看了一些相关的问题但是并没有完全找到我想要的东西。我正在用java制作一个小型游戏,用一艘向敌人发射激光的宇宙飞船。使用图形和KeyListener进行键盘输入。我只是想让它在按SPACE拍摄时播放.WAV文件片段。我可以将它的代码放在VK_SPACE的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;
    }
}
}

0 个答案:

没有答案