トップページgamedev
984コメント340KB

JAVAでゲーム作成

■ このスレッドは過去ログ倉庫に格納されています
0001JAVA初心者・・・04/01/17 22:47ID:eiE+Mw3o
はじめまして!!
今年に入ってからJAVAでゲームを作ってみようと勉強しています。
どなたか宝さがしゲームを作るうえで参考になるゲームとツール知りませんか??
知っていたら教えてください。<(_ _)>ぺこり
0632名前は開発中のものです。2005/05/23(月) 23:22:49ID:QaWBmtsL
Macだとシステム側でダブルバッファリングしてくれるので
ちゃんとアニメーションできてるかわからんのが困る。
0633名前は開発中のものです。2005/05/24(火) 02:21:29ID:sis+it4W
GUIのシステム側からすればOSがダブルバッファやるのがいい
でもそれができるのは新しいOSだからさ
0634名前は開発中のものです。2005/05/25(水) 10:58:33ID:LDfRFEs8
こんな本が出るらしいけど、どんなもんだろ。

Killer Game Programming in Java
http://www.oreilly.com/catalog/killergame/

1008ページ。。。
0635名前は開発中のものです。2005/05/25(水) 11:56:26ID:t/3l+FCT
高いなあ。とりあえずサンプルコードを落とすことにしよう。
0636 2005/05/26(木) 16:33:48ID:owFSRMuu
アマゾンで¥4,319 だからページ数からいって安い方だろう。
0637名前は開発中のものです。2005/05/27(金) 00:13:01ID:526DNnXp
日本語版でないかなあ。
0638初期不良2005/06/02(木) 21:09:55ID:1lixZ+mm
LWJGL を使ったゲームリスト
http://java-game-lib.sourceforge.net/wiki/tiki-index.php?page=Games+Using+LWJGL

その中でも製品になっているこれは結構良くないか?
Tribal Trouble(リアルタイム3Dストラテジー)体験版
http://oddlabs.com/download.php

当然だが、こういうゲームで Windows 版、Linux 版、MacOSX 版があるのは Java ならではだな。
0639名前は開発中のものです。2005/06/02(木) 23:55:56ID:ukDFyhZw
さすが、Javaのゲーム作成本が出るだけあってアメリカ(多分)は
Javaゲームが盛んだね。日本は…携帯アプリだけ?なぜ日本でjavaゲームが
流行らないんだろうか。
0640名前は開発中のものです。2005/06/03(金) 00:32:18ID:91sQ1Vz9
日本だとJavaでのゲーム作成本は10冊くらいかな
1.1時代のが多かったり、アクセラレーションについてとか
VMのバージョンによってパワーアップしたことなどまったく触れてない

1.4の時代に1.1のJavaのコードがでるのは違和感がある
音源周りでおわってるが

1.4.1以降をターゲットにするとアクセラレーションがきく描画が可能だし
1.3をいれるとJavaSoundが使えて便利

そして初心者をターゲットとすると5.0がいいだろうね
JavaSoundだけでも大分楽になるし、オートボクシングも便利だろうね
BufferedImageもアクセラレーションが多少ききやすくなってテクニックはあまりいらないし

あとプライベートJREの説明とかJNIでジョイパッドを認識させるとか
そういった現実的な、それでいて中級者あたりで必要そうな知識とかになるとまったくない
0641名前は開発中のものです。2005/06/03(金) 01:38:16ID:kthTAgzd
>640が本を出せば売れるんじゃねーの?
0642名前は開発中のものです。2005/06/03(金) 01:45:47ID:91sQ1Vz9
売れるならかいてますがな
0643名前は開発中のものです。2005/06/03(金) 21:26:39ID:4dTXbtGD
>>639
実行環境整えるのが、素人にはまだ難しいというかめんどくさい
と思われてんじゃないの?
0644名前は開発中のものです。2005/06/03(金) 23:16:00ID:NTdadyx0
まずは面白い国産ゲームが出る事かな。先行者ゲームなんて面白いと思うけど、アプレットじゃないアプリケーションで面白いのある?
0645名前は開発中のものです。2005/06/04(土) 01:08:17ID:xh3nWFkc
ttp://f57.aaa.livedoor.jp/~javagame/
0646名前は開発中のものです。2005/06/05(日) 18:50:44ID:jP14x9ZL
みんな開発環境はどんな感じ?
0647名前は開発中のものです。2005/06/05(日) 18:58:51ID:2a1f++cQ
ゲーム作成用だとIDEはなんでもいいんでね?
ライブラリは意見が分かれそうだ

