Javaで太陽系天体シミュレーター&JavaをExe化してみました。(Java21以降対応)

Javaで太陽系天体シミュレーターを作成して、その後、Exe化してみました。
(下の方にダウンロードリンクがあります)

シミュレーターのほとんどは、Gemini3くんに手伝ってもらいましたが(笑)、
何時間もかけて調整を行って、なんとなく自分的にいい感じになりました。

実際の縮尺や時間からはかなり調整をかけています。
見ていて楽しめるように調整をしています。

画面イメージ

SolarSystemSim

見せどころ

初期のシミュレーターからいろいろとお願いをしてみました。
1)天体名が分かるようにスペースキーで表示するようにしました。
2)上下左右キーで拡大/縮小/時間調整ができます。
3)惑星および有名な準惑星をプロットしてみました。
4)主な彗星をプロットしてみました。名もない彗星もランダムに置いています。
5)エッジワースカイパーベルト、散乱円盤、オールトの雲もイメージ化しています。
6)シューメーカー・レヴィ第9彗星を蘇らせています。
詳しくは知らなかったですが、木星の重力圏にとらえられて、最後は分解・飲み込まれたみたいですね。
その重力圏にとらわれたイメージにしています。ぶつかりはしません。
7)見えるものではないですが、Java21から対応されているVirtual Threadを利用して、リソースを省力化しています。
なので、Java21以降対応になります。

Virtual Threadの採用について

わたしも今回初めて知ったVirtual Threadを採用しています。
数千の天体一つひとつが独立して計算を行い
(バーチャルスレッド。すべての天体が別のスレッドで動いています)
かつ メインの描画スレッドを邪魔しないスムーズな挙動を実現しています。
Javaで実現した『並列処理の宇宙』をぜひ体験してください。

JavaのExe化

前回のExe化はJavaFXとパッド対応まで含めて対応しましたが、
今回はピュアJavaで試してみました。

Exe化したバッチファイルは、
添付のzipファイル内の
makeExe.bat
を見てくださいね。

今回の記事まとめ

Javaで太陽系天体シミュレーター&JavaをExe化してみました。(Java21以降対応)
Javaをexe化してみる(2)- jpackageの活用 と 自動化バッチの紹介 -
Javaのバーチャルスレッドを利用してみた(3)感想とゲーム利用の有効性について考察

Youtubeに載せました♪
https://youtu.be/NPsgNbhEtds

シェアしていただけるとうれしいです。

投稿者:

kinchannn

きんです。 よろしくおねがいいたします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA