スレタイはアプレットとの対比的な意味と考えてください。
Javaでのゲーム開発は賛否ありますが、国外では割と盛んになってきているように思います。
裏を返せば日本語だけでは情報が得辛い状況であり、寂しく開発してる人が多いのでは・・・。
関連スレ
JAVAアプリでゲーム
http://toro.2ch.net/test/read.cgi/gamedev/1033926010/
参考になりそうなサイト
・どのイメージタイプを使うべき?
http://weblogs.java.net/blog/chet/archive/2004/08/toolkitbuffered.html
・弱点と言われる?ベクタグラフィックス関連の改善
http://docs.oracle.com/javase/1.5.0/docs/guide/2d/flags.html
・大量のソースコードを公開して下さっている国内サイト
http://aidiary.hatenablog.com/entry/20040918/1251373370
・Java 2D games tutorial
http://zetcode.com/tutorials/javagamestutorial/
・出入りが最も盛んな?フォーラム
http://www.java-gaming.org/index.php
・スプライトシートの切り方等(国内)
http://sky.geocities.jp/kmaedam/java2/java2.htm
動画
3D Game Programming tutorial
・http://www.youtube.com/watch?v=iH1xpfOBN6M
探検
Javaで作るスタンドアローンゲーム
■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
2012/12/27(木) 16:04:18.62ID:rl+qGRHn464名前は開発中のものです。
2015/04/05(日) 16:43:37.56ID:FoWp8ODA 期限が短すぎたので上げなおし
https://pastebin.mozilla.org/8828750
https://pastebin.mozilla.org/8828750
465名前は開発中のものです。
2015/04/06(月) 18:56:08.99ID:/THq8Fdv 継承や関連性はなんとなく図を描いている所。
DFDしかちゃんと出来なくて困る。
コード見ましたところ、dispose関数がありますが、そのシーンを廃棄するのでしょうか?
基本的な流れとしては、
GameStateManagerでgame options, sound options, video optionsそしてmain game突入まで管理する。
STARTは単に"Presse Start"を表示させるだけにして、後でその他のoptionsをリストに追加する。
PLAYに(遷移:読み方知らん)かんい?したらPlayStateManagerに移る。
PlayStateManagerではキャラ移動,店での買い物,メニュー画面を開いてアイテム確認や装備変更等をそれぞれstateで管理する。
例えばPlayStateでキャラ移動, MenuStateでメニュー画面を開いてアイテム確認や装備変更等に分けている。
これで各state特有の処理は出来るのだが、ここで一つ問題が発生する。
問題とは、どのようしてリストに収納されている各stateで”GameStateに無い関数”にアクセスできるか?です。
例:
PlayStateでキャラ(player)を移動させているときにアイテム確認の為にメニューを開いた。
その時PlayStateManagerにあるsetPlayer(Player p)の関数を呼び参照準備完了。
そしてPlayStateManagerでstateの移行を実行しPlayStateからMenuStateに移行する。
その後MenuStateでPlayStateManagerにあるgetPlayer()を呼び参照取得。そしてアイテムの使用や廃棄等の操作をした後再びPlayStateに移行する。
その時PlayStateManagerにあるsetPlayer(Player p)の関数を呼び参照準備完了。
その後PlayStateにあるsetPlayer(Player p)を呼んで参照のセットを計る。
しかし、その関数はGameStateに記述されていないから参照できない。
goto的になっちゃんだよな〜
https://pastebin.mozilla.org/8828836
DFDしかちゃんと出来なくて困る。
コード見ましたところ、dispose関数がありますが、そのシーンを廃棄するのでしょうか?
基本的な流れとしては、
GameStateManagerでgame options, sound options, video optionsそしてmain game突入まで管理する。
STARTは単に"Presse Start"を表示させるだけにして、後でその他のoptionsをリストに追加する。
PLAYに(遷移:読み方知らん)かんい?したらPlayStateManagerに移る。
PlayStateManagerではキャラ移動,店での買い物,メニュー画面を開いてアイテム確認や装備変更等をそれぞれstateで管理する。
例えばPlayStateでキャラ移動, MenuStateでメニュー画面を開いてアイテム確認や装備変更等に分けている。
これで各state特有の処理は出来るのだが、ここで一つ問題が発生する。
問題とは、どのようしてリストに収納されている各stateで”GameStateに無い関数”にアクセスできるか?です。
例:
PlayStateでキャラ(player)を移動させているときにアイテム確認の為にメニューを開いた。
その時PlayStateManagerにあるsetPlayer(Player p)の関数を呼び参照準備完了。
そしてPlayStateManagerでstateの移行を実行しPlayStateからMenuStateに移行する。
その後MenuStateでPlayStateManagerにあるgetPlayer()を呼び参照取得。そしてアイテムの使用や廃棄等の操作をした後再びPlayStateに移行する。
その時PlayStateManagerにあるsetPlayer(Player p)の関数を呼び参照準備完了。
その後PlayStateにあるsetPlayer(Player p)を呼んで参照のセットを計る。
しかし、その関数はGameStateに記述されていないから参照できない。
goto的になっちゃんだよな〜
https://pastebin.mozilla.org/8828836
466名前は開発中のものです。
2015/04/06(月) 22:35:38.63ID:8cFcSghx 普通にGameStateをPlayStateにダウンキャストすればよいだけだろ
ダウンキャストしたくなければ、そもそもリストに詰めないことだ
ダウンキャストしたくなければ、そもそもリストに詰めないことだ
467名前は開発中のものです。
2015/04/06(月) 23:40:08.53ID:/THq8Fdv 確かにダウンキャストすれば出来そうですが、それをしようとしたら各要所で条件分岐させなきゃならないし、
前呼んだ”javaで学ぶリファクタリング”の本でDCは余り良い手ではないと書いてあったので。
前呼んだ”javaで学ぶリファクタリング”の本でDCは余り良い手ではないと書いてあったので。
468名前は開発中のものです。
2015/04/07(火) 00:45:35.73ID:iKbQeSub アホガキまるだしでうんざりする
469名前は開発中のものです。
2015/04/07(火) 02:22:24.35ID:HEtwadqH そういえば春だね
470名前は開発中のものです。
2015/08/03(月) 09:32:43.57ID:kSwbA9Fz Thread.sleep() を呼び出すと15ミリ秒も処理が帰ってこないという話があり
http://dobon.net/vb/bbs/log3-23/14028.html
最高精度の 1 ミリ秒にできたとしても
UI スレッド、描画スレッド、AIスレッドなどを同期させながら 60fps 出したいときに
スレッド切り替えるたびに 1 ミリ秒かかっていたのでは致命的だ
この辺みんなどうやってクリアしていますか?
http://dobon.net/vb/bbs/log3-23/14028.html
最高精度の 1 ミリ秒にできたとしても
UI スレッド、描画スレッド、AIスレッドなどを同期させながら 60fps 出したいときに
スレッド切り替えるたびに 1 ミリ秒かかっていたのでは致命的だ
この辺みんなどうやってクリアしていますか?
471名前は開発中のものです。
2015/08/03(月) 11:20:15.35ID:kSwbA9Fz src.zip, Thread.java, sleep(millis, nanos):
if (nanos >= 500000 || (nanos != 0 && millis == 0)) {
millis++;
}
sleep(millis);
本当に丸められていた・・・
if (nanos >= 500000 || (nanos != 0 && millis == 0)) {
millis++;
}
sleep(millis);
本当に丸められていた・・・
472名前は開発中のものです。
2015/08/04(火) 17:44:09.45ID:YB5Xtaqw java.util.concurrent.lock.LockSupport.parkNanos(1L);
も15ミリ秒待たされた。
新しめの win 8.1 マシンでさえこんな状況
も15ミリ秒待たされた。
新しめの win 8.1 マシンでさえこんな状況
473名前は開発中のものです。
2015/08/05(水) 13:18:01.99ID:Kox9LHwR >>470
同期させるならsleepのタイムアウト待つんじゃなくて割り込みかけない?
もうちょっとちゃんとするならjava.util.concurrentのCyclicBarrierやらCountDownLatchやらPhaser使うんじゃない?
>>472
うちの環境だとThread.sleep(1);やjava.util.concurrent.locks.LockSupport.parkNanos(1L);は約1msで戻ってくるけどなー
Windows 8.1 64bit/Java8/Pentium G6950
Windows 8.1 32bit/Java8/Atom Z3735F
ideoneも約1msだった
http://ideone.com/Hlp4cu
同期させるならsleepのタイムアウト待つんじゃなくて割り込みかけない?
もうちょっとちゃんとするならjava.util.concurrentのCyclicBarrierやらCountDownLatchやらPhaser使うんじゃない?
>>472
うちの環境だとThread.sleep(1);やjava.util.concurrent.locks.LockSupport.parkNanos(1L);は約1msで戻ってくるけどなー
Windows 8.1 64bit/Java8/Pentium G6950
Windows 8.1 32bit/Java8/Atom Z3735F
ideoneも約1msだった
http://ideone.com/Hlp4cu
474名前は開発中のものです。
2015/08/05(水) 17:25:15.81ID:5iKsQnJc >>473
アクティブレンダリングの待ちが念頭にあったから sleep と考えていたけど
確かに同期させるという用途なら wait / notify とかが良いかも。
そちらでは1ミリ秒の精度あるのですね。
環境によってばらつきがあるのかな?
parkNanos(1L) はさすがに1ナノ秒の精度は期待できないにしても
マイクロ秒単位の精度はあってほしかったですが
アクティブレンダリングの待ちが念頭にあったから sleep と考えていたけど
確かに同期させるという用途なら wait / notify とかが良いかも。
そちらでは1ミリ秒の精度あるのですね。
環境によってばらつきがあるのかな?
parkNanos(1L) はさすがに1ナノ秒の精度は期待できないにしても
マイクロ秒単位の精度はあってほしかったですが
475名前は開発中のものです。
2015/08/22(土) 23:33:39.53ID:+Rszj5Wc >>470
リンク先の内容って2005年の.NET C#の話でしょ?
なんでJava板で?・・・
System.nanoTime()使えばナノ秒単位の精度が出るでしょ。
http://aidiary.hatenablog.com/entry/20070429/1251463673
リンク先の内容って2005年の.NET C#の話でしょ?
なんでJava板で?・・・
System.nanoTime()使えばナノ秒単位の精度が出るでしょ。
http://aidiary.hatenablog.com/entry/20070429/1251463673
476名前は開発中のものです。
2015/08/23(日) 19:31:06.35ID:7bDmMhl8 nanoTime() は確かに 100 ナノ秒単位くらいの精度がでるかもしれないが
それは時間を「測る」ほうの精度で、sleep で「待つ」ほうの精度はもっと悪い。
リンク先を貼ったのは探すのをさぼってしまったからだけど、
Java で、最近の Windows でも状況は似たり寄ったりなのは >>471,472 の通り
ぬるぬる動くゲームを作ろうとしていて、Thread.sleep() を呼んでいる場合は、
けっこうオーバーヘッドになっているかもしれません
それは時間を「測る」ほうの精度で、sleep で「待つ」ほうの精度はもっと悪い。
リンク先を貼ったのは探すのをさぼってしまったからだけど、
Java で、最近の Windows でも状況は似たり寄ったりなのは >>471,472 の通り
ぬるぬる動くゲームを作ろうとしていて、Thread.sleep() を呼んでいる場合は、
けっこうオーバーヘッドになっているかもしれません
477名前は開発中のものです。
2015/08/24(月) 14:14:06.17ID:qQPD7DVJ そりゃ寝てる間に別のタスク呼んでるんだから
478名前は開発中のものです。
2015/08/24(月) 18:32:26.01ID:Gp2n+Lvh sleep(millis, nanos) とあるから、ナノ秒単位で寝かせられる
と思うじゃん、
と思うじゃん、
479名前は開発中のものです。
2016/08/05(金) 20:21:48.53ID:Rrym3J/u JavaFXってグラボのアクセラレーションかかるのかな?
って誰もいないかw
PCで携帯スマホのOpenGLくらいのパフォーマンスは出そうなんだが…
って誰もいないかw
PCで携帯スマホのOpenGLくらいのパフォーマンスは出そうなんだが…
480名前は開発中のものです。
2017/02/03(金) 02:22:29.13ID:0I8xjrI1 age
481名前は開発中のものです。
2017/03/22(水) 20:19:40.48ID:2x3cQ72L482名前は開発中のものです。
2017/06/04(日) 16:37:34.00ID:uG346vtn 新板age
483名前は開発中のものです。
2017/12/31(日) 19:47:58.74ID:/rN76OKL 簡単にお金が稼げる方法興味ある人だけ見てください。
グーグル検索⇒『来島のモノノリウエ』
SCVG4A16FM
グーグル検索⇒『来島のモノノリウエ』
SCVG4A16FM
484名前は開発中のものです。
2018/02/17(土) 07:34:01.81ID:G/oBdhuK ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- ■緊急地震速報 熊本など [人気者★]
- 性売買「買う側」処罰化と同時に「売る側は処罰せず、支援の対象に」Colabo主催の集会にて [パンナ・コッタ★]
- 相次ぐ中国公演中止に、シンガーソングライターらが続々高市首相に怒り表明「隣国の仲間たちに対して申し訳ない」 [muffin★]
- NHKの災害情報、閲覧に「ユーザー登録必要」で批判の声多数 [少考さん★]
- とろサーモン・久保田「後輩や演者からも評判が悪すぎる」大物MCに意見 「世間が思ってる人間とは真逆」と思い爆発 [muffin★]
- 〈NHK督促10倍に強化〉「カーナビも受信料いただきます」方針に自治体が悲鳴…“督促の基準”を大赤字のNHKにきいた [パンナ・コッタ★]
- しじみ [546716239]
- 大地震 [904880432]
- 大震災
- 【安倍晋三】山上徹也は暴力を使った。お前らはそれを認め許すの? [201193242]
- 高市地震 [485983549]
- 高市早苗さん、トランプにガチで怒られた模様🥺 [931948549]