まぁJavaの場合ゲームならVMのバージョンを出来るだけ新しいのに市他方がええ
1.4系は正直5.0にたいしてメリットがねぇ
0648名前は開発中のものです。2005/06/06(月) 03:00:55ID:b7y26U94
Appletで作ってるけど、なんかカツカツ処理が落ちるッス。
webで人様のjavaプログラムを実行しても同じ症状だからマシンかOSが腐ってるのか?
0649名前は開発中のものです。2005/06/06(月) 11:32:59ID:fYnYvIDi
マシンスペックとOSは?

あとアプレットはブラウザの上で動く以上
ある程度さまたげられる可能性があるかもね
0650名前は開発中のものです。2005/06/06(月) 16:45:54ID:zmHhEXLG
>>648
最新のJavaランタイム環境使ってる?
0651名前は開発中のものです。2005/06/06(月) 20:55:21ID:jPJdqzm8
アプレット上だと、DirectXが使われないから処理が遅くなるってさ。
0652名前は開発中のものです。2005/06/06(月) 21:42:17ID:fYnYvIDi
そんなことはないはずだが
0653名前は開発中のものです。2005/06/07(火) 01:31:43ID:SuUT4FFC
XPのSP1で、appletのランタイムは1.5.0_02のCPUはPen4の1.6AでRadeon9700pro。

> なんかカツカツ処理が落ちるッス。
舌足らずなとこを補完すると、30fpsでバッファリングしたImageを切り替えて
ゲームのフレームワークを作ったのですが、カツカツ落ちると。
一定周期で1frame落ちするから、ディスプレイのVSyncとかみ合わなくて
テアリングでも起こしてるのかなと思い至った。

経験則では解決策がない悪寒がする。

レスありがd。
0654名前は開発中のものです。2005/06/07(火) 01:33:36ID:jKM6D2RB
ティアリングならどうしようもないべ
0655名前は開発中のものです。2005/06/07(火) 01:34:15ID:jKM6D2RB
アプリケーションのほうは問題ないの?
0656名前は開発中のものです。2005/06/07(火) 01:48:21ID:SuUT4FFC
テストでdrawStringだけ実行している状況だから負荷は問題ないと思ってます。
ただJavaに疎いので、Javaが裏で重い処理をするコードがどこかにあるのか、
という疑問はあります。定期的にガベージが発生しているのかも、とか。

webでもっと探さないと。
そんなのFAQレベルだぜ、ってちょっと教えて君だった。スマソ。

それとありがd。もうちょっと調べてみる。
0657名前は開発中のものです。2005/06/07(火) 02:04:50ID:jKM6D2RB
-verbose:gcをいれて実行してごらん
fullgcはいってるようだったらたしかにがくがくする

ヒープサイズとかメモリ調節するといいよ
参考
http://shin.cside.com/product/pw/index.htm
バッチファイルの中みてごらん
GCの種類をかえたりヒープやnew世代の調整してある

値の意味はこちらなど
http://www.atmarkit.co.jp/fjava/rensai3/javavm02/javavm02_1.html
http://www.nminoru.jp/~nminoru/java/cms/concurrent_mark_sweep.html
http://www.nextindex.net/java/perform/garbage.html
0658名前は開発中のものです。2005/06/07(火) 02:11:29ID:paRUAyMw
そういえばジャワティーってドリンクもう売ってないのかな?
本木雅弘がCMやってたヤツ
0659名前は開発中のものです。2005/06/07(火) 02:23:00ID:SuUT4FFC
やってみる。これからだけど、とりあえずありがd。

