トップページgamedev
987コメント388KB

Javaでゲーム作成 2本目

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2005/10/27(木) 09:43:50ID:dzSvRQXE
Javaでのゲーム作成について情報交換をするスレです。
ゲーム作成以外の話題はム板(http://pc8.2ch.net/tech/)、
他言語に関する話題は他スレでお願いします。

前スレ
JAVAでゲーム作成
http://pc8.2ch.net/test/read.cgi/gamedev/1074347252/

テンプレは>>1->>10あたりを参照
0304名前は開発中のものです。2006/05/09(火) 17:54:55ID:oSIIzbHZ
オブジェクトはプールしないで積極的に生成破棄してくれ
世代別GCとの相性を考えるとこれ
0305名前は開発中のものです。2006/05/09(火) 22:27:04ID:p8kDUjWo
>>303
実装するにあたって、static変数が必要なデザインパターンもあったんじゃね。
0306名前は開発中のものです。2006/05/09(火) 23:23:28ID:j9harUZK
>>303
そういう覚え方はよくないよ。勉強しなおしたほうがいい。
0307名前は開発中のものです。2006/05/16(火) 11:01:52ID:oJeJmTzF
ドラクエってさ、コマンド選ぶと前のコマンドがバックに表示されたまま
次のコマンドが出るじゃん それでキャンセルで現在のウィンドウが消えて
前のコマンドに参照が戻るよね
あれってそれぞれにバッファ用意してやるしかないかな?
たとえば道具→使う→誰に なら
道具を表示するバッファ
道具、使うを表示するバッファ
道具、使う、誰にを表示するバッファ
みたいに
0308名前は開発中のものです。2006/05/16(火) 11:35:56ID:pNczDPI9
ファミコン時代にバッファがあったと思うか?
ひたすら上書き

ウインドウが消えたらアクティブになったウインドウの描画

それだけだよ
0309名前は開発中のものです。2006/05/16(火) 11:37:03ID:pNczDPI9
一応レイヤーという考え方もありだが、いまだとそっちのほうが楽だろ
それぞれウインドウ内のみの描画管理
画面全体の描画でそれらを適切に呼び出す
0310名前は開発中のものです。2006/05/20(土) 04:48:56ID:i7QcIrxX
>>308-309
遅くなったけどサンクス
なんとなく分かってきた

キャラやアイテムのリスト作るのが面倒臭いな・・・
存在してるキャラ、所持してるアイテムを調べてリストにして
多ければウィンドウをスクロールさせなきゃならぬ
面倒だけどがんばるか・・
0311名前は開発中のものです。2006/05/20(土) 09:04:00ID:R0av8b56
面倒か?
わからなければ先にUMLでもなんでもいいけど処理の手順を書いたほうがいい
0312名前は開発中のものです。2006/05/21(日) 05:45:05ID:BQPLtheI
処理を考えるのが一番面倒だ
きちんと順序立ててやってみるよ・・
0313名前は開発中のものです。2006/05/22(月) 04:54:34ID:rAUj867u
俺はデータモデルの設計が一番面倒だなぁ。
変更や拡張に強く、ネットワーク越しの同期の取りやすいデータモデルをとか考え出すとはまり込む。
03145072006/05/22(月) 19:16:41ID:KUql4eEY
Javaを最近勉強しはじました。
とりあえず簡単なゲームを作りたいと思っているのですがどれ位勉強すればいいですか?
0315名前は開発中のものです。2006/05/22(月) 19:27:29ID:bgWiXtf3
ゲーム作りで勉強すれば
そういう本最近多いし
0316名前は開発中のものです。2006/05/23(火) 14:28:37ID:qGRGm1GF
if else で100近く分岐しそう・・
激重かな
0317名前は開発中のものです。2006/05/23(火) 15:24:24ID:5zoiL+RS
>>316
どういう風に分岐させたいんだ?
0318名前は開発中のものです。2006/05/23(火) 15:30:17ID:nyPWq5Mq
100こくらいのifでおもくなるって10MHz切ってるマシンの人かな
0319名前は開発中のものです。2006/05/23(火) 22:43:16ID:qGRGm1GF
>>317
たとえばさ、魔法クラスがあって、そのメソッドに魔法No.をわたして
そのメソッド内で渡されたNo.によってswitchで分岐させるとか

話がswitchになっちゃったけどswitchは数しかつかえないんだよね、たしか
それ以外で識別したいならif elseしかないと思って

あと、変数は少ないけどメソッドがたくさんあるクラスのインスタンスを
100個くらいつくるとメモリがやばかったりするかな?
0320名前は開発中のものです。2006/05/23(火) 22:51:29ID:wlFUtSp+
class Magic
{
0321320はミス2006/05/23(火) 22:57:01ID:wlFUtSp+
abstract class Magic{
public abstract void perform();
}
みたいにして、個別の魔法はこれを継承するようにするとJavaらしくなるよね
実際にゲームを完成させる気ならこんなことしないだろうけど

メソッドはたくさんあっても問題なし
0322名前は開発中のものです。2006/05/23(火) 23:14:15ID:qo1KKw1q
デザインパターン立ち読みでもいいからおぼえとくといいぞ

制御とデータをわけるという考え方は
Cとか構造化言語までのものだ
0323名前は開発中のものです。2006/05/23(火) 23:18:59ID:qo1KKw1q
>>321
いや、ゲームでも普通はそういうプログラムを書く

それと識別させたいのならenumを使え
switchもつかえるし
0324名前は開発中のものです。2006/05/23(火) 23:34:50ID:qGRGm1GF
レスサンクス
おかげで設計ができてきた
enumすか・・あまり馴染みがないから学ぶよ

ところで>>321の4,5行目が素でわからない
アフォですまぬ
教えてもらっていい?
0325名前は開発中のものです。2006/05/24(水) 00:05:11ID:qo1KKw1q
ポリモーフィズムとかStateパターンとか
そのへんしらべてみるとわかるよ
0326名前は開発中のものです。2006/05/24(水) 00:29:52ID:0rz/nhQ6
おk、ゲーム作りながら勉強する
いろいろサンクス
0327名前は開発中のものです。2006/05/27(土) 11:28:27ID:MsTUcez+
VectorにStringとInteger入れて、取り出すときに
Integerの要素をStringでキャスト、変換したり
Stringの要素をIntegerでキャスト、変換したら
エラー出るかな 面倒くさいんでInteger、Stringで統一してるんだが

勉強すればわかることだけどもしよければレスちょうだい
0328名前は開発中のものです。2006/05/27(土) 11:38:38ID:EufEKVaf
それぞれIntegerとStringが対応してるんなら
class (名前)
{
public String getString();
public Integer getInteger();
}
みたいなクラスを作る

対応してないんだったら、String用のVectorとInteger用のVectorを別にする
0329名前は開発中のものです。2006/05/27(土) 11:49:40ID:ryxQUfnb
キャストはかならずクラスの関連性がないと無理
かならず数字を含む文字列ということであれば格納前に返還すればいいだけの話だが
この情報だけではどうしたいのかがわからない

あとゲームということは多少パフォーマンス気にすることも多いのだろうから
Swing部分使わないのならVectorよりはArrayListで

シングルスレッドならパフォーマンスはまずかわらんけどな
0330名前は開発中のものです。2006/05/27(土) 13:09:54ID:MsTUcez+
即&わざわざレス感謝
ArrayListの方がパフォーマンスいいのか・・・
大分Vector使ってコード組んじゃったから、今度からはそうしよう
RPGだからスレッドはマップのキャラ動かすのとアニメーションくらいしか使わないと思う

Vectorの指定された要素がIntegerかStringかで
変換、キャストしたのちifで分岐させて処理を分けたいと思ったんだけど
やっぱり元々のVectorを別にした方がわかりやすかった 対応してないし

話変わるけど、コマンドの実装が面倒だ・・
移動コマンド、アイテムコマンド、魔法コマンド、使用対象コマンド・・
それぞれにクラス作ってそのクラスのキーイベント処理メソッドを
現在のコマンドモードによって呼び分けなきゃならん
いい方法ないかな
0331名前は開発中のものです。2006/05/27(土) 13:39:56ID:8ehQx4Ia
よくわからんがキーイベントにゴリゴリ書いてるのか?
それならフレームワークの設計自体からやりなおしたほうがいいぞ
0332名前は開発中のものです。2006/05/27(土) 13:57:59ID:MsTUcez+
ゴリゴリ書いてる・・
とりあえず組んでみようとは思ったがマジで勉強が足りんらしい
チラ裏スマソでした
0333名前は開発中のものです。2006/05/27(土) 14:12:56ID:8ehQx4Ia
キーイベントではキーの入力フラグを上げ下げするだけ
そしてゲームのループ内でそのフラグを読み取る

これでおけ
0334名前は開発中のものです。2006/05/27(土) 14:23:34ID:MsTUcez+
ゲームループ内だとkeyTypedメソッドが呼ばれてから
時間差があるかもと思ってkeyTypedメソッドから
直接各コマンドクラスのメソッドを現在のコマンドモードで分岐させて呼んでた

ドラクエみたいなのを再現しようと思ってるんだがゲーム作りって難しいな
俺のゲーム作りが終わるまでJavaが生き残ってるといいんだけど・・

ここの住人はレベル高いね スレ汚しスマソでした
0335名前は開発中のものです。2006/05/27(土) 14:52:54ID:8ehQx4Ia
ループ内は60fpsとか固定でチェックするから問題ないよ

というか、普通のゲームはイベントで処理するところはほとんどないから
それを隠すためのフレームワークというかそんなもの

まず言語的にJavaがどうのこうのというよりゲームプログラミングに対しての
技術がちょっと足りないかなぁという感じがする

10~20年前だったらゲーム作りとかいろんな本で毎月雑誌に載ってたんだけどな

いまじゃ残ってるプログラム雑誌がなくなってるし、ユーザーが求めるものが
高すぎてギャップで苦しんでる人が多いのはつらい時代だな

とにかくメインループで取得して状態に応じてswitchで戦闘時なのか移動時なのか
キャンプコマンド中なのか分離するようにかけばおけ
0336名前は開発中のものです。2006/05/27(土) 17:41:03ID:MsTUcez+
ゲームの作り方か・・
一から設計見直すよ
マジで参考になった、ありがとう
0337名前は開発中のものです。2006/05/28(日) 16:35:03ID:su6FTHmr
C++だとエフェクト(爆発とか)は加算合成を使うって書いてあるんですがJavaでも同じような方法で実装する手段ありますか?
0338名前は開発中のものです。2006/05/28(日) 17:06:46ID:oT4lybEG
Java2Dには通常合成はあるが加算合成はない
自前で実装するかJOGLとかで3Dで描画するしかない

>>11とかのライブラリに単純な合成がある模様
0339名前は開発中のものです。2006/05/28(日) 22:35:07ID:L8EQs44V
>316
ifをバイナリツリーみたいな構造にすれば
log2(100)の回数の比較だけで済むんじゃないか?
0340名前は開発中のものです。2006/05/30(火) 19:56:51ID:AkbGbw5f
mpeg2のような差分圧縮形式のシーケンシャルアニメーションって負荷高いですか?
レイヤー可能でそれを実現できたらコンパクトになるなと思ったのですが
0341名前は開発中のものです。2006/05/30(火) 21:02:41ID:bnvMLnBd
Javaの質問と関係ないな
効率がいい場合と効率が悪い場合があるっしょ
0342名前は開発中のものです。2006/05/30(火) 22:16:22ID:AC7eOzy5
>>339
ポリモフィズムで解決という結論がとっくに出ていると思うのだが
0343名前は開発中のものです。2006/05/31(水) 19:31:13ID:kqayNosp
みんなが配布物に同梱してるSPIってOGG Vorbisくらい?
これが便利ってのがあったら教えてください。
0344名前は開発中のものです。2006/05/31(水) 22:06:19ID:H+lYwXra
だろうね
OggVorbisさえ再生できればだいたいこまらん
0345名前は開発中のものです。2006/06/01(木) 20:01:54ID:oy8AdH4m
Javaのゲームライブラリ作成中。Flashの1/2くらいの表現力、生産性が目標。
まぁ皆も半月くらいでライブラリは作って、オーサリング環境作るのに挫折するんだろうけどね。
0346名前は開発中のものです。2006/06/01(木) 23:16:05ID:mTuQuIix
普通に考えてFlashより表現力は上だし
生産性もFlashはスクリプトがおわっとるからまけないだろ
0347名前は開発中のものです。2006/06/01(木) 23:24:39ID:IyLxQihX
実行環境の普及率と人々のイメージ
0348名前は開発中のものです。2006/06/02(金) 02:24:25ID:IlXUhKKR
FLASHと比べるんだからブラウザ上で動かすんだよな
・MIDIや圧縮音声を再生する
・BGMと映像を確実に同期させる
・表示サイズを変更するとそこそこのクオリティで拡縮表示する
あたりが大変そうだ
0349名前は開発中のものです。2006/06/02(金) 07:57:55ID:OCsBTCKI
・JavaSoundでmidiと圧縮音声は問題なく可能。すぐ上でOggの話が出てる。
・BGMとの同期はそうつくればいいだけ。
・拡大縮小時にアンチエイリアスをかけるかどうかの設定が可能。アルゴリズムも設定可能。

別に大変じゃないし
0350名前は開発中のものです。2006/06/02(金) 21:25:12ID:cNNwG7w6
Flashは、例えばMovieClipの完成度の高さが大いに参考になる。
あれはComposite、Prototype、Flywightなどの
パターンの組み合わせがかなり洗練されててしかも使いやすい。

なんかFlash8.5からはさらに高度なAPIを持つらしいし
実装の研究をする教材としてはかなり好奇心がくすぐられる。
0351名前は開発中のものです。2006/06/05(月) 07:16:50ID:voSd2aR7
JavaでノベルゲームとかRPGって作れますか?
0352名前は開発中のものです。2006/06/05(月) 10:04:02ID:EcpAwWeS
macromediaはずっとデザイナー偏向で作ってきたけど
adobeとの合併で技術者向けのAPIも良くなってくと思う

でもFlashの対抗馬である事に関して、Sunは殆ど興味ないみたいだな
5年前のJavaに今の速度があればいい勝負になってたかもしれんのに

>>351
うん
0353名前は開発中のものです。2006/06/06(火) 01:13:29ID:wO6xzgzA
>>351
余裕

>>352
Flashの代替はのぞんでないだろ
今はアプリと鯖メインでは?

ただJAX-WSとかGroupLayout標準装備があるんで
企業向けではアプレットやWEBStartが今でも多少使われているのが
今後さらに加速するかも
0354名前は開発中のものです。2006/06/06(火) 23:16:48ID:/CfzneHU
個人的にはアプレットが一番好きだ
Webで公開して気軽に遊んでもらえるし
0355名前は開発中のものです。2006/06/06(火) 23:20:22ID:wO6xzgzA
1.1時代のアプレットだとまともにうごかんしな
1.2以上だと別途セットアップが必要
1.2時代のJREなら今のブロードバンド時代なら問題は少ないのだが
5.0のサイズはすげぇ
1.4がかわいく見えるくらい
0356名前は開発中のものです。2006/06/07(水) 21:23:04ID:IghNSOPk
今はJavaくらいふつうに入れてない?
メーカー製パソコンとかって入ってないの?
0357名前は開発中のものです。2006/06/07(水) 21:41:53ID:4a3JF+Q3
まあJREも楽勝でインスコできるからな
0358名前は開発中のものです。2006/06/07(水) 23:03:47ID:k1IxK3O2
>>356
バージョンは買ったときのマシンでばらばらだしそれを期待するのはちときつい
ゲームなら新しいバージョンになればどんどんよくなってるのが敏感にわかる
0359名前は開発中のものです。2006/06/14(水) 15:09:12ID:LwkvhD3f
>>354
JavaWebStartも良くない?
あれ対応のゲーム出てくると使う側としては楽チンなんだが。見ないね。
0360名前は開発中のものです。2006/06/14(水) 17:48:02ID:Kbfca28q
Javaで簡単なゲーム作るにはどれ位勉強すればいいですか?
0361名前は開発中のものです。2006/06/14(水) 18:00:49ID:gnk1ZbZr
「簡単なゲーム」の定義と脳味噌の質によります
0362名前は開発中のものです。2006/06/14(水) 18:55:46ID:oiUcwSTz
>>360
3じかん位かな?
0363名前は開発中のものです。2006/06/14(水) 20:43:32ID:E7n+afyq
アプレットにしてもWebStartアプリケーションにしてもセキュリティの問題がつくからね
0364名前は開発中のものです。2006/06/14(水) 21:01:18ID:KYL0jDeY
>>363に横から追加
Java Web Startってサーバー側にmime-typeの追加が必要だから、
レンタル鯖じゃ動かない可能性あり。

MIME-TYPE:application/x-java-jnlp-file
0365名前は開発中のものです。2006/06/15(木) 13:30:54ID:tNRE7/uO
>>364
そこは連鎖場屋の中の人にMIME-TYPEの使いを頼めばなんとかなる予感。
0366名前は開発中のものです。2006/06/16(金) 00:52:38ID:yygRlJ/S
apacheなら個人でもなんとかなるが、運用次第だな
0367名前は開発中のものです。2006/06/17(土) 12:40:34ID:msfIS4LL
レンタルサーバーでJMSとか使えないかな
ApacheのActiveMQとかで低負荷のCGI代わりに使いたい
0368名前は開発中のものです。2006/06/17(土) 13:13:35ID:Z2AWkk9k
1台丸ごと借りるならいけるけど
月1,2万かかるよ
0369名前は開発中のものです。2006/06/17(土) 13:31:48ID:msfIS4LL
それだと完全にASP側に回ってるのと変わらないね
diceやtalkなどシンプルな機能をメッセージングできれば
使い方を決めるのは利用者側みたいなのイメージしてたんだが
0370名前は開発中のものです。2006/06/17(土) 14:46:45ID:Z2AWkk9k
DBにしてもレンタル鯖のは使い物にならないのと同じ
0371名前は開発中のものです。2006/06/17(土) 17:29:15ID:cZqcM90l
昨今のDIブームに乗ってアスペクト志向を取り入れようとして挫折気味
設計だけが楽しいみたいな状態に陥ってしまったw
0372名前は開発中のものです。2006/06/17(土) 18:48:38ID:Z2AWkk9k
ゲーム開発でアスペクトが生きるかどうかはデバッグ時以外では微妙だが
DIはたぶん便利になる
俺も次のゲーム開発ではDIで開発するつもり
0373名前は開発中のものです。2006/06/17(土) 23:46:12ID:2TpnxAFo
ゲーム開発でDIって例えばどんなの?
0374名前は開発中のものです。2006/06/17(土) 23:58:20ID:kRFswYuv
例えば以下の内容を記述した設定ファイルを用意する
<resource id="hoge" path="rsrc/hoge.jpg" gen="org.hoge.SPIImageLoader"/>

んで

ImageLoader il = new ImageLoader(conf_path);
BufferedImage img = (BufferedImage)il.getImage(id);

これが基本形。こっからどうするかは腕次第。
0375名前は開発中のものです。2006/06/19(月) 21:46:48ID:Zb7E8WNx
サウンドにフェード(イン/アウト)、パン(レフト/ライト)の加工をしたいのですが
ぐぐって見た限りではそれらしきところが見当たりませんでした。
これらは割りと基本的なものだと思っていたのですが、Javaにはない機能なのでしょうか?
0376名前は開発中のものです。2006/06/20(火) 00:23:13ID:z0sECMlC
あります
0377名前は開発中のものです。2006/06/24(土) 21:54:42ID:pcuzjDvS
フェードはFloatControlで出来ると思うけど、パンってどうすればできるの?
2スピーカーなら2スピーカー分のFloatControlが必要になるよね?
0378名前は開発中のものです。2006/06/24(土) 22:08:59ID:pcuzjDvS
あ、そういうことか。自己解決orz
0379名前は開発中のものです。2006/06/25(日) 14:38:34ID:fAOFmqJM
MIDIのSequencerでループさせようとしても
ループの開始時のgetTickPosition()が-2000とかなって余計な雑音が入る。
setLoopStartPoint(0)と設定しても効果なし。
現在はisRunning()でsleepはさむ方法でループさせているが気持ち悪い。

何かよい解決方法があれば教えてください。
0380名前は開発中のものです。2006/06/25(日) 16:59:01ID:B6He1TJy
MIDIに送り出す部分を自分で作ってるの?
そうではなくMIDIファイルから単に流すだけならループ関係はどうしようもないよ

音源ドライバとか昔の8bit16bit時代ならいくらでも情報は手に入るから
そのへんさがすしかないかな
0381名前は開発中のものです。2006/06/25(日) 20:25:58ID:US/w5wC7
Java2Dと違ってJavaSoundはちょい敷居が高めだね
ogg対応かつ簡単なエフェクトが掛けられるAudioClipが登場してほすぃ
標準で。
0382名前は開発中のものです。2006/06/25(日) 20:36:42ID:AQjDLDTE
AudioClipは使い物にならないから今の実装だとoggが再生できてもいらね
0383名前は開発中のものです。2006/06/25(日) 20:42:16ID:US/w5wC7
だからand条件つけてるやんw
0384名前は開発中のものです。2006/06/25(日) 21:37:23ID:AQjDLDTE
エフェクトつけれたところでいらんだろ
あんなバッファサイズ最大制限が小さくオンメモリ必須なClipは

実装上の問題で音楽にも効果音にも使えないし

あとJava2DよりJavaSoundのほうが敷居は低いと思うよ
5.0以上ならだいぶ使いやすくなったJavaSoundにたいしていまだにアクセラレーションの聞く範囲がせまく
アルファブレンドもほとんど使えないJava2Dよりはね
0385名前は開発中のものです。2006/06/25(日) 21:43:50ID:US/w5wC7
それは「敷居」とは関係ないのでは?
0386名前は開発中のものです。2006/06/25(日) 22:12:46ID:AQjDLDTE
いやいや十分敷居は高いよ

ゲーム用と出ないのならさほど意識することはないのだろうが、
ソフトウェア転送になると目も当てられない

ム板ならともかくこの板ゲーム製作板だしね
0387名前は開発中のものです。2006/06/26(月) 20:32:48ID:MgtqB2cg
アルファブレンドが敷居が高いとか馬鹿なこと言ってるし
そもそも敷居の意味がわかってないようだな
0388名前は開発中のものです。2006/06/26(月) 23:48:06ID:6e6dhTU9
アルファブレンドじゃなくてアクセラレーションがきかない描画ってのが敷居が高い。
JavaSoundは非常にシンプル。DirectSoundやってたならすぐにわかるだろうさ。

ようは2Dの知識がない人がJava2Dを扱うのが大変と感じるか
Soundの知識がない人がJavaSoundを扱うのが大変と感じるかの違い。

まったく知識がない場合どちらも難しいだろうが、Java2Dのほうが範囲が広すぎて難しいと思われ。
JavaSoundのほうが難しいと感じるのならあなたは2Dの知識はそれなりにあって
Soundのほうが苦手ということだろう。
0389名前は開発中のものです。2006/06/27(火) 00:34:52ID:VajeLVWc
所詮はビットマップなのに何が難しいんだか
0390名前は開発中のものです。2006/06/27(火) 00:54:30ID:RNb1/qTw
java 画像 の検索結果のうち 日本語のページ 約 3,610,000 件中 1 - 10 件目 (0.04 秒
java 音楽 の検索結果のうち 日本語のページ 約 2,310,000 件中 1 - 10 件目 (0.03 秒)

java イメージ の検索結果のうち 日本語のページ 約 1,780,000 件中 1 - 10 件目 (0.09 秒)
java サウンド の検索結果のうち 日本語のページ 約 710,000 件中 1 - 10 件目 (0.11 秒)

"java.awt.image" の検索結果のうち 日本語のページ 約 38,500 件中 1 - 10 件目 (0.02 秒)
"javax.sound" の検索結果のうち 日本語のページ 約 11,400 件中 1 - 10 件目 (0.02 秒)

これで十分だろ、以降馬鹿レス禁止。
0391名前は開発中のものです。2006/06/27(火) 10:22:35ID:GJGczP/s
検索結果が多いということはわからないからネタにしているのかその逆なのか判断は難しいな
あとJava2Dはピクセル単位での処理だけじゃないから割と面倒だよ
0392名前は開発中のものです。2006/07/09(日) 17:44:21ID:O0aQTArO
今日書店寄ってきたが、3冊あったJavaゲーム本で
JavaSoundに触れていた本は0冊だったw
Javaでゲームなんて作ってんじゃねーよって感じなのだろうか
0393名前は開発中のものです。2006/07/10(月) 14:41:59ID:7etPnpyv
まず、MIDIが使えない。
JavaのMIDIデバイスは古いバージョンのままで、多くのファイルが
正常に演奏できない。音が変になる。
OSのMIDIデバイスを取得して、その出力ポートに切り替えるメソッドは
どうやら中身が実装されておらず、事実上切り替えられない。

Waveは正常に演奏できるけど、そのショートカットであるAudioClipは、
短い曲だと何故かloopでしか演奏できない。さらに幾つインスタンスを作っても、
同じファイルデータだと勝手に一つのWaveハンドルに一本化してしまう様で、
同じWaveを複数同時に演奏できない。

陳腐な批評になるが、SUNのAPIは設計は最高なんだけど実装が・・・・
0394名前は開発中のものです。2006/07/10(月) 21:24:37ID:ykWXL1Xc
>>392
ゲーム本じゃないけど
これの最後の章あたり、ちょこっとSound APIに触れてた
ま、これだけのために買うのはもったいないが・・・
ttp://www.oreilly.co.jp/books/4873112788/toc.html

あと俺の知ってるのは
JavaWorld 2001年10月号、2004年5月号
Cmagagine 2002年8月号と9月号
にちょろっと載ってた
javax.sound.sampledパッケージ使って
複数の音声を同時に再生とかやってた
0395名前は開発中のものです。2006/07/12(水) 00:08:04ID:ndOxEXf9
>393
Java 5.0あたりでは多くのMIDI問題は修正されているんじゃないの?
0396名前は開発中のものです。2006/07/12(水) 00:31:43ID:6aHYcbBn
MIDIで音が変になるか?

AudioClipはまともな実装にしてほしいのは同意
結局自分でソースライン書くしかないからね
せめてバッファ長とか指定できねーのかな

それでもDirectSoundくらべてかなり楽なのはいいけどね


JavaSoundは本読むより実際にいじってみるほうが早いよ
難しくはないし、5.0以降でかなり楽になってる
ただ、JavaSoundDemoが5.0で動かないとかがあふぉすぎ
0397名前は開発中のものです。2006/07/21(金) 19:29:07ID:rgZqd6WV
>MIDIで音が変
サウンドバンクのせいじゃね?
http://www.new-arrow.com/~pc/game/soundbank/soundbank.html
0398名前は開発中のものです。2006/08/05(土) 23:05:31ID:Uq7IRr/q
JOGLでGLJPanelは速度的に使えない?
jogl-demosのJGaersで35fps位しか出ないんだけど…うちのオンボードのビデオが弱すぎ?

Javaのバージョンは、1.6.0-beta2と1.5.0_07
JOGLのバージョンは、JSR-231 beta 05 - June 8

OS: WindowsXP Professional SP2
INIT GL IS: com.sun.opengl.impl.GLImpl
GL_VENDOR: Intel
GL_RENDERER: Intel 915G
GL_VERSION: 1.4.0 - Build 4.14.10.4363
0399名前は開発中のものです。2006/08/06(日) 01:44:54ID:kmAOB+5B
jwsのdemoみてみたけどfps表示されないね
昔見たような気がしたけど
0400名前は開発中のものです。2006/08/06(日) 02:36:29ID:A5aINFFL
>>399
jwsのdemoにあるGaresはGLCanvas(AWT)使用の物です。

JRefractを起動してGaersを呼び出すか、
jogl-demos.jarを落としてJGaersを実行するかすれば、
fps表示有りのGaers(GLJPanel swing使用)が起動します。
0401名前は開発中のものです。2006/08/06(日) 16:06:10ID:kmAOB+5B
さんきゅ
JOGLなんて久しく触れてなかったから忘れてたよ

結果からいうとTransparentのチェックいれるとCPUパワー使い切って描画サイズ大きくすると
35fps前後まで下がるけど、これはずすとサイズに関係なく40fpsでCPU使用率は低い

自動リフレッシュはMAXが40fpsなのかな
ウインドウを動かすとfpsが上がって滑らかになるところを考えるとたぶん余力はある・・・のか
描画をすべておぺnGLでやってる場合はアクセラレーションがきいていると考えてよさそうだ

ソース読んでないけど
0402名前は開発中のものです。2006/08/06(日) 17:49:22ID:A5aINFFL
>>401
うちの環境(>>398)だと初期の描画サイズで35fps…
Transparentのチェックに関係なく、大きくしたらそれだけfpsが下がる。
やっぱオンボードビデオが貧弱かw

GLCanvasの方使っときます。
0403名前は開発中のものです。2006/08/06(日) 19:47:19ID:kmAOB+5B
FPS指定のアニメータつかった?
確か今は新機能としてあったはず
あとCPU使用率もみたほうがいい

OpenGLもJ2SE5.0のOpenGLアクセラレーションのようにまともに実装されてないのかもね
あっちは描画もおかしくなるから最悪だけど、nVidiaとATI以外はOpenGLが動く環境であっても
はねられるというすばらしい実装
結局Win32環境でDirectXアクセラレーション使うしかまともな回答がない

オンボードでも845GあたりからOpenGLはまともに動くようになってきたのにねぇ
■ このスレッドは過去ログ倉庫に格納されています