質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

1369閲覧

JAVA ゲーム制作 BGMをつけたい

GBEE

総合スコア2

JavaFX

JavaFXとは、Java仮想マシン上で動作するリッチインターネットアプリケーション (RIA) のGUIライブラリです。Swingとは異なり、FXMLと呼ばれる XMLとCSSを併用してデザインを記述します。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2021/01/15 11:41

編集2021/01/15 11:44

MapGame.java:

import

1import javafx.scene.Scene; 2import javafx.scene.layout.Pane; 3import javafx.stage.Stage; 4import javafx.fxml.FXMLLoader; 5import java.applet.Applet; 6import java.awt.Graphics; 7 8public class MapGame extends Application { 9 Stage stage; 10 11 @Override 12 public void start(Stage primaryStage) throws Exception { 13 stage = primaryStage; 14 primaryStage.setTitle("MAP GAME"); 15 Pane myPane_top = (Pane)FXMLLoader.load(getClass().getResource("MapGame.fxml")); 16 Scene myScene = new Scene(myPane_top); 17 primaryStage.setScene(myScene); 18 primaryStage.show(); 19 } 20 21 public static void main(String[] args) { 22 launch(args); 23 A.main(args); 24 } 25}

BGM.java

import

1import java.io.IOException; 2import java.net.MalformedURLException; 3 4import javax.sound.sampled.AudioFormat; 5import javax.sound.sampled.AudioInputStream; 6import javax.sound.sampled.AudioSystem; 7import javax.sound.sampled.Clip; 8import javax.sound.sampled.DataLine; 9import javax.sound.sampled.LineUnavailableException; 10import javax.sound.sampled.UnsupportedAudioFileException; 11 12public class BGM { 13 public static void main(String[] args) throws Exception{ 14 Clip clip = createClip(new File("futta-fly3t.wav")); 15 clip.loop(Clip.LOOP_CONTINUOUSLY); 16 Thread.sleep(100000); 17 clip.stop(); 18 clip.flush(); 19 clip.setFramePosition(0); 20 Thread.sleep(10000); 21 clip.start(); 22 Thread.sleep(10000); 23} 24 25 public static Clip createClip(File path) { 26 27 try (AudioInputStream ais = AudioSystem.getAudioInputStream(path)){ 28 29 AudioFormat af = ais.getFormat(); 30 31 DataLine.Info dataLine = new DataLine.Info(Clip.class,af); 32 33 Clip c = (Clip)AudioSystem.getLine(dataLine); 34 35 c.open(ais); 36 37 return c; 38 } catch (MalformedURLException e) { 39 e.printStackTrace(); 40 } catch (UnsupportedAudioFileException e) { 41 e.printStackTrace(); 42 } catch (IOException e) { 43 e.printStackTrace(); 44 } catch (LineUnavailableException e) { 45 e.printStackTrace(); 46 } 47 return null; 48 } 49} 50コード

JAVAファイル:MapGame.javaにBGM.javaを呼び出してBGMが流れるように記述したいのですがどう書けばいいかわかりません
BGM自体はBGM.javaでclipをつかって流れるようにしてあります

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

メイン関数は一つのプログラムに一つしか書けません。別のクラスを呼び出すにはnew演算子を用いてコンストラクタを呼び出します。

java

1BGM.java 2public class BGM { 3 public BGM() throws Exception 4 { 5 //BGM.java内のメイン関数のコード 6 } 7 8 public Clip createClip(File path) 9 { 10 //BGM.java内のcreateClip関数のコード 11 } 12}

呼び出す側(今回はMapGame.java)には次のコードを書きます。

java

1new BGM();

これによって別のクラスを呼び出すことができます。

投稿2021/03/11 03:47

udon-

総合スコア2

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問