> そういえばジャワティーってドリンクもう売ってないのかな?
近所じゃ購まだ売ってますぞ。
0660名前は開発中のものです。2005/06/07(火) 02:53:04ID:SuUT4FFC
> http://shin.cside.com/product/pw/index.htm
これはナイスガッツ! てか楽しそうに作ってるなー。
ウィンドウモードでは自分のアプレットと同じで定期的にとまるッス。フルスクリーンはOKだ!
自分のアプレットもこのゲームも、漏れのマシンでは数フレームロックかかってる希ガしてきました。
ティアリングは嘘でした。

ほかの人はそんなことないのかな・・・
webでいまのところ同じ症状を見つけられないので漏れだけか。。。
今日は会社のpoorなマシンで試してみよう。

> -verbose:gc
だめぽ。
でもヒープ周りの知識はウェルカムだったのでありがd。

だがリーマンゲームプログラマは3:00に夢の国へ・・・おやすみ藻前らありがd。
0661名前は開発中のものです。2005/06/07(火) 11:55:57ID:jKM6D2RB
ウインドウモードでかたつくならそれはティアリングであってる
垂直同期が取れない以上どうしようもない
フルスクリーンは垂直同期とってるんだよ
0662名前は開発中のものです。2005/06/07(火) 23:30:20ID:olBSRmjj
EclipseのSWTってどうよ?
0663名前は開発中のものです。2005/06/07(火) 23:40:10ID:jKM6D2RB
なんでゲームでSWTでてくるかな
それとも便利なのあるの?
0664名前は開発中のものです。2005/06/07(火) 23:45:31ID:olBSRmjj
GUI使って作るとしたらさ
0665名前は開発中のものです。2005/06/07(火) 23:48:31ID:jKM6D2RB
ゲームの場合GUIコンポーネントはまずつかわないからね
使ったとしたらSwingのカスタマイズ性が有利に働くかもしれない
0666名前は開発中のものです。2005/06/08(水) 00:16:58ID:RtjvDL3u
> ウインドウモードでかたつくならそれはティアリングであってる
よくわからないのは、数INTロックがかかって見えるところですかね。
ただFlashコンテンツも家の環境では同じ見え方するのに気づいたので、
追求するなと内なる何かがささやいてます。環境っぽい。

> GUI使って作るとしたらさ
個人的には自前でやった方が見栄えするから使わないかな。

> http://shin.cside.com/product/pw/index.htm
リンクたどったらゲームライクなライブラリも晒してるね。
コードも晒してればコピ・・・参照したのに残念。

んじゃ続き作るや。じゃ。
0667名前は開発中のものです。2005/06/08(水) 00:32:21ID:2dFSgXt/
>>666
実は液晶ディスプレイの問題とか
0668名前は開発中のものです。2005/06/08(水) 00:57:35ID:RtjvDL3u
>>667
ほのかにビデオカードと液晶ディスプレイ疑ってたり。
ただ止まる時間が長すぎるような、っていうのは検証したら正しい時間かもかも。

まあ調べませんが・・・敗北しときます。
0669初期不良2005/06/08(水) 04:06:27ID:2y7ULdYu
>>663
漏れ自信まったく理解してないんだが
SWT OpenGL plug-in ってのがあるみたいよ。
http://www.eclipse.org/articles/Article-SWT-OpenGL/opengl.html
0670名前は開発中のものです。2005/06/08(水) 17:57:47ID:jswTX7uc
SWTで作る利点といえば
Eclipse上にプラグインとして公開して、
仕事しているようにゲームできることか。
どうよ
0671名前は開発中のものです。2005/06/08(水) 18:03:07ID:2dFSgXt/
>>669
OpenGL使いたいのならJOGL使ったほうが手っ取り早いかと
3D目的なら今の流れだとJava3Dのほうがいいかもしれんが

