Внедрение звука в Java-игруJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Внедрение звука в Java-игру

Сообщение Anonymous »

Я следил за разработкой Java-игр Bucky, уделяя внимание базовой настройке игры, и с тех пор взял ее в свои руки. В настоящее время я только создаю меню, и оно почти закончено, но я хочу добавить к нему звук. Я застрял на этом уже неделю, так что это не значит, что я не проводил никаких исследований по этому поводу, я просто не могу заставить это работать. Теперь я нашел код для этого, который, кажется, имеет смысл. Как я могу это реализовать, или у вас есть идея получше, как добавить звук, спасибо.

Код: Выделить всё

import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;

static String soundtrack = "res/doxx.wav";

public void sound(String path){

try{
AudioInputStream audio = AudioSystem.getAudioInputStream(Menu.class.getResource(path));
Clip clip = AudioSystem.getClip();
clip.open(audio);
clip.start();
} catch (Exception e){
System.out.println("check "+path+"\n");
e.printStackTrace();
}
}
edit: этот код сейчас удален из программы, но не стесняйтесь публиковать ответы на его основе.

Это код, связанный с добавлением звука, вот весь мой класс меню, он не слишком большой. Честно говоря, вам, вероятно, не нужно рассматривать его подробно, в настоящее время все основано на графике и двух вращающихся кнопках (пуск и выход).

Код: Выделить всё

package javagame;

import org.lwjgl.input.Mouse;
import org.newdawn.slick.*;
import org.newdawn.slick.state.*;

public class Menu extends BasicGameState {

double pi=3.14159265359;
float beanPosY = 330;
float beanPosX = 70;
double gravity = 0.01;
double angleStart=1.5*pi;
double angleQuit=0.5*pi;
int radius=120;
int centerX=300;
int centerY=160;
float startPosX = (float) (centerX + Math.sin(angleStart)*radius);
float startPosY = (float) (centerY + Math.cos(angleStart)*radius);
float quitPosX = (float) (centerX + Math.sin(angleQuit)*radius);
float quitPosY = (float) (centerY + Math.cos(angleQuit)*radius);
double force = 0;
public Menu(int state){
}

public void init(GameContainer gc, StateBasedGame sbg) throws SlickException{
Sound music = new Sound();
music.playBackGround("res/doxx.wav");
}

public void render(GameContainer gc, StateBasedGame sbg, Graphics g) throws SlickException{
Image background = new Image("res/background640x480.fw.png");
g.drawImage(background, 0, 0);

Image start = new Image("res/Start100x100.fw.png");
Image quit = new Image("res/quit100x100.fw.png");
start.draw(startPosX,startPosY);
quit.draw(quitPosX,quitPosY);

Image grass = new Image("res/grass640x150.fw.png");
g.drawImage(grass,0,340);

Image bean = new Image("res/bean.jpg");
bean.draw(beanPosX, beanPosY);
}

public void update(GameContainer gc, StateBasedGame sbg, int delta) throws SlickException{
int posX = Mouse.getX();
int posY = Mouse.getY();
double constant=0.002*pi;

startPosX = (float) (centerX + Math.sin(angleStart)*radius);
startPosY = (float) (centerY + Math.cos(angleStart)*radius);
quitPosX = (float) (centerX + Math.sin(angleQuit)*radius);
quitPosY = (float) (centerY + Math.cos(angleQuit)*radius);

angleStart+=constant;
angleQuit+=constant;
if (angleStart>=2*pi){
angleStart-=2*pi;
}
if (angleQuit>=2*pi){
angleQuit-=2*pi;
}
//button interactions
menuInteraction(posX,posY,sbg);

if (beanPosY>=330){
force=1;
}
beanPosY-=force;
force-=gravity;
}

public int getID(){
return 0;
}

private void menuInteraction(int posX, int posY, StateBasedGame sbg){
//play button
float startXDist=posX-(startPosX+50);
float startYDist=(480-posY)-(startPosY+50);
float startDist=(float) Math.sqrt((startXDist*startXDist)+(startYDist*startYDist));
if(startDist

Подробнее здесь: [url]https://stackoverflow.com/questions/17731274/implementing-sound-into-a-java-game[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»