- 1 名前:名前は開発中のものです。 [2005/10/27(木) 09:43:50 ID:dzSvRQXE]
- Javaでのゲーム作成について情報交換をするスレです。
ゲーム作成以外の話題はム板(pc8.2ch.net/tech/)、 他言語に関する話題は他スレでお願いします。 前スレ JAVAでゲーム作成 pc8.2ch.net/test/read.cgi/gamedev/1074347252/ テンプレは>>1->>10あたりを参照
- 32 名前:名前は開発中のものです。 mailto:sage [2005/11/04(金) 22:28:24 ID:SFh7BoY4]
- 確かにちょいちょいした作業ならperlも便利だが
ちょっと大きなプログラムになるとデバッグ時間が指数関数的に増えるし 半年も経つと自分で書いたソースでも完全意味不明に見えるのは困るな
- 33 名前:名前は開発中のものです。 mailto:sage [2005/11/04(金) 22:52:05 ID:qJSgT1NL]
- 昔のWebアプリはPerlが主流だったが、掲示板やチャット程度ならともかく、
業務アプリみたいな巨大な物をメンテナンスすると死にそうになる。 最近のPerlは知らんが。
- 34 名前:名前は開発中のものです。 mailto:sage [2005/11/04(金) 23:16:25 ID:BPGzYPZF]
- しかし、Javaはあとからあとから新しいWebアプリフレームワークだの
なんだの、いろいろ出しすぎw
- 35 名前:名前は開発中のものです。 mailto:sage [2005/11/04(金) 23:20:17 ID:ukNdIpNn]
- ライブラリなんて必要とする携帯にあわせて選択すればいいだけだろ。
得意不得意はそれぞれあるし、目標とするものが違うからな。
- 36 名前:名前は開発中のものです。 [2005/11/05(土) 08:59:55 ID:nyk5I5ZL]
- >>34
Javaは最先端の実験言語みたいだな。大学の研究でよく使われるからかも。
- 37 名前:名前は開発中のものです。 mailto:sage [2005/11/05(土) 13:00:36 ID:3XtwtUcI]
- >>36
大学の研究でよく使われるのもあるけど、 Apacheを筆頭に無数のオープンソース開発者がいるからだと思うぞ。
- 38 名前:名前は開発中のものです。 mailto:sage [2005/11/05(土) 14:22:37 ID:bFW/1MqR]
- Apacheのプロジェクト数は異常なくらいだな
問題はこのスレに関係があるライブラリはなさそうなことくらいか まぁApache XML-RPCは目的によっては使えるか
- 39 名前:名前は開発中のものです。 mailto:sage [2005/11/05(土) 15:12:24 ID:JuIHCGWg]
- みんなどのくらい非ネーチブパッケージ使ってるのかな。
シミュレーションとかちまちましたデータ中心ならXMLデータバイディングとか かなり使えそうとか思うけど。 自分の場合はついついインタプリタ仕込む癖がある。
- 40 名前:名前は開発中のものです。 mailto:sage [2005/11/05(土) 15:14:53 ID:bFW/1MqR]
- 標準でXPath使えるようになったから大分楽になったけどね
ゲームつくろうって人間は自前で実装が多いと思われ なんせ、ばらす必要はなくてたとえばList<Element>でもっていけば、 Beansとちがって仕様変更に強かったり、例外処理がしやすかったりする
- 41 名前:名前は開発中のものです。 mailto:sage [2005/11/07(月) 02:44:21 ID:vwx0ALlq]
- WikiのJava実装のソースを読むと正規表現が山のように出てくる
WikiはPerlで作ったのをコピーしてるからそうなっているんだと思うけど これが、Perl文化かと思ったよ
- 42 名前:名前は開発中のものです。 [2005/11/15(火) 23:05:03 ID:P0cI9ezk]
- OGGって再生コストがえらい高いらしいけど
それをJavaで再生したらどえらいことになったりする? Wavのがディスク食うだけでいいから安定するのかな?
- 43 名前:名前は開発中のものです。 [2005/11/15(火) 23:12:48 ID:ShfCvdFQ]
- 質問は明確に
- 44 名前:名前は開発中のものです。 [2005/11/15(火) 23:19:48 ID:P0cI9ezk]
- CPUへの負荷が高いそうなのですが、実用レベルなのですか?
- 45 名前:名前は開発中のものです。 mailto:sage [2005/11/15(火) 23:33:03 ID:Wrh6FbhN]
- >>42
>>11のを見る限りCPU使用率は1GHzで1,2%ってところでは?
- 46 名前:名前は開発中のものです。 mailto:sage [2005/11/17(木) 20:29:55 ID:8R2XVZPE]
- フルスクリーンから
device.setFullScreenWindow(null); System.exit(0); とやって終わらせると画面真っ黒になって操作不能になることが あるのですが、なる理由がわかりません。 あと、フルスクリーンにするときそこで処理が止まってctlALTDelで終わるしかない ときもあるのですがどうすればよいのですか? 1_4_2です。
- 47 名前:名前は開発中のものです。 mailto:sage [2005/11/17(木) 20:35:02 ID:2shdXMro]
- System.exit()すればすべて開放するから
問題はないはずだけど ベータのときはnullわたしたやつはダメだったけどね 今は大丈夫だったと思ったけど あとはチップとビデオドライバによるかも 安定してDirectX動いてる?
- 48 名前:名前は開発中のものです。 mailto:sage [2005/11/17(木) 21:44:27 ID:8R2XVZPE]
- それを確認するにはどうしたらいいんですか?
PC初心者板逝きですか?
- 49 名前:名前は開発中のものです。 mailto:sage [2005/11/17(木) 23:38:12 ID:2shdXMro]
- >device.setFullScreenWindow(null);
これをコメント化してみたら? あとは他のJavaのフルスクリーンのゲーム試してみるとかどうかな
- 50 名前:46 mailto:sage [2005/11/18(金) 20:45:39 ID:Jjzsx+o7]
- フルスクリーンで操作不能になったりする理由はわかりませんでしたが
とりあえず動くのでよしとすることにしました。 ですが背景を付けてみると ぱちぱちしてとても目に悪いことこの上ないという状況になりました。 これがちらつきというのでしょうか? BufferStrategyは使っているのですがどうすれば改善するのでしょうか?
- 51 名前:名前は開発中のものです。 mailto:sage [2005/11/18(金) 21:13:51 ID:bdg3zZZw]
- BufferStrategyでページフリッピングしてれば大概の環境で垂直同期取るはずなので
ちらつくことはないと思うんだが、他のアプリでもちらついてるの?
- 52 名前:名前は開発中のものです。 mailto:sage [2005/11/18(金) 21:16:43 ID:yEqWeMq1]
- フルスクリーンじゃなくても垂直同期とるんだっけ?
- 53 名前:名前は開発中のものです。 mailto:sage [2005/11/18(金) 21:24:56 ID:bdg3zZZw]
- フルスクリーンのみな
ウインドウモードはフリッピングのフラグが降りてブリットのフラグがたってるはずだろ
- 54 名前:46 mailto:sage [2005/11/18(金) 22:02:38 ID:Jjzsx+o7]
- もしや、自分の環境が大概の外にあるということでしょうか。
他にはコマンドプロンプトしか動かしてません。 ちらつくときとちらつかないときがあるのですが 背景を付けると100%ちらつくこの状況。 フルスクリーンを諦めるしかないのか
- 55 名前:名前は開発中のものです。 mailto:sage [2005/11/18(金) 22:16:33 ID:bdg3zZZw]
- だからフルスクリーン対応のアプリ立ち上げてみればわかるっしょ
- 56 名前:46 mailto:sage [2005/11/19(土) 06:56:25 ID:59ba+Epe]
- 東方、どっかで拾ったフルスクリーンにボールが増えていく
もの(Java)、百本ゲームのゲームは問題なく動きます。
- 57 名前:名前は開発中のものです。 mailto:sage [2005/11/19(土) 13:09:03 ID:BsSsGwkc]
- なら自分のコードがわるいってことかと
- 58 名前:46 mailto:sage [2005/11/19(土) 13:40:21 ID:59ba+Epe]
- 背景の描画オブジェクトにフレームのを
渡していたことが発覚。 正直すみませんでした。 ちらつきは直りましたが、それ以前の操作不能になること がある時があるのはわからない。 これもどこか自分のが悪いのだろうか。
- 59 名前:名前は開発中のものです。 mailto:sage [2005/11/20(日) 02:35:57 ID:PktMjKAY]
- >>46=58
一言アドバイス 発覚したってことは他も可能性アリ 煮詰まってそうだけど、連レスしてないで とりあえずもちつけ で、もっかいソースとにらめっこしてみようぜ!
- 60 名前:名前は開発中のものです。 [2005/11/26(土) 22:10:42 ID:wK3zX5BN]
- Javaのパワーを生かしてツクールやFlashみたいなエンジン作ろうよ
馴らしたSEの人が設計してくれるならコードは手伝うよ
- 61 名前:名前は開発中のものです。 mailto:sage [2005/11/26(土) 22:25:05 ID:sU6iOuYI]
- まず自分でたたき台を作るくらいが必要と思われ
ツクールにしてもダンテのようにフラグだけでいいのか、スクリプトでいいのか スクリプトなら次期バージョンで標準実装だとか 出だしはコードと設計は同一者でひっぱっていくくらいじゃないと オープンソースなプロジェクトは成功しないと思われ SEだ、プログラマだといったすみわけはいらない まず、>>60がJavaでスタンドアロンのゲームを作れるかどうかという点がポイントになる
- 62 名前:名前は開発中のものです。 mailto:sage [2005/11/26(土) 22:53:12 ID:wK3zX5BN]
- >>61
すまん。実は業務系でSwingは勉強中なんだ。
- 63 名前:名前は開発中のものです。 mailto:sage [2005/11/26(土) 22:56:43 ID:sU6iOuYI]
- いや、誤る必要ないよ
業務系でJavaさわってるならまず言語の基本は問題ないとして Java2Dを筆頭にフルスクリーンとか時間管理、JavaSoundあたりが触れるようになるといいね
- 64 名前:名前は開発中のものです。 mailto:sage [2005/11/26(土) 22:56:47 ID:WkbR04YY]
- 画像を回転させようと思って
AffineTransform form = new AffineTransform(); draw(){ form.rotate(x*Math.PI/180,画像の幅/2,画像の高さ/2); 画像イメージの描画オブジェクト.drawRenderedImage(画像イメージ,form); 描画先の描画オブジェクト.drawImage(画像イメージ,null,gx,gy); } というふうにすると、背景が透明なでただ↓と描かれている画像を使うと背景が黒くなり矢印が見えなくなります。 また、横長い画像をつかって見ると画像の中心に 画像の高さを直径に丸くなって回転をし その丸以外の部分が白くなってしまうんです。 ただ画像をその場で回転させて 表示させたいんですがどうすればいいんでしょうか?
- 65 名前:名前は開発中のものです。 mailto:sage [2005/11/26(土) 23:04:49 ID:wK3zX5BN]
- >>63
最初はCっぽくなるかも知れないけどやってみる。
- 66 名前:名前は開発中のものです。 mailto:sage [2005/11/26(土) 23:11:28 ID:sU6iOuYI]
- >>64
もちつけ なんか日本語が分かりにくいぞ まずGraphics2Dのrotateメソッドを使ってみて描画してもおかしいかチェック それに画像イメージってやつをを上書きしてしまってるように見える
- 67 名前:名前は開発中のものです。 mailto:sage [2005/11/26(土) 23:29:16 ID:PhHUEMA7]
- >>60-63
Flash やツクールみたいのはゲームどうこうより、 アプリとしての設計の方が100倍重要だと思うけどなー エンドユーザ的意見としては、時間制御 UI は Flash じゃなくて AfteEffects を参考にして欲しいと願う。 Shape エディタがあったら超便利なのにと思う事は多々あるので 正直これはかなり興味ある。 そのうち Sun が出すんじゃねーかとか思ってたけど全然だし。 このへんは現状だと SVG (Illustrator -> Batik) とかになるんだろうけど こっち方面は面倒すぎて手が出せん。
- 68 名前:名前は開発中のものです。 mailto:sage [2005/11/27(日) 00:07:17 ID:XSFMA6v6]
- まず最低限ゲームが作れないとどういう設計したらいいかわからんのでは?
- 69 名前:名前は開発中のものです。 mailto:sage [2005/11/27(日) 00:25:55 ID:H8JPzJcw]
- 以下でJavaで作るゲームの基本を学ぶ。
Java基本機能だけのベースとしてはかなりいい材料と思う。 www.brackeen.com/javagamebook/
- 70 名前:名前は開発中のものです。 mailto:sage [2005/11/27(日) 01:11:36 ID:bXtTt1i7]
- >>69
すごいね。いい勉強になりそう。 TimerとGraphics2Dでアニメくらいは出きるからちょこちょこ学んでみるよ。
- 71 名前:名前は開発中のものです。 mailto:sage [2005/11/27(日) 01:13:57 ID:laCqt6jf]
- >>68
それは多分作ってほしいと思うもの違いがあるのかも。 オレが想像したのは、エンジンはメタなインターフェイスを提供して ゲーム的なエッセンスはエンドユーザが作るって形のものだから。 んで実際の所、描画の最適化とか絶対に必要になるけど、 それがゲームに限った話かと言われると微妙な気がするのよ。 むかーし似たようなモン作ろうとしたけど (作りかけたま放置) 必要としたゲーム的な知識ってタイマーの使い方くらいだった。 >>70 とりあえずガンガレ!
- 72 名前:名前は開発中のものです。 mailto:sage [2005/11/27(日) 01:16:07 ID:XSFMA6v6]
- >>70
スレッドプールとか5.0で標準で実装されてるのもあるし注意な とくにJavaSoundのストリームと偽ったところはなめてる感じ
- 73 名前:名前は開発中のものです。 mailto:sage [2005/12/05(月) 22:23:20 ID:DrFNVWzV]
- gifなどの透過画像をImage等に描画して
そのImageのなにも描いてない部分を透過させるにはどうしたらよいのですか?
- 74 名前:名前は開発中のものです。 mailto:sage [2005/12/05(月) 23:52:46 ID:YnmMxKVz]
- >>73
BufferedImage(int, int, int)で 3番目の引数にBufferedImage.TYPE_4BYTE_ABGR指定で透明になるかな?
- 75 名前:名前は開発中のものです。 mailto:sage [2005/12/06(火) 12:56:55 ID:m90gA8zy]
- Java2Dの基本なんだけど、Java2Dをちゃんと説明してる書籍ってまったくないな
- 76 名前:名前は開発中のものです。 mailto:sage [2005/12/06(火) 18:51:26 ID:vSoUCqBN]
- >>74
うまくいきました。ありがとうございます。 しかしcIearRectするとダメなようです。 画像を回転させるために仮Imageを作って それに画像を描画してそのImageを回転させる という風に考えていたのですが他の方法を考えます。
- 77 名前:名前は開発中のものです。 mailto:sage [2005/12/06(火) 19:04:14 ID:m90gA8zy]
- 画像の回転するのになんで1回かますの?
- 78 名前:名前は開発中のものです。 mailto:sage [2005/12/06(火) 19:42:22 ID:vSoUCqBN]
- Graphics2D tmp = (Graphics2D)chara.getGraphics();
tmp.lotate(chara,characenter.x,characenter.y); g.drawImage(chara,null,charagx,charagy); てな感じにやってたんですけど、なぜか全く回転しなかったので 仮画像を作ってそれを回転させるという風にしました。
- 79 名前:名前は開発中のものです。 mailto:sage [2005/12/06(火) 20:43:53 ID:m90gA8zy]
- 回転をセットするのは描画先のほうだよ?
すでに描画されてるのはどうしようもない
- 80 名前:名前は開発中のものです。 mailto:sage [2005/12/06(火) 20:51:15 ID:57K4+g+R]
- Graphics2Dオブジェクトにアフィン変換かけてさらに
Graphics2Dオブジェクトに描画でできんのかな
- 81 名前:名前は開発中のものです。 mailto:sage [2005/12/07(水) 00:29:46 ID:R+Rh6YVG]
- すみません。自分の日本語読解力が足りないことにより
皆様から頂いた助言を活かすことができません。 少し、具体例を用いて説明して頂けいませんか?
- 82 名前:名前は開発中のものです。 mailto:sage [2005/12/07(水) 00:59:31 ID:xiUT9nsP]
- 1・画像をロードします
2・描画先を回転させます 3・ロードした画像を描画します
- 83 名前:名前は開発中のものです。 mailto:sage [2005/12/07(水) 01:56:14 ID:SEfUp1TO]
- 落ちものゲームで受け手(キャンバス)を上手く回転させて
指定された絵を完成させるゲームをイメージしてみるとか。
- 84 名前:名前は開発中のものです。 mailto:sage [2005/12/07(水) 06:51:27 ID:R+Rh6YVG]
- >>82-83
つまり、描画先を回転させて そこに描画して、回転させた分 逆回転させて他はもと通り、と解釈して実行し 成功致しました。ありがとうございます。 しかし、これは斜めになったとき 四角の余白が黒くなってしまいます。 これの解決方法はどうすればよいのでしょう? 背景を再び描画も考えましたが 回転させたものが塗り潰されてしまいます。
- 85 名前:名前は開発中のものです。 mailto:sage [2005/12/07(水) 09:35:30 ID:hZztkAcv]
- そこまで出来てるのに、なんで画像描画前に背景を
先に塗り潰すという発想がでてこんのだ。
- 86 名前:名前は開発中のものです。 mailto:sage [2005/12/07(水) 19:03:18 ID:R+Rh6YVG]
- 背景を描画して、回転したものを描画とやってるんですけど
______ |■/ \■| ↑回転した画像 て感じにうえの部分に黒い部分ができてしまうんです。 さて、どうしたものか?
- 87 名前:名前は開発中のものです。 mailto:sage [2005/12/07(水) 19:17:03 ID:ruXn40F6]
- ソース晒した方が早そうだな
- 88 名前:名前は開発中のものです。 mailto:sage [2005/12/08(木) 14:23:17 ID:wcnvECNE]
- g.fillRect(0,0,600,600);
g.rotate(time*PI/,characenter.x,characenter.y); g.drawImage(chara,null,gx,gy); g.rotate(-time*PI/,characenter.x,characenter.y); time++; これでいいんですよね?
- 89 名前:名前は開発中のものです。 mailto:sage [2005/12/08(木) 15:51:44 ID:Voeburfj]
- time*PI/, て何だよコンパイル通るのかよ
protected BufferedImage image = 知らん; protected Point2D center = 知らん; protected AffineTransform rot = new AffineTransform(); protected double rpf = 0.1; //回転の量 protected void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D)g; // ... ここで背景描画する // rpfの量だけ回転させて描画 rot.rotate(rpf, center.getX(), center.getY()); g2.drawImage(image, rot, null); } 2D じゃない方の Graphics の使い方はわすれた。
- 90 名前:名前は開発中のものです。 mailto:sage [2005/12/08(木) 16:27:30 ID:+Z+rNNsb]
- >>88
背景黒く塗ってるっぽいから黒くなるのは正しい動作だとみたが?
- 91 名前:88 mailto:sage [2005/12/08(木) 20:08:36 ID:wcnvECNE]
- 自分は色々説明がたりなかったよう。
>>89 すみません。このコードの前に int time=1; double PI = Math.PI; ってあって time*PI/は time*PI/180の間違いです。 そしてそのコードを実行した結果 見事指定した座標を中心にぐるぐると 私がしたいのはその場を動かずに回ることだったのですが。 というかこれでも黒い部分でてきました。すみません。 >>90 g.setColor(Color.GREEN); って事前にやってたんです。
- 92 名前:名前は開発中のものです。 mailto:sage [2005/12/08(木) 20:58:51 ID:+Z+rNNsb]
- 情報の小出しされてもわからん
該当部分のソースを最小限にしてコンパイルできるものを出したほうがいいんじゃね?
- 93 名前:名前は開発中のものです。 mailto:sage [2005/12/08(木) 21:03:25 ID:HtN2IVya]
- ttps://genuts.dev.java.net/servlets/ProjectDocumentList?folderID=0&expandFolder=0&folderID=2287
プロジェクト > games > games-middleware > genuts ttp://www.genuts.com/ Genuts Cheese Indigestion Puzzle オモシロスwww
- 94 名前:名前は開発中のものです。 mailto:sage [2005/12/09(金) 01:58:21 ID:DR3+EYk2]
- テキストリソース(RPGの会話文など)ってどう扱うべきでしょうか?
XML? properties?
- 95 名前:名前は開発中のものです。 mailto:sage [2005/12/09(金) 02:29:57 ID:HsQzl6B+]
- ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/io/ObjectOutputStream.html
- 96 名前:名前は開発中のものです。 mailto:sage [2005/12/09(金) 12:27:40 ID:wi5fEo9o]
- 自分が扱いやすいものでいいかと
修正もこまめに入ると思うし、文字だけじゃなくてたのパラメータも必要になると思うから XMLが汎用性では一番かと
- 97 名前:名前は開発中のものです。 mailto:sage [2005/12/09(金) 17:53:50 ID:3zLl7jhn]
- いいの見つけたお^^;
ttp://fivedots.coe.psu.ac.th/~ad/jg/ch1/index.html
- 98 名前:名前は開発中のものです。 mailto:sage [2005/12/09(金) 23:37:39 ID:6Nnex+8J]
- XMLパーサってあったっけ
- 99 名前:名前は開発中のものです。 mailto:sage [2005/12/09(金) 23:40:17 ID:HsQzl6B+]
- あるよ。DOMよりSAXのが個人的には好き。
- 100 名前:名前は開発中のものです。 mailto:sage [2005/12/10(土) 00:04:18 ID:KuqpST++]
- ゲームで使うとなるとSAXはファイル読み込みだけだろうな
内部ではElementでつかうのがいい
- 101 名前:97 mailto:sage [2005/12/10(土) 21:23:28 ID:h8wANggU]
- 画像回転のサンプルがここに載ってるお^^;
ttp://fivedots.coe.psu.ac.th/~ad/jg/ch04/index.html Graphics2Dは知らないお^^;
- 102 名前:名前は開発中のものです。 mailto:sage [2005/12/10(土) 22:25:02 ID:KuqpST++]
- いや、普通にJava2D楽だぞ
ただ、普段以上にメモリ使用量は把握していかないと駄目 GCがかなり増えるから 速度が必要な場合あらかじめ回転させておくとかが必要になるね アクセラレーションきかないから
- 103 名前:名前は開発中のものです。 mailto:sage [2005/12/10(土) 22:27:15 ID:MpQxaKQL]
- BufferdImageの効果が消滅するの?<回転
- 104 名前:名前は開発中のものです。 mailto:sage [2005/12/10(土) 22:35:58 ID:KuqpST++]
- 効果は消えるなんてことはないけど、速度が差が出る
Java2Dって高級すぎるAPIなんでどれがアクセラレーションきいて、どれがきかないのか チェックするのが大事 基本的に速度は1.4.2と5.0でかわってないよ アクセラレーションがきけば秒間にスプライトが万単位で描画できるはずだが やることをかえるとこれが一気に1/100以下に下がったりする
- 105 名前:名前は開発中のものです。 mailto:sage [2005/12/10(土) 23:04:18 ID:MpQxaKQL]
- うへ・・・回転拡大はご法度なのかな。
昔ながらのアナログ手法にしとくか
- 106 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 01:01:17 ID:xyghd8DO]
- 速度を求めないのと回転オブジェクトがいくつあるかによる
60fpsで128*128の回転スプライトが1000個は無理だと思う
- 107 名前:94 mailto:sage [2005/12/11(日) 12:16:09 ID:hWRTdhf0]
- >>96
>>100 XMLの方が柔軟性があって良いということですね。 propertiesは簡単な設定の保存程度にしておいた方が良いのかもしれませんね。 ありがとうございます。
- 108 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 14:37:45 ID:ohNVp0t4]
- >>106
400MHz、64MB、VRAM8Mでどこまで出来るかがポイントだな。 まあ回転なんてギャラガとか作ろうと思わなければ使わないけど。
- 109 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 15:20:14 ID:xyghd8DO]
- ギャラガくらいなら余裕
VRAM8MってことはTNTとかあのあたりかな ならアクセラレーションの速度も問題にならない メインメモリ64Mが一番のネックかと GCの調整はプロファイラとにらめっこになるね ヒープサイズ自体を24M以下に抑えてももVM方面で厳しい 1.4.2のほうがメモリ消費は少ないからそっちのほうがオススメか Pen3/1GHz+統合ビデオでテストしてみたけど 上で上がってた2DSTGは60fpsでサクサク動いた
- 110 名前:名前は開発中のものです。 mailto:??? [2005/12/11(日) 17:02:52 ID:5bLTV7mU]
- >>75
遅レスだが、これいいよ ttp://www.oreilly.com/catalog/java2d/
- 111 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 17:06:21 ID:xyghd8DO]
- 日本語訳がないんじゃさすがにここで質問する初心者にはすすめれんが
- 112 名前:名前は開発中のものです。 [2005/12/11(日) 17:43:34 ID:FJ8u3O2A]
- 1999年ってやけに古いけど大丈夫なのか・・・
- 113 名前:110 mailto:??? [2005/12/11(日) 18:11:19 ID:45Ys85hP]
- 個人的には、Graphics2Dでの描画にくわえて、
BufferedImageの細かい解説とか画像処理関連のことがら についておさえて書かれているところがおすすめ >>1999年ってやけに古いけど大丈夫なのか・・・ Graphics2Dの基本についてはそんな変わってないはず。 5.0以降どうなったかは知らんが。 あーでも画像ファイル読み込みでImageIO使う解説とかはなかったような。。 ま、そのあたりはWebの情報その他で補うとして、Java2D本体の包括的な 解説書としてはこれけっこういいと思う。 >>日本語訳がないんじゃさすがにここで質問する初心者にはすすめれんが これについては「がんばって読めや」といいたいが、それもなあ。。。 画像処理とかについては書いてないけど、 Graphics2Dでのprimitiveの描画ひととおり+基本的な変換(Affine変換とか)だけなら、 ttp://www.iamas.ac.jp/~furu/book/motion/ とかもいいかも。 でも、これらとかは本なんか見んでもWebに情報ころがってるな。
- 114 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 19:59:25 ID:xyghd8DO]
- ほとんどの場合ゲームで重要なのはGraphics2Dでどう描画できるかというより、
Graphics程度の低レベルAPIでもいいからどれがアクセラレーションきくかどうか、 速度的なものやメモリ使用量把握だからねぇ ところでGraphics2Dでそろそろ加算合成実装して欲しいんだがすばらしく放置だよな そもそも基本についてはSunのマニュアルで代替分かると思う
- 115 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 20:35:51 ID:CGEh3W0j]
- Java2Dに関して言えば、VolatileImageは、まだほとんどの環境で
透明、半透明が使えないので、事実上まともなゲーム制作には使えない。。。 createCompatibleVolatileImageメソッドでTransparency引数が 指定できるが、定義だけでまだ実装されてない。。。 つまり、BufferedImageを使うしかない。これへの描画メソッドに アクセラレーションが効いてるのはない。。。
- 116 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 20:40:29 ID:xyghd8DO]
- >>115
5.0からつかえるようになったけど?
- 117 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 20:43:08 ID:ohNVp0t4]
- VolatileImageからVolatileImageへ上書きすると透明じゃなくなるバグって無かったっけ?
- 118 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 20:45:55 ID:xyghd8DO]
- それは1.4.2まで
- 119 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 20:48:17 ID:xyghd8DO]
- あと描画元がBufferedImageでピクセルフォーマットが同じ場合
あるスレッショルドを超えると内部でVolatileImageにして転送してくれる この設定値を0にするのがまず基本 5.0からはこの動作範囲が広いようだ つまり、最適化されてないアプリだと高速化する可能性あり 1.4.2までにチューニングしてると速度向上は一切なし 5.0で画像周りの速度が速くなったというやつは大概設定ミス
- 120 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 21:36:17 ID:CGEh3W0j]
- >>116
使えない。5.0でも使えない。 どの環境(OS)で使えたのか教えてくだされ。
- 121 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 21:40:12 ID:CGEh3W0j]
- >>119
この設定値を0にするのがまず基本、とは? 設定値とは何を指してるのか? 具体的に教えてくだされ
- 122 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 21:56:41 ID:xyghd8DO]
- まずVolatileImage>VolatileImageでの透過転送は可能
1.4.2まではムリ 5.0から追加されてるメソッド使うからね Windowsで確認済み スレッショルド指定はSunのドキュメントにも書いてある これをメインクラスのstatic初期化にいれておけ System.setProperty("sun.java2d.accthreshold","0"); 標準出力に出るので、それを設定してあるアプリかどうかはすぐに分かる ちなみに0とは描画回数が0という意味 画像をBufferedImageにロードした段階でVRAMにも転送することを現す 1なら最初に描画しようとしたときにまずVRAMへ転送、そしてVRAM>VRAMを処理する この辺はすべてSunの日本語資料にある
- 123 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 22:10:48 ID:CGEh3W0j]
- >>122
自分もWindowsXpなのだけど、VolatileImage を使うと アルファ値0のピクセルが真っ白になってしまう。。。 列挙された全GraphicDeviceの全GraphicConfigurationから得る VolatileImageのTransparencyタイプが、全てOpaqueになってる。。。 本当にWindowsでValatileImageの透明機能が使えたのですか?
- 124 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 22:44:05 ID:xyghd8DO]
- そのだめだったコードかいてみそ
- 125 名前:名前は開発中のものです。 mailto:sage [2005/12/11(日) 22:51:58 ID:CGEh3W0j]
- >>124
GraphicEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice gd = ge.getDefaultScreenDevice(); GraphicsConfiguration gc = gd.getDefaultConfiguration(); VolatileImage image = createCompatibleVolatileImage(640, 480, Transparency.TRANSLUCENT); これで得る image は、半透明でないのです。。。 gd、gc を列挙させて、その全てから得るimageも半透明でないです。。。
- 126 名前:名前は開発中のものです。 mailto:sage [2005/12/12(月) 00:52:54 ID:5lGPHviO]
- Transparency.TRANSLUCENTはDirec3Dを有効にしないと駄目だったはず
BITMASKでの透過ならいける
- 127 名前:名前は開発中のものです。 mailto:sage [2005/12/12(月) 00:53:29 ID:5lGPHviO]
- そもそも半透明はアクセラレーションきかないので注意ね
- 128 名前:名前は開発中のものです。 mailto:sage [2005/12/12(月) 01:05:16 ID:5lGPHviO]
- ってやってみたらアルファブレンドが有効でちゃんと描画された
たぶんロードのところミスってると思うよ
- 129 名前:名前は開発中のものです。 mailto:sage [2005/12/12(月) 01:12:31 ID:5lGPHviO]
- ちなみに
ImageIOでロードしたアルファつき画像をそのまま128個描画 8fps ちゃんと設定したVolatileImageとBufferedImageが同じで 50fps となった アルファつきならVolatileImageにおく必要はないね
- 130 名前:名前は開発中のものです。 mailto:sage [2005/12/12(月) 01:17:38 ID:4tfiFb5f]
- System.setProperty("sun.java2d.accthreshold","0");
としておけば普通にBufferedImageでOKってこと?
- 131 名前:名前は開発中のものです。 mailto:sage [2005/12/12(月) 01:26:16 ID:5lGPHviO]
- ついでなんで
単なる透過を描画した場合 フルスクリーンモードならTRANSLUCENTでもBITMASKでも スプライト2048個描画で60fps維持 スプライトサイズは64*64で 画面モードは640*480にしたときの場合ね オンボードビデオでこれなのでnVIDIAとかATIとかのそれなりのつめば余裕で超えるかと 通常モードはDirectDrawのラッパだと考えればどれが速いかとか分かりやすいと思う
- 132 名前:名前は開発中のものです。 mailto:sage [2005/12/12(月) 01:28:24 ID:5lGPHviO]
- >>130
ほとんどの場合はそういうこと あくまでも描画先をVolatileImageで描画元はBufferedImageで VRAMにおくかどうかはインテリジェントに任せるというのがJavaらしいかな VRAMにおく優先順位とかもあるので頻繁に描画しないやつはそれを抑えておくといい この方法ならVRAM容量が多ければ加速しやすいとかそういう感じ 昔AGP登場時の思想にあったやつね
|

|