>>670
それならJBuilderでもNetBeansでもテキストエディタでも環境にあわせるだけでかまわんような
そもそもどうしてもゲーム画面が表示される瞬間があるわけでどーすんだよと
0672名前は開発中のものです。2005/06/09(木) 02:49:56ID:IHGy2XMx
>>666
ヒント:Jad
0673名前は開発中のものです。2005/06/11(土) 04:07:57ID:BS9m70FP
すごい...自分で作ったアプレット、変数名まで再現されてた。
てか実用的な逆コンパイラなんて初めて見た。不覚...
0674名前は開発中のものです。2005/06/11(土) 10:07:51ID:GcEolZiW
とりあえず難読化ツールでも使うしか
0675名前は開発中のものです。2005/06/11(土) 21:32:54ID:wbD2CWIz
ところでクライアントサイドJavaでのゲーム作成入門の
オススメページってどこかないかな。

検索してもアプレットばっかりだし。
0676名前は開発中のものです。2005/06/11(土) 21:38:59ID:pf44YaEx
アプレットをフレームに貼り付ければいい。
0677名前は開発中のものです。2005/06/11(土) 23:33:05ID:QGGoJuur
普通にあぷりけーしょんでどうぞ
アプレットのほうが理解しにくいと思うんだけどなぁ

フレームワークであるという仕組みが分からないとかね

理解しないでアプリケーションに移行して画像のロードが出来ないんですけど、とか
アプレットじゃないと音楽が流せないんですけどとか
よくある話だが
0678名前は開発中のものです。2005/06/12(日) 00:24:41ID:dLf08KQ4
ttp://f57.aaa.livedoor.jp/~javagame/index.html
ttp://www.goldenstudios.or.id/
ttp://fivedots.coe.psu.ac.th/~ad/jg/
ttp://www.cokeandcode.com/index.php?page=resources
0679名前は開発中のものです。2005/06/12(日) 03:14:21ID:LXUyz6JS
Good Job!!
おもしろいページばかりだ!
0680名前は開発中のものです。2005/06/12(日) 09:22:26ID:KhhXkEWy
つーかまぁ、とりあえずパネル出すとこまで行けば後はアプレットとほぼ同じだ
0681名前は開発中のものです。2005/06/12(日) 10:35:27ID:PH5G30Lu
つーかアプリケーションなら積極的にBufferStrategy使おう
0682名前は開発中のものです。2005/06/12(日) 11:21:17ID:FBVLqvgc
>>676-681
ありがとう。>>678の見ながら勉強するよ。
0683名前は開発中のものです。2005/06/20(月) 17:09:26ID:OLasBksw
アニメーションで動きがカクッカクッとひっかかるのはガベコレのせいだよね
これ防ぐ方法はいまのところ何もないの?
0684名前は開発中のものです。2005/06/20(月) 17:38:53ID:xz5FMksQ
>>683
単純にGCのせいともいえない
ティアリングの可能性も高いし
綺麗に垂直同期とってもディスプレイのせいかもしれない

そもそもWinやMac,Linuxなんかは垂直同期とろうが
確実に引っかかりをとめる方法はない
0685名前は開発中のものです。2005/06/21(火) 00:06:59ID:7pToadzn
Javaで垂直同期って可能なのか
0686名前は開発中のものです。2005/06/21(火) 00:46:47ID:gLIUZNPd
>>685
おもしろいやつはけーん
もう数年前から可能ですが
0687名前は開発中のものです。2005/06/21(火) 02:08:38ID:7pToadzn
どうやって
0688619 ◆pKT/RyrDCw 2005/06/21(火) 05:42:57ID:vl1dL1WY
>>683
GCが原因ならJavaVMのオプションでVMのメモリの量を多くしたら
(一時的には)ひっかかりが解けます。
そうじゃなかったら他の原因だと思われ。
0689名前は開発中のものです。2005/06/22(水) 07:02:51ID:LQPYyhFp
>>631
もう一般向けのダウンロード出たね
http://www.apple.com/jp/ftp-info/reference/java2se50release1.html
0690名前は開発中のものです。2005/06/23(木) 00:33:24ID:jP3VdD64
10.4以降というのが
0691名前は開発中のものです。2005/06/23(木) 03:19:47ID:0EAQ3U15
>>683
簡単なサンプルで定期的に落ちるようならガベコレじゃないと思われ。
漏れもそれに困ってモニタのinf(だっけ?)を入れ替えたりしたけど、結局だめだった。
液晶ね。

関係ないけど、アプレットfpsが30以上にならないのはアプレットのせいだよね?
と便乗質問してみる始末。
0692名前は開発中のものです。2005/06/23(木) 11:56:22ID:L4YwPNmI
アプレットでも60fpsでるよね
0693名前は開発中のものです。2005/06/23(木) 12:12:05ID:A1Up2BL3
Mozillaとかだと描画にオーバーヘッドが起こってるのか微妙に重いことがある。
これのせいかfpsが落ちたりするよね。IEだと問題ないけど。
0694名前は開発中のものです。2005/06/24(金) 02:16:51ID:2dm7pYZB
キャラクターどうしの当たり判定とかすごい回数になりそうなので
オクトツリーとかいうのを使ってみようと思った。

なんかメンドクサス
0695名前は開発中のものです。2005/06/24(金) 05:10:17ID:Im1/sm4w
何のゲームで当たり判定が必要になったとかによるのでは

STGあたりならRectangleのあたり判定を使って自作でさくっと
スーパーマリオのようなアクションなら多少考える必要があるが
06966912005/06/25(土) 05:22:05ID:c8XAIbYr
>>692
そか。うっとこではapplette viewerでも32fpsより短くならないんだけど、
教えてgoogleパワーでがむばってみる。
ありがトン。
0697名前は開発中のものです。2005/06/25(土) 08:42:28ID:KxoU9hXJ
>スーパーマリオのようなアクションなら多少考える必要があるが
どんなこと考える必要ありますか?
敵(栗ボーとか)を配列に登録しておいてマリオが動くたびにすべての敵とあたっているか調べるってのじゃ遅すぎます?
0698名前は開発中のものです。2005/06/25(土) 09:28:37ID:Q6O8Kliy
地形とかの判定のことだな
0699名前は開発中のものです。2005/06/25(土) 22:03:49ID:i7Vh4wJf
>>697
最近のPCは力持ちだから極端に数が多くならない限りは
当たり判定処理を秒間10〜30回くらいなら平気でこなすよ。

もしこれ以上の精度が欲しいなら他の方法を使う必要があるけど
大抵はこれで十分だと思う。
0700名前は開発中のものです。2005/06/26(日) 00:10:58ID:5IDbwQfw
昔から配列で手当たりしだい判定してきたし問題にならん
8bitのときは比較回数が100個くらいをこえるときつくなってきたな
16bit以上はもんだいにならんよ

Javaが動いている時点でわざと遅くするコードやオプションにしないかぎりまず大丈夫かと
0701名前は開発中のものです。2005/06/26(日) 00:28:35ID:xA3Wpl2v
キャラクターが10体くらいで弾が200発くらいで地形が20個くらいで
それぞれ画面内にいないときもAIで動いてるゲーム

キャラクターどうし:9 回
キャラクターと弾:10 * 20 = 200 回
キャラクターと地形:10 * 20 = 200 回
弾と地形:200 * 20 = 4,000 回

1フレーム内で 4,500 回の判定・・・
0702名前は開発中のものです。2005/06/26(日) 01:38:32ID:5IDbwQfw
4500回の判定程度たいしたことはねぇよ
100MHzいってないのならすまん
0703名前は開発中のものです。2005/06/26(日) 08:30:26ID:R9cNrqzH
>>698-702
d
何かすごく遅くなりそうだけど結構大丈夫なんですね。試してみます。
0704名前は開発中のものです。2005/06/26(日) 12:22:05ID:2NQ+FlFk
Javaというか、オブジェクト指向のゲーム制作の定石みたいなものは
ありますか?日本語のJavaゲーム本だと、内容が古いか携帯電話向け
ばかりで、英語なら結構出版されていますが、読めるかどうか…。

キャラクターはクラスにするのか?そのクラスは自身で描画する機能を
持つのか?持つなら対象のCanvasの情報はどう持たせるのか?など。
皆さんはどうしてますか?
0705名前は開発中のものです。2005/06/26(日) 12:31:22ID:5IDbwQfw
クラス構造は人によって設計違うけど
多態を使うのとコレクションを使えるようになればいいんじゃないか
0706名前は開発中のものです。2005/06/26(日) 20:51:40ID:R9cNrqzH
>>704
私もそこらへんすごく悩んだ。結局、キャラクターに描画機能もたせて、キャンバスへの参照はキャラクターのコンストラクタに引数で渡してます。
0707初期不良2005/06/27(月) 09:20:24ID:sjyCFv/3
>>706
それで悩むなら Visitor パターンいいんじゃない?
いい具合に整理できるかも。自己満足レベルかも知れんが。
0708名前は開発中のものです。2005/06/27(月) 09:57:33ID:5sMCnoiV
コンストラクタで渡すよりメソッドの引数でわたせばいいっしょ
paintとかdrawとかってメソッドでGraphicsを引数に取ればいい

そして呼び出し元がそれら描画オブジェクトをリストから取り出して順に描画させる
プライオリティもここできめれるし
0709名前は開発中のものです。2005/06/29(水) 16:20:38ID:sZiDzWut
画像読み込みもタスクのクラスに実装すると
メディアトラッカーに渡すモノが必要ですね。
他の人のソースを見ると、Appletで渡したり、Containerで渡したりしてる。
このへん意味も分からず人まねしてる。
クラスが一つしかない簡単なアプレットなら
g.drawImage(.....,this);で済むのに。
0710名前は開発中のものです。2005/06/29(水) 19:06:02ID:Jz57RSZi
つーかImageIO使ってるし

5.0ならアクセラレーション聞きやすい環境ではあるけどコンパチブルなVolatileImageを
意識的に作る場合もある
イメージのロード命令ひとつでおわることはねぇな、ゲーム目的ならね
0711名前は開発中のものです。2005/06/29(水) 19:32:24ID:tkZA2RNq
>>709
クラスわけするとそこらへんが結構無駄に複雑になる気がする
0712名前は開発中のものです。2005/07/17(日) 13:46:28ID:Cex8NEqA
↓既出かもしれんが、この人のJAVAゲームってすごくない?
どういうテクニックを使えば、こういうなめらかな動きのアクションゲームをjavaで
できるのだろう??

--------
http://www.geocities.co.jp/SiliconValley-Sunnyvale/6003/ura/sisters2/
ちょいあシスターズ
アクションゲーム「ちょいあシスターズ」を公開しています。マ○オブラザーズをアレンジ
したもので、マウスとキーボードを使うことで2人同時プレイも可能です。


0713名前は開発中のものです。2005/07/17(日) 14:57:55ID:TVccPhIn
テクニックも何もJavaは普通になめらかにうごかせるものだが
0714名前は開発中のものです。2005/07/17(日) 21:51:17ID:IN1Lw/+s
>>712
やってみた。
至って普通だな
0715名前は開発中のものです。2005/07/17(日) 21:54:17ID:Cex8NEqA
>>713
> テクニックも何もJavaは普通になめらかにうごかせるものだが

ええーッ、僕が知っているjavaゲームは、敵の数に反比例して速度が低下するのが
多いのだが。
普通だったのか?
0716名前は開発中のものです。2005/07/17(日) 22:08:22ID:TVccPhIn
>>715
なんだよそれは
作り方が悪いだけだろ
60fpsで垂直同期取ったり滑らかに動いてるJavaのソフトだってあるぜ
0717名前は開発中のものです。2005/07/17(日) 22:25:38ID:DvhZ5Df9
正直 Java でフルスクリーンはぬるぽ
0718初期不良2005/07/18(月) 06:27:33ID:pZiMlJXx
>>717
このゲームをぬるぽしてください

Tribal Trouble(リアルタイム3Dストラテジー)体験版
http://oddlabs.com/download.php
0719名前は開発中のものです。2005/07/18(月) 13:03:07ID:uZqED97p
別にフルスクリーンでなくても滑らかにうごくっしょ
0720名前は開発中のものです。2005/07/21(木) 02:18:18ID:R+w7QC9R
なんでAlphaCompositeには加算合成がないのよ!!
0721名前は開発中のものです。2005/07/21(木) 02:35:11ID:R+w7QC9R
あ、正確には「なんで AdditiveComposite クラスがないのよ!」か
0722名前は開発中のものです。2005/07/21(木) 05:05:07ID:ttEileue
PixelGrabberを使うと加算合成できる?
0723名前は開発中のものです。2005/07/21(木) 10:50:10ID:0da8GUHY
JAVAを使って、ブラウザ上で自動的に画面が切り替わって行く、
サウンドノベルのような物を作るスクリプトは、
どこかで配布されていないのかな?
前に使っているサイトを見かけたんだけれども……。
0724名前は開発中のものです。2005/07/21(木) 11:42:34ID:PX1CM5dL
>>723
おれも昔あったような気がする。
Javaでわざわざやる必要が無いから無いんだろうね。
Flashのほうがそういう用途では作りやすいし使いやすい。
気力さえあればHTML+JavaScriptだけで行けるし。
0725名前は開発中のものです。2005/07/21(木) 13:49:56ID:52Yxwi4f
PixelGrabberって使う理由あるのか?
0726名前は開発中のものです。2005/07/22(金) 01:15:00ID:34bxPQ7x
どなたか Graphics を透明色でクリアする方法を教えてください、お願いします。

2枚の Image から getGraphics() でグラフィクスを取得し、
それぞれに別の描画をしてから重ねることでいわゆるレイヤーみたいのを実装してみたんですが、
上に重ねるほうの Image のグラフィクスを
まっさらに戻す方法がわからず行き詰まってしまいました。

単純に上に重ねるほうの描画の最初で clearRect() を呼ぶと、
下のグラフィクスまでクリアされてしまいます。

描画内容が変わるたびに新しくグラフィクスを取得しなおすのは
パフォーマンス的にかなりデンジャラスでした(ゲームには致命的なほど)。
0727名前は開発中のものです。2005/07/22(金) 01:31:17ID:34bxPQ7x
細かい訂正。Image でなく VoratileImage ですた。
0728名前は開発中のものです。2005/07/22(金) 06:52:53ID:2/g0amAL
あるVolatileImageをrgba(0,0,0,0)でクリアしたいってこと?

描画元がVolatileImageを使うということはJ2SE5.0だと思うけど
まずピクセルフォーマットをコンパチブルで作っているのが条件

さらにアルファ0のピクセルを強制描画となるとアルファブレンドの設定をsrcに変える必要あり

この辺分かってないのならスプライトはBufferedImageで作るのがいいよ
速度的にクリティカルでないのならね
5.0なら体外アクセラレーションがきくので描画先だけVolatileImageでよい
0729名前は開発中のものです。2005/07/22(金) 18:23:30ID:nqdltgNj
どうでもいいけど、VolatileImageは1.4からあって、このおかげでSwingが速くなった。
0730名前は開発中のものです。2005/07/22(金) 22:28:19ID:2/g0amAL
VolatileImageのコンパチブルイメージ作成は1.4では無理
スプライトには使えないのだよ
0731名前は開発中のものです。2005/07/23(土) 21:03:39ID:yrG67FHD
むう・・・グラフィックス関連は難しいのう
■ このスレッドは過去ログ倉庫に格納されています