05/12/06 12:56:55 m90gA8zy
Java2Dの基本なんだけど、Java2Dをちゃんと説明してる書籍ってまったくないな
76:名前は開発中のものです。
05/12/06 18:51:26 vSoUCqBN
>>74
うまくいきました。ありがとうございます。
しかしcIearRectするとダメなようです。
画像を回転させるために仮Imageを作って
それに画像を描画してそのImageを回転させる
という風に考えていたのですが他の方法を考えます。
77:名前は開発中のものです。
05/12/06 19:04:14 m90gA8zy
画像の回転するのになんで1回かますの?
78:名前は開発中のものです。
05/12/06 19:42:22 vSoUCqBN
Graphics2D tmp = (Graphics2D)chara.getGraphics();
tmp.lotate(chara,characenter.x,characenter.y);
g.drawImage(chara,null,charagx,charagy);
てな感じにやってたんですけど、なぜか全く回転しなかったので
仮画像を作ってそれを回転させるという風にしました。
79:名前は開発中のものです。
05/12/06 20:43:53 m90gA8zy
回転をセットするのは描画先のほうだよ?
すでに描画されてるのはどうしようもない
80:名前は開発中のものです。
05/12/06 20:51:15 57K4+g+R
Graphics2Dオブジェクトにアフィン変換かけてさらに
Graphics2Dオブジェクトに描画でできんのかな
81:名前は開発中のものです。
05/12/07 00:29:46 R+Rh6YVG
すみません。自分の日本語読解力が足りないことにより
皆様から頂いた助言を活かすことができません。
少し、具体例を用いて説明して頂けいませんか?
82:名前は開発中のものです。
05/12/07 00:59:31 xiUT9nsP
1・画像をロードします
2・描画先を回転させます
3・ロードした画像を描画します
83:名前は開発中のものです。
05/12/07 01:56:14 SEfUp1TO
落ちものゲームで受け手(キャンバス)を上手く回転させて
指定された絵を完成させるゲームをイメージしてみるとか。
84:名前は開発中のものです。
05/12/07 06:51:27 R+Rh6YVG
>>82-83
つまり、描画先を回転させて
そこに描画して、回転させた分
逆回転させて他はもと通り、と解釈して実行し
成功致しました。ありがとうございます。
しかし、これは斜めになったとき
四角の余白が黒くなってしまいます。
これの解決方法はどうすればよいのでしょう?
背景を再び描画も考えましたが
回転させたものが塗り潰されてしまいます。
85:名前は開発中のものです。
05/12/07 09:35:30 hZztkAcv
そこまで出来てるのに、なんで画像描画前に背景を
先に塗り潰すという発想がでてこんのだ。
86:名前は開発中のものです。
05/12/07 19:03:18 R+Rh6YVG
背景を描画して、回転したものを描画とやってるんですけど
______
|■/ \■|
↑回転した画像
て感じにうえの部分に黒い部分ができてしまうんです。
さて、どうしたものか?
87:名前は開発中のものです。
05/12/07 19:17:03 ruXn40F6
ソース晒した方が早そうだな
88:名前は開発中のものです。
05/12/08 14:23:17 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:名前は開発中のものです。
05/12/08 15:51:44 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:名前は開発中のものです。
05/12/08 16:27:30 +Z+rNNsb
>>88
背景黒く塗ってるっぽいから黒くなるのは正しい動作だとみたが?
91:88
05/12/08 20:08:36 wcnvECNE
自分は色々説明がたりなかったよう。
>>89
すみません。このコードの前に
int time=1;
double PI = Math.PI;
ってあって
time*PI/は
time*PI/180の間違いです。
そしてそのコードを実行した結果
見事指定した座標を中心にぐるぐると
私がしたいのはその場を動かずに回ることだったのですが。
というかこれでも黒い部分でてきました。すみません。
>>90
g.setColor(Color.GREEN);
って事前にやってたんです。
92:名前は開発中のものです。
05/12/08 20:58:51 +Z+rNNsb
情報の小出しされてもわからん
該当部分のソースを最小限にしてコンパイルできるものを出したほうがいいんじゃね?
93:名前は開発中のものです。
05/12/08 21:03:25 HtN2IVya
URLリンク(genuts.dev.java.net)
プロジェクト > games > games-middleware > genuts
URLリンク(www.genuts.com)
Genuts Cheese Indigestion Puzzle
オモシロスwww
94:名前は開発中のものです。
05/12/09 01:58:21 DR3+EYk2
テキストリソース(RPGの会話文など)ってどう扱うべきでしょうか?
XML? properties?
95:名前は開発中のものです。
05/12/09 02:29:57 HsQzl6B+
URLリンク(java.sun.com)
96:名前は開発中のものです。
05/12/09 12:27:40 wi5fEo9o
自分が扱いやすいものでいいかと
修正もこまめに入ると思うし、文字だけじゃなくてたのパラメータも必要になると思うから
XMLが汎用性では一番かと
97:名前は開発中のものです。
05/12/09 17:53:50 3zLl7jhn
いいの見つけたお^^;
URLリンク(fivedots.coe.psu.ac.th)
98:名前は開発中のものです。
05/12/09 23:37:39 6Nnex+8J
XMLパーサってあったっけ
99:名前は開発中のものです。
05/12/09 23:40:17 HsQzl6B+
あるよ。DOMよりSAXのが個人的には好き。
100:名前は開発中のものです。
05/12/10 00:04:18 KuqpST++
ゲームで使うとなるとSAXはファイル読み込みだけだろうな
内部ではElementでつかうのがいい
101:97
05/12/10 21:23:28 h8wANggU
画像回転のサンプルがここに載ってるお^^;
URLリンク(fivedots.coe.psu.ac.th)
Graphics2Dは知らないお^^;
102:名前は開発中のものです。
05/12/10 22:25:02 KuqpST++
いや、普通にJava2D楽だぞ
ただ、普段以上にメモリ使用量は把握していかないと駄目
GCがかなり増えるから
速度が必要な場合あらかじめ回転させておくとかが必要になるね
アクセラレーションきかないから
103:名前は開発中のものです。
05/12/10 22:27:15 MpQxaKQL
BufferdImageの効果が消滅するの?<回転
104:名前は開発中のものです。
05/12/10 22:35:58 KuqpST++
効果は消えるなんてことはないけど、速度が差が出る
Java2Dって高級すぎるAPIなんでどれがアクセラレーションきいて、どれがきかないのか
チェックするのが大事
基本的に速度は1.4.2と5.0でかわってないよ
アクセラレーションがきけば秒間にスプライトが万単位で描画できるはずだが
やることをかえるとこれが一気に1/100以下に下がったりする
105:名前は開発中のものです。
05/12/10 23:04:18 MpQxaKQL
うへ・・・回転拡大はご法度なのかな。
昔ながらのアナログ手法にしとくか
106:名前は開発中のものです。
05/12/11 01:01:17 xyghd8DO
速度を求めないのと回転オブジェクトがいくつあるかによる
60fpsで128*128の回転スプライトが1000個は無理だと思う
107:94
05/12/11 12:16:09 hWRTdhf0
>>96
>>100
XMLの方が柔軟性があって良いということですね。
propertiesは簡単な設定の保存程度にしておいた方が良いのかもしれませんね。
ありがとうございます。
108:名前は開発中のものです。
05/12/11 14:37:45 ohNVp0t4
>>106
400MHz、64MB、VRAM8Mでどこまで出来るかがポイントだな。
まあ回転なんてギャラガとか作ろうと思わなければ使わないけど。
109:名前は開発中のものです。
05/12/11 15:20:14 xyghd8DO
ギャラガくらいなら余裕
VRAM8MってことはTNTとかあのあたりかな
ならアクセラレーションの速度も問題にならない
メインメモリ64Mが一番のネックかと
GCの調整はプロファイラとにらめっこになるね
ヒープサイズ自体を24M以下に抑えてももVM方面で厳しい
1.4.2のほうがメモリ消費は少ないからそっちのほうがオススメか
Pen3/1GHz+統合ビデオでテストしてみたけど
上で上がってた2DSTGは60fpsでサクサク動いた
110:名前は開発中のものです。
05/12/11 17:02:52 5bLTV7mU
>>75
遅レスだが、これいいよ
URLリンク(www.oreilly.com)
111:名前は開発中のものです。
05/12/11 17:06:21 xyghd8DO
日本語訳がないんじゃさすがにここで質問する初心者にはすすめれんが
112:名前は開発中のものです。
05/12/11 17:43:34 FJ8u3O2A
1999年ってやけに古いけど大丈夫なのか・・・
113:110
05/12/11 18:11:19 45Ys85hP
個人的には、Graphics2Dでの描画にくわえて、
BufferedImageの細かい解説とか画像処理関連のことがら
についておさえて書かれているところがおすすめ
>>1999年ってやけに古いけど大丈夫なのか・・・
Graphics2Dの基本についてはそんな変わってないはず。
5.0以降どうなったかは知らんが。
あーでも画像ファイル読み込みでImageIO使う解説とかはなかったような。。
ま、そのあたりはWebの情報その他で補うとして、Java2D本体の包括的な
解説書としてはこれけっこういいと思う。
>>日本語訳がないんじゃさすがにここで質問する初心者にはすすめれんが
これについては「がんばって読めや」といいたいが、それもなあ。。。
画像処理とかについては書いてないけど、
Graphics2Dでのprimitiveの描画ひととおり+基本的な変換(Affine変換とか)だけなら、
URLリンク(www.iamas.ac.jp)
とかもいいかも。
でも、これらとかは本なんか見んでもWebに情報ころがってるな。
114:名前は開発中のものです。
05/12/11 19:59:25 xyghd8DO
ほとんどの場合ゲームで重要なのはGraphics2Dでどう描画できるかというより、
Graphics程度の低レベルAPIでもいいからどれがアクセラレーションきくかどうか、
速度的なものやメモリ使用量把握だからねぇ
ところでGraphics2Dでそろそろ加算合成実装して欲しいんだがすばらしく放置だよな
そもそも基本についてはSunのマニュアルで代替分かると思う
115:名前は開発中のものです。
05/12/11 20:35:51 CGEh3W0j
Java2Dに関して言えば、VolatileImageは、まだほとんどの環境で
透明、半透明が使えないので、事実上まともなゲーム制作には使えない。。。
createCompatibleVolatileImageメソッドでTransparency引数が
指定できるが、定義だけでまだ実装されてない。。。
つまり、BufferedImageを使うしかない。これへの描画メソッドに
アクセラレーションが効いてるのはない。。。
116:名前は開発中のものです。
05/12/11 20:40:29 xyghd8DO
>>115
5.0からつかえるようになったけど?
117:名前は開発中のものです。
05/12/11 20:43:08 ohNVp0t4
VolatileImageからVolatileImageへ上書きすると透明じゃなくなるバグって無かったっけ?
118:名前は開発中のものです。
05/12/11 20:45:55 xyghd8DO
それは1.4.2まで
119:名前は開発中のものです。
05/12/11 20:48:17 xyghd8DO
あと描画元がBufferedImageでピクセルフォーマットが同じ場合
あるスレッショルドを超えると内部でVolatileImageにして転送してくれる
この設定値を0にするのがまず基本
5.0からはこの動作範囲が広いようだ
つまり、最適化されてないアプリだと高速化する可能性あり
1.4.2までにチューニングしてると速度向上は一切なし
5.0で画像周りの速度が速くなったというやつは大概設定ミス
120:名前は開発中のものです。
05/12/11 21:36:17 CGEh3W0j
>>116
使えない。5.0でも使えない。
どの環境(OS)で使えたのか教えてくだされ。
121:名前は開発中のものです。
05/12/11 21:40:12 CGEh3W0j
>>119
この設定値を0にするのがまず基本、とは?
設定値とは何を指してるのか?
具体的に教えてくだされ
122:名前は開発中のものです。
05/12/11 21:56:41 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:名前は開発中のものです。
05/12/11 22:10:48 CGEh3W0j
>>122
自分もWindowsXpなのだけど、VolatileImage を使うと
アルファ値0のピクセルが真っ白になってしまう。。。
列挙された全GraphicDeviceの全GraphicConfigurationから得る
VolatileImageのTransparencyタイプが、全てOpaqueになってる。。。
本当にWindowsでValatileImageの透明機能が使えたのですか?
124:名前は開発中のものです。
05/12/11 22:44:05 xyghd8DO
そのだめだったコードかいてみそ
125:名前は開発中のものです。
05/12/11 22:51:58 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:名前は開発中のものです。
05/12/12 00:52:54 5lGPHviO
Transparency.TRANSLUCENTはDirec3Dを有効にしないと駄目だったはず
BITMASKでの透過ならいける
127:名前は開発中のものです。
05/12/12 00:53:29 5lGPHviO
そもそも半透明はアクセラレーションきかないので注意ね
128:名前は開発中のものです。
05/12/12 01:05:16 5lGPHviO
ってやってみたらアルファブレンドが有効でちゃんと描画された
たぶんロードのところミスってると思うよ
129:名前は開発中のものです。
05/12/12 01:12:31 5lGPHviO
ちなみに
ImageIOでロードしたアルファつき画像をそのまま128個描画
8fps
ちゃんと設定したVolatileImageとBufferedImageが同じで
50fps
となった
アルファつきならVolatileImageにおく必要はないね
130:名前は開発中のものです。
05/12/12 01:17:38 4tfiFb5f
System.setProperty("sun.java2d.accthreshold","0");
としておけば普通にBufferedImageでOKってこと?
131:名前は開発中のものです。
05/12/12 01:26:16 5lGPHviO
ついでなんで
単なる透過を描画した場合
フルスクリーンモードならTRANSLUCENTでもBITMASKでも
スプライト2048個描画で60fps維持
スプライトサイズは64*64で
画面モードは640*480にしたときの場合ね
オンボードビデオでこれなのでnVIDIAとかATIとかのそれなりのつめば余裕で超えるかと
通常モードはDirectDrawのラッパだと考えればどれが速いかとか分かりやすいと思う
132:名前は開発中のものです。
05/12/12 01:28:24 5lGPHviO
>>130
ほとんどの場合はそういうこと
あくまでも描画先をVolatileImageで描画元はBufferedImageで
VRAMにおくかどうかはインテリジェントに任せるというのがJavaらしいかな
VRAMにおく優先順位とかもあるので頻繁に描画しないやつはそれを抑えておくといい
この方法ならVRAM容量が多ければ加速しやすいとかそういう感じ
昔AGP登場時の思想にあったやつね
133:名前は開発中のものです。
05/12/12 16:21:39 xzlsw/bc
Javaでゲームを作れという課題がでたんですが、どんなのが簡単だとおもいます?
行数は400以上&対戦ゲーム&Swingというのが条件です。
既存のゲームでなるべく参考資料が沢山あるものが良いのですが・・・
アイデアゲームは自分のスキルや時間的制約から作る自信が無いですorz
134:名前は開発中のものです。
05/12/12 16:57:06 5lGPHviO
ブロック崩しやインベーダーのようなSTGとか
Swingを使えという時点でたぶんそんなレベルじゃない気がする
マルバツゲームとかもっと単純なの
最低自分が何を作りたいかだけはきめてください
135:名前は開発中のものです。
05/12/12 17:05:04 6Xf+w43J
>>133
その条件なら特に苦にならんだろう
テンプレあたりに行って資料が多そうなの探せばいんじゃね?
136:名前は開発中のものです。
05/12/13 07:26:14 lGjUBPOJ
>>134
12月末までという期限付きなので力量に合わないのに手を出したら怖いなと。
そのためそこそこボリュームがあって簡単に作れるゲームをきいてみたいと思ったわけです。
ちなみにブロック崩しモドキ(ボールをブロックに当てたら壊れる)や
シューティングモドキ(たまを発射させ物に当たったら壊せる)ぐらいは作った事ありますが、
昨日調べた結果によるとリアルタイムで進行させるものは対戦にするのは難しいとか。
それよりターン製のゲームの方が比較的楽でイイヨって書いてありました。。
>>135
つらつらとネットサーフィンしてみましたが400行足らずでも結構うまく作れるものですね、
どんだけのゲーム作れば良いのかと何か不安になってきましたorz
137:名前は開発中のものです。
05/12/13 12:23:28 SA14+LJ/
リアルタイムのほうが難しいかどうかは設計しだいかと
12月末ではあと2週間ですか
STGだと1面だけ開発するのも難しそうだ
138:名前は開発中のものです。
05/12/13 14:25:19 ULQaYiRM
>>136
とりあえずとっとと着手しろって
ブロック崩しに対戦要素混ぜるとかでいいじゃん。
上下にバー作るとか。
ちょっと工夫するなら、画面半分に分けて上下にバー作って、
1P側の操作で左の下側バーと右の上側バーが同時に動き、
2P側の操作だとその逆。勝利条件をちょっと考えれば
これで十分対戦になるじゃんよ?
139:名前は開発中のものです。
05/12/13 18:22:53 lGjUBPOJ
2日で終わらせた人がいたもので、自分でも2週間あればと思っていたのですが・・
なんにせよ選ぶのは程ほどにし、
皆さんの意見を参考にしつつ今から寝ずに頑張ってきます。
他のレポートもあるのでつきっきりになるわけにはいきませんがorz
Thank you.
140:名前は開発中のものです。
05/12/13 18:25:21 SA14+LJ/
がんがれ
141:名前は開発中のものです。
05/12/13 23:40:37 /KZUefCp
ジョイスティックを扱うには、
JNIとJavaCommunicationAPI、どっちが良いのでしょうか?
前者は高級な機能を使えるけど環境依存、
後者は低級な所からくみ上げる必要があるけど、WinとSunで動く、
という感じなのでしょうか?
142:名前は開発中のものです。
05/12/13 23:43:17 msXDQ5aj
>>141
URLリンク(jinput.dev.java.net)はどう?
143:名前は開発中のものです。
05/12/13 23:48:38 Ngny3SWu
400行のゲームなら、その先生が期待してるのはテトリスあたりかな。
対戦要素を考えるならボンブリスとかか、俺ならそこらへん狙う。と遅レス。
144:名前は開発中のものです。
05/12/14 00:08:34 8d4z5wIB
>>142
コミュニティ開発のAPIですか。
まだライセンスを確認してないけど、
頒布の問題が発生しなければいいかもですね。
145:名前は開発中のものです。
05/12/14 00:52:23 P5dHJreb
どのライブラリにしろJNIで組まれてる
146:名前は開発中のものです。
05/12/18 01:18:18 ART67WNv
フルスクリーンにしようと思うのですが、環境はどんなのが良いのでしょうか?
640x480の16bitでいいかなと思うのですが、Win高級機以外でも32bitって使えますか?
147:名前は開発中のものです。
05/12/18 01:43:27 9q2jSVUj
つーか、Win以外は解像度変更あきらめたほうがいいかと
そしてWinでも32bpp出せない環境はある
148:名前は開発中のものです。
05/12/18 01:59:42 ART67WNv
>>147
Win以外では無視されるといことでしょうか?
では16bpp(bit per pixel?)にしておけば不具合が起きることもなさそうです。
BIT_DEPTH_MULTIというのもあるのですがこれは使えますか?
スクリーン版JISAutoDetectみたいなものなのかとJavaDocを見て思ったのですが
これといった情報がネットにありませんでした。
149:名前は開発中のものです。
05/12/18 02:03:11 9q2jSVUj
指定なしという感じでは?
Linuxでやったときは画面サイズ変更が不可能だったし、ウインドウモードとフルスクリーンモードと作ったよ
内部描画と出力描画を分けるとかが吉かも
速度大幅に低下するけど
あと使用可能な画面をリストアップして処理するのが一番だね
150:名前は開発中のものです。
05/12/18 02:14:24 ART67WNv
> 使用可能な画面をリストアップして処理する
ここをもう少し詳しく教えていただけないでしょうか?
device.getDisplayModes();で最高値のモードを探す感じですか?
151:名前は開発中のものです。
05/12/18 13:02:30 9q2jSVUj
最高というか自分がやろうとしているモードに最も近いのを探すといった感じかな
152:名前は開発中のものです。
05/12/19 20:35:40 o8rpM/SY
グラフィックなどは置いといて、
タクティクスオウガみたいなSLGのシステム作るのに
おまいらだったらどれくらいかかるもんですか?
153:名前は開発中のものです。
05/12/19 20:49:21 Xlt1mg4V
時間がかかりそうなものは最初に作ろうとしない
自分がまず完成できるものを選ぶ
のが普通では?
最初から風呂敷広げて崩壊していくのを何度見たことか
たいしたことのないものであってもちゃんと快適動作してバグもないように完成させる、
というのはそれなりに大変なもの
154:名前は開発中のものです。
05/12/19 22:23:05 GbGeAi3t
フルスクリーンでゲームをつくってきたんですが、
デバッグがあまりに手間でウィンドウモードに変えたくなってきました。
public Graphics2D getGraphics()
のようにして、
スクリーンマネージャが
getFullScreenWindowからえたWindowから、
BufferStrategyを返して、
それから、Graphics2Dを返して描画するようにしているんですが、
ここから楽にウィンドウモードに切り替えるすべはありますか?
155:名前は開発中のものです。
05/12/19 22:52:44 Xlt1mg4V
ウインドウモードでなんでgetFullScreenWindowがでてくるんだ?
156:名前は開発中のものです。
05/12/19 23:30:01 vG/cR0LR
いろいろ悩んだ結果たどり着いたのはStrutsだった。
なるほど、これならMVCになる。この感動は衝撃的だった。
おわり。
157:名前は開発中のものです。
05/12/20 00:07:37 pKpEoU3U
Strutsでゲームつくったのか?
158:名前は開発中のものです。
05/12/20 00:29:32 WpmlUq/X
画面切り替えの仕様がぜんぜんかっこよくならなくて悩んでいたら
Strutsの例のfowerdが頭に浮かんだ。そんだけ。
メインルーチンの戻り値がまさかシーンだったとは・・・みたいな。
159:名前は開発中のものです。
05/12/20 02:15:06 FfJ0Icl6
それゲーム内での遷移のスクリプトの話なだけだろ
AVGとかきまったものでしかつかえんよね
160:名前は開発中のものです。
05/12/20 23:06:36 WpmlUq/X
うんにゃ、RPGパートからシューティングパートに切り替えるにしてもこの手法でいけるよ。
161:名前は開発中のものです。
05/12/20 23:12:27 FfJ0Icl6
その程度のシーン切り替え・・・
162:名前は開発中のものです。
05/12/20 23:19:12 WpmlUq/X
ん?流しっぱなのかスタックなのかの指定もこの方法なら簡単なんだけど・・・
163:名前は開発中のものです。
05/12/21 00:10:55 38cOblp2
>>153
たいしたことのないものは、そこら辺にソースが転がってるから、
作る気が起きないんだよね。
かといって、ちょっとレベルや規模を広げると、1人じゃお手上げになるし。
164:名前は開発中のものです。
05/12/21 00:12:34 2Odzg4dt
たとえばぷよぷよとかテトリス、コラムスなんて作るのは簡単
でも、しっかり音出したり演出出したりバランス取りしてちゃんとしたものを作る
という段階まではなかなか難しい
165:名前は開発中のものです。
05/12/21 20:44:15 +HySSU2I
そこそこできたら飽きてしまって次の作りたくなる
166:名前は開発中のものです。
05/12/21 21:12:53 2Odzg4dt
その差が途中で投げ出すやつか、それとも同人屋やソフト屋としてちゃんとやっていけるかどうかの差
167:名前は開発中のものです。
05/12/23 20:23:05 3FOPkpSW
Javaで作ったRPGでソース公開してるサイトありますか?
もしくはセリフの表示のやり方の紹介とか
168:名前は開発中のものです。
05/12/23 20:57:04 /tlDw98+
それ難しくはないだろ
どの変が難しいと思うんだ?
169:名前は開発中のものです。
05/12/23 21:11:56 PPOyiaLP
>>167
テンプレ
170:名前は開発中のものです。
05/12/24 11:52:15 iqSdFGcF
だれかJava3Dでゲーム作ってる人いない?
171:名前は開発中のものです。
05/12/24 12:56:39 gnp/5lgI
1年位前に触ったときJOGLならともかくJava3Dものすごく遅くてお話にならなかったけど
DirectXの実装のほうでね
172:名前は開発中のものです。
05/12/24 16:05:43 twljoP+/
>>168-169 レスサンクス
ドラクエみたいに新しい行が挿入されたら
既に表示されてた行が上にずれて1番上の行が消えるとか
主人公の名前を変えられるゲームにおいて
メッセージ中で表示するときはどうしたらいいかとか
ファイルからセリフを読み込むにはとか
テンプレ見て勉強します
173:名前は開発中のものです。
05/12/24 16:31:00 Al8Kj3xL
>>172
> 既に表示されてた行が上にずれて1番上の行が消えるとか
Clipが神だと分かったあの日の夜
174:名前は開発中のものです。
05/12/24 16:37:56 gnp/5lgI
それ文字列をスクロールさせるのではなくて
BufferedImageで文字列のバッファ用意して毎フレームブリットしたほうが楽
175:名前は開発中のものです。
05/12/26 08:43:49 zSwx4yvQ
>>174
勉強になります
㌧㌧
176:名前は開発中のものです。
06/01/07 15:15:38 EFX7v943
Javaでタスクシステムって作れる?
177:名前は開発中のものです。
06/01/07 18:00:27 yOZ6b1cq
オブジェクト指向なんだから普通はポルモルフィズム(多態性)でOK
178:名前は開発中のものです。
06/01/15 10:23:57 53jl8YVS
SWTのImageとGCをつかってスプライトを描画しているんですが、
左右反転、上下反転をする際に、
setTransform(...)
で、trans.scale(-1,1);
などとすると複数のスプライトを描く際に実用に耐えられないくらい重いです。
AWTのdrawImageみたいに、それだけで左右、上下反転できないのでしょうか?
srcX,destXを反転させれば良かったAWTにたいし、
SWTだとwith,height指定なので引数に負数を渡すと実行時エラーになってしまい、それだけではできないようにみえます。
ご存じの方、おられましたら宜しくお願いいたします。
179:名前は開発中のものです。
06/01/15 11:12:29 aMKMqoWr
SWTはEclipse以外では使わないこと
が正しいと思う
PureJavaのほうがまともな実装ってどういうことさ
って場面がよくある
180:名前は開発中のものです。
06/01/15 20:09:28 Vrds102b
SwingでJava2D使おうぜ
181:178
06/01/15 22:49:28 53jl8YVS
>>178,>>179
なるほど、ありがとうございます。
SWTをつかってアニメーションエディタとゲーム自体を一緒に作っていたのですが、
考え直した方が良いみたいですね。
182:名前は開発中のものです。
06/01/15 22:52:15 53jl8YVS
う、間違えました。
>>180
Swingの方がやはりいいんですね。SWT自体は割と扱いやすいとは感じているのですが、
最近は情報も出てこず考え直したりもしています。
SWTを使うと局所的なところでWin32APIなどを呼べるのも魅力なのですが。
思想には反しますけれど。
183:名前は開発中のものです。
06/01/16 00:14:43 DTLttG/1
PureJavaとはいえJava2DってDirectX使われてるの知ってる?
情報量は多いしものによっては速度面でも結構いける
1フレームあたり1000個のスプライトとか余裕
184:名前は開発中のものです。
06/01/17 03:10:21 9917DXoA
JAVAでカードゲームを作ろうと思っているのですが、
某サイトに開発ツールJAVA2 SDK 1.3と書いてあるのですが、
このスレのテンプレには(Ver5.0のJDKとVer1.4.2) しかなく
どれをDLすればいいのか分かりません
どなたか教えてもらえないでしょうか?
185:名前は開発中のものです。
06/01/17 06:08:31 Om3jnpEH
>>184
ハァ?
質問の意味が読めん
186:名前は開発中のものです。
06/01/17 06:37:28 1vDzG9rV
>184-185
エスパーちからを発揮してみると、参考にしようと思ったサイトが
1.3だったので、1.3が良いと思ったのではなかろうかと。
1.4か5.0でやってみたら?ほとんどの場合、動くと思うよ。>184
187:名前は開発中のものです。
06/01/17 14:12:13 jNVA85J7
>>185-186
日本語がおかしくてすみません
参考にしようと思ってるサイトでは1.3と書いていて
1.3を探したけど、1.4か5.0しかなくて困ってます。
それから1.4と5.0の違いが分からなくて
どっちをDLしていいのか分かりません
違いを教えてもらえないでしょうか?
ちなみにiアプリのゲームを作ろうと思ってます
188:名前は開発中のものです。
06/01/17 14:22:08 4NyPfQ7d
ここではJava2SEの話題がメインなので
J2MEの話題はプログラム技術板に専用スレがあったと思うのでそちらのほうがいいかと。
そして動作保障している1.3を使うのが吉。
互換性は細かいタイミングが必要なところではチューニングすればするほど問題が出やすいし。
J2MEといってもiアプリは独自の層があついのでいわゆるJavaという豊富な標準API
を使って開発するという感じはないと思われ。
189:名前は開発中のものです。
06/01/17 17:16:07 jNVA85J7
おお!?
そうなのですか
全然知りませんでした^^:
すみませんでした
そっちに行きます
190:名前は開発中のものです。
06/01/18 06:35:27 kAS6/zeP
すみませんCPad for Javaについて質問です
CPad for Java 2.31
にてAntが使えるというので、以下のページのやり方で設定してみました
URLリンク(javacafebreak.tripod.com)
このページには「CPadで、Antを実行するには、『F6』キーを押すか、メインメニューの『実行』→『Ant』を選択します」
とかかれているのですが、『F6』キーを押しても何も起こらないし、
「メインメニューの『実行』→『Ant』」などというメニュ項目も見当たりません
CPadで、Antを実行して、さらにエラーメッセージをCPad上のメッセージウィンドウで表示させている人たちは
どうやっているんでしょう
(DOS窓でAntの実行を単独実行するやり方はわかっているのですが、それだとCPadのメッセージウィンドウに表示できないので不便なんです)
環境はWindows2000 JDK1.5.0_06 です
191:名前は開発中のものです。
06/01/18 10:53:20 c2N1wZsa
もしかして普通のJavaスレと勘違いしてる?
192:名前は開発中のものです。
06/01/23 17:40:02 kW9KAIGh
サーブレットとかJSPでゲームを作るのは無理ですか?
193:名前は開発中のものです。
06/01/23 17:48:15 yJIlIQCh
WEBアプリのゲームはあるから無理ではないけど
別にたいした仕組みが必要になるわけでもないと思われ
194:名前は開発中のものです。
06/01/23 22:17:38 /EcVc25a
シューティングでインタープリターをつくろうと思ったのですが
文法をどうやって決めればいいのか、どう実行させればいいのか
いまいち想像できません。
敵の出現まではできそうですが、敵の弾の設定(どんな弾を、いつだすか)を
インタープリターでどう表現したらいいのでしょうか?
195:名前は開発中のものです。
06/01/23 22:27:55 I0QlWZ4d
>>192
WEBブラウザで行うCGIゲームライクなものなら当然可能。
というか、漏れ自身が現在進行形で作成中。
196:名前は開発中のものです。
06/01/23 22:46:33 tL3TpBsR
>>194
なんか設計に悩んでるっぽいことはわかった。
その調子でがんばれ。
197:名前は開発中のものです。
06/01/23 22:49:50 yJIlIQCh
>>194
まずは敵のクラス内で処理してみれば?
それを外に出したほうがいいか、ださないほうがいいかは案件しだい
198:名前は開発中のものです。
06/01/24 14:41:32 vo2dZIRF
インタープリターよりも簡単なコードジェネレータの方がいいんじゃない?
199:名前は開発中のものです。
06/01/26 15:59:14 Pd3Qgsdn
格ゲーで斜めジャンプをさせたいんだけど、上キー+右キーでやらせるにはどうしたら良い?
以下制作中のソース。
public void keyPressed(KeyEvent e){
int K = e.getKeyCode();
if(K==KeyEvent.VK_UP) {
st = 8;
KeyAction();
}else if(K==KeyEvent.VK_DOWN){
st = 2;
KeyAction();
}else if(K==KeyEvent.VK_RIGHT){
st = 6;
KeyAction();
}else if(K==KeyEvent.VK_LEFT){
st = 4;
KeyAction();
}
repaint();
}
200:名前は開発中のものです。
06/01/26 16:52:43 ITPJnSj3
>>199
まず根本的なことからなおしましょう
キーのイベントで処理は入れないように
メインループでのみ処理するようにしてください
イベントではフラグの上げ下げのみで
201:199
06/01/26 23:31:16 Pd3Qgsdn
>>200
サンクス。できるようになりました。
202:まほろば ◆BmUbLWewsM
06/01/28 18:36:32 K+4gOIY6
いやーこのスレは役にたつなー。。
ところで、classファイルからソースコードを盗まれないようにするにはどうしたらいいんでしょ。。
203:名前は開発中のものです。
06/01/28 18:42:43 u3ZzJuZS
正直それはあきらめろ
クラスローダ自作したところで実行中のメモリのぞかれれば意味なし
nproではじくとかやると誰も使うやつはいなくなるぞ
ネイティブバイナリでもコンパイラの癖とあたりつければそれなりに追えるんだし・・・とわりきれ
その分開発効率がいいんだからガンガンものづくりに専念しなさいといいたい
オンラインゲーなら毎日こまめにクラスを再配布していれば大丈夫かと
204:まほろば ◆BmUbLWewsM
06/01/28 21:29:17 K+4gOIY6
>>203
実行中のメモリのぞかれれば意味なし
そんな事出きるの?ソースは?
やろうと思えばできるとか妄想でつか?
205:名前は開発中のものです。
06/01/28 21:37:25 EnQtmKxX
>>204
メモリ覗くだけならWindows上で実行しちゃえば簡単だろうけど、
手軽に解析って話は俺も聞いたこと無いな。
うちの会社はDashOとかいうバカ高い難読化ツールを買った。
そんな必要無ぇって主張は通らなかった。
206:名前は開発中のものです。
06/01/28 22:44:25 PUcSGIMg
読みやすくしてくれるツールはありませんか。
207:名前は開発中のものです。
06/01/28 23:06:37 u3ZzJuZS
>>204
多少は調べろ
クラスロードした後はざる
208:まほろば ◆BmUbLWewsM
06/01/28 23:57:58 K+4gOIY6
>>207
209:名前は開発中のものです。
06/01/29 01:11:24 1KG7yFUT
結局いいスレだったのをコテハンが壊したってことか。
210:名前は開発中のものです。
06/01/29 02:35:06 PecoYXTp
もう大学生は春休みか……
いいご身分だなぁ。
211:名前は開発中のものです。
06/01/29 12:34:08 FRX/ORuz
低脳だから卒業後ニート行きで
さらに良いご身分だな
212:まほろば ◆BmUbLWewsM
06/01/29 13:24:43 LX0lKjST
まったくだなww
213:名前は開発中のものです。
06/01/29 17:14:26 zbiz4Pm/
GraphicsクラスのdrawImageで浮動小数点数を使う方法って何かない?
ゲームのキャラクターを表示させるためにはint型では精度が悪いんで。
214:まほろば ◆BmUbLWewsM
06/01/29 17:28:00 LX0lKjST
ないよ。javadoc見りゃ分かるじゃん。。
215:名前は開発中のものです。
06/01/29 17:45:07 ec+1eYbr
>>213
そういうときは大きいバッファを持つことで回避する
320*240の画像を0.5単位で扱いたいときは640*480とかね
drawRenderedImageとかtranslateを使う方法もあるが
用途がゲームなら使わないほうがすっきりしていいと思われ
216:名前は開発中のものです。
06/01/29 17:57:12 2i9o9yjB
>>213
Graphics2D でもいいのなら AffineTransform を使えばできる。
デフォルトでは AffineTransform を使用しても補完してくれないので、
補完方法を設定する必要がある。
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BICUBIC);
g2.drawImage(image, transform, null);
こうすると 0.01 単位でヌルっと動かせるけど、それなりに重くなるし
画質もはっきりしたりぼやけたりするので逆にオススメできない。
キャラ自身の内部座標を小数点で扱うのは自由だけど
画像の描画に関しては座標を int で処理するのが現実的だと思う。
217:名前は開発中のものです。
06/01/29 21:48:41 qPM3IQVC
正男ってjava?
218:名前は開発中のものです。
06/02/01 20:44:05 W1eX6IZO
Javaアプレットでしょ
219:名前は開発中のものです。
06/02/05 00:25:12 LCSDYznu
フルスクリーンモードで質問なんですが
public static void main(String[] args) {
GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = env.getDefaultScreenDevice();
JFrame frame = new JFrame(device.getDefaultConfiguration());
frame.setUndecorated(true);
device.setFullScreenWindow(frame);
MyPanel panel = new MyPanel();
frame.getContentPane().add(panel);
}
こんな感じでフルスクリーン化するフレームの上にパネルをはりつけてます。
このときフルスクリーン状態にはなるんですが、パネルのpaintComponent()が
呼ばれてないらしく描画されません(画面が真っ白のままでサウンドはなります)
panelのpaintComponent()が呼ばれるにはどう修正すればよいでしょうか。
220:名前は開発中のものです。
06/02/05 00:52:34 NFbwVJ0F
フルスクリーン使ってるならSwingのイベントモデルにはこだわらないのが普通
BufferStrategyってのをしらべてごらん
ようは好きなタイミングで描画が出来るのだ
221:名前は開発中のものです。
06/02/05 01:21:52 LCSDYznu
ありがとうございます。
やっぱそれですか。そうかもと思って実装始めたらできました。
frame.createBufferStrategy(2);
とやってpaintComponent(g)をdraw(g)にかえて
BufferStrategy strategy = window.getBufferStrategy();
Graphics g = strategy.getDrawGraphics();
draw(g);
g.dispose();
でうまく描画できました。
222:219
06/02/05 01:30:28 LCSDYznu
もう一つあるのでアドバイスいただけるとうれしいです。
Window window = device.getFullScreenWindow();
window.add(JPanelオブジェクト);
とやってフルスクリーン上にパネルを置いています。
こうするとパネルがちらついてしまうのですが対策はあるでしょうか。
223:名前は開発中のものです。
06/02/05 01:52:48 8ByMu9YS
まずパネルをおく必要はない
ウインドウ全体を使って描画してるから
224:219
06/02/05 09:38:19 LCSDYznu
コマンド選択パネルみたいに使っているんですが。
フルスクリーン上でスペース押すと右上にパネルが表示されます。
KeyboardListenerを実装してるのでキー入力はそのパネルが奪い
パネルを消すともとのフルスクリーン上にキー入力がいくという感じです。
パネルじゃなくてCanvasでもいいんですがどうもちらつきます・・・
パネルで何も描画しなくてもちらつくということはフルスクリーンにしてる
JFrame上にコンテナは置いちゃだめということでしょうか。
225:名前は開発中のものです。
06/02/05 12:29:26 8ByMu9YS
おいてはいけないということはないが、BufferStrategyはつかえんぞ
226:219
06/02/05 13:00:29 LCSDYznu
そうですか・・・ボタンやらも全部だめだったのでBufferStrategyの描画領域にコンポーネントは配置してもちらついてしまうみたいですね。
あきらめてパネル風のウィンドウを描画することにします。
227:名前は開発中のものです。
06/02/05 13:25:23 8ByMu9YS
ゲーム目的ならコンポーネントの描画は避けるべきだな
すべて自前で描画しないとリフレッシュとかのタイミングがコントロールできん
228:名前は開発中のものです。
06/02/05 14:37:09 15xceU0H
便乗だけど、フルスクリーンで文字の入力はどうすればいいの?
英語だけなら楽勝かもしれないけど、漢字変換とかどうすればいいのかさぱーり。
以前コンポーネント埋め込んだら酷いことになって諦めてた
229:名前は開発中のものです。
06/02/05 14:40:46 LCSDYznu
MMORPGの市販ゲームとかできてるからやり方あるんだろうけど。Javaだとどうなるんだろ。自分も知りたい。
230:名前は開発中のものです。
06/02/05 15:23:24 8ByMu9YS
MMORPGの場合フルスクリーンでもただすべての画面を占有するだけ
といった作りかたしてると思われ
JavaでやろうとするならBufferStrategyをあきらめるほうがいいだろうね
JPanelに画面部分を描画、paintComponentでバックバッファから自前で転送
231:名前は開発中のものです。
06/02/05 17:31:23 XoC15JKP
LWJGLやJOGLで日本語文字を画面に表示するにはどうしたらいいんでしょうか。
LWJGLにAWTGLCanvasっていうのがあって、これを使えばできそうなんですが、
サンプルがなく使い方がいまいち分かりません。
みんなはどうやっているんだろう。
以前Graphics2Dでゲーム作ろうと思ったけど、アルファブレンド処理がソフトウェア描画に
なったので、LWJGLに移ったんですが。
うううーーーん
232:名前は開発中のものです。
06/02/05 17:43:24 8ByMu9YS
基本はDirectDrawだからな
一応オプションでDirect3Dで動作させればアルファブレンドもハードウェアになるが
レンダリング品質の問題とか通常一番使うブリットが遅いとかJava2Dベースでは
通常合成しか出来ないとかが問題になるからな
LWJGLはまったくさわったことがないのでわからん
JOGLはOpenGLそのままだね
俺が触ったときはSDLとのリンクが未実装だったので対象には上がらなかったが
Java3Dは高級すぎてゲーム用途にはまったく使えないという感じだった
速度がまったくでないことやピクセル単位の処理という感じではなかった
ただ、軽く触っただけなのでなんともいえない
2Dゲームならソフトウェアによるアルファブレンドが問題になるほど遅い場面は少ないとは思う
233:名前は開発中のものです。
06/02/05 19:35:20 XoC15JKP
>>232
640x480の画面に32x32のマップをひきつめただけですでに40FPSだったんですよね
Graphics2D。。。
やっぱりC++の方がゲーム開発はいいのかなぁ・・・
開発効率はJavaの方がはるかにいいんですけどね
何かJOGLやLWJGLに近い速度がでるゲーム用ライブラリって
ないんでしょうか
234:名前は開発中のものです。
06/02/05 19:44:36 8ByMu9YS
アルファブレンドでしきつめたらそれくらいにはなりそうだが
通常転送ならそこまで遅くなることはあるまい
使い方がおかしいかと
235:名前は開発中のものです。
06/02/05 19:48:54 XoC15JKP
>>234
アルファブレンドで描画したときです。
正直なきたくなりました。
同様の処理でDirectXの場合は余裕を持たせてもFPS500ぐらいでした。
236:名前は開発中のものです。
06/02/05 20:03:06 8ByMu9YS
デフォはDirectDrawベースだから当たり前
PureJavaベースのゲームなら少し前のコンシューマの2Dベースにしておくべき
アルファブレンドが多い場合は自前のエンジンを使ったほうがいい
Java2Dのアルファブレンドは機能が多すぎて高級すぎる
回転とかも同様
あとメモリアクセスを減らすために解像度を下げるとか
今後を考えてレンダリングエンジンはマルチコアに対応させる
現状を考えると320*240-16bppが2DでJavaでの安定動作の限界だと思うよ
それを2倍拡大して描画するのがベストか
Sunはデスクトップ部分に5.0は力を入れるといいつつ
1.4.2とほとんど変わらなかった前科があるから6にも期待薄だな
237:名前は開発中のものです。
06/02/05 20:25:57 15xceU0H
-serverを指定するだけ多少は速くなるし、メモリ次第かなぁ
238:名前は開発中のものです。
06/02/05 21:05:19 8ByMu9YS
serverはゲームではオススメしない
強度の最適化のために滑らかに動かない
239:名前は開発中のものです。
06/03/01 00:33:42 LBMCdldE
BufferStrategyとpaintComponentを切り替えられるようにすれば
RPGツクールでキーボード名前入力を可能にした感じのゲームも可能なのかな。
でもそんなことしてたらMMORPGなんて作れない気もする。
-serverの件もそうだけど、なんかもどかしい
240:名前は開発中のものです。
06/03/01 00:53:30 iPnrcY6D
一応BufferStrategyはCanvasでも使える
AWTなのであまり込み入った使い方しないように
241:名前は開発中のものです。
06/03/01 01:34:48 LBMCdldE
おお、ホントだ。BufferStrategyは埋め込み可能だったのか。
ゲーム画面上に透明チャット窓とかしようとするのも可能そうだね。
BufferStrategyならAWTとSwingの差分なんてあってないようなものだろうし。
ちょっと希望が湧いてきました。
242:名前は開発中のものです。
06/03/01 02:35:02 LBMCdldE
5.0からAWTにZOrderが追加される。かゆいところに手が届いてら。
243:名前は開発中のものです。
06/03/04 19:59:23 +Bxv4duP
Swingでrepaintをした場合ってイベントキューで処理されるの?
Timerのタイミングできちんと描画スレッドに渡せますか?
244:名前は開発中のものです。
06/03/04 23:22:41 EEF7QBKs
何を言いたいのかわからんがSwingは普通のSUIのイベント処理だぞ
リペイントわたしてもリペイント範囲のaddされるだけ
連続でrepaint複数渡しても1回しかリペイントされないとかよくあること
これはSwingに限ったことではない
Windowシステムは全部そう
だからTimerでrepaintわたしたからすぐに描画されるわけではない
正確なタイミングでやるならAWTイベントでのリペイントは辞めるべき
BufferStrategyを使うのが正しい
これは内部でDirectXとか使われてるイベントモデルではなく、いわゆる直書きだ
245:名前は開発中のものです。
06/03/05 13:59:16 R322THrX
>>244 どうもです。
FPS管理するからrepaintのままでやります。
描画に失敗したら致命的というわけでもありませんし。
246:名前は開発中のものです。
06/03/05 14:46:49 o20ilzio
FPS管理って普通にみんなBufferStrategyでしてると思うぞ
なんか勘違いしてないか?
247:名前は開発中のものです。
06/03/05 15:12:44 R322THrX
いやJComponentもバリバリ使いたいので。
248:名前は開発中のものです。
06/03/05 16:46:58 o20ilzio
Swingコンポーネントベースのゲームってめずらしいな
ダブルバッファリングをライブラリに任せるのは割ときついからな
249:名前は開発中のものです。
06/03/15 01:15:11 cXOEjtfT
保守
250:名前は開発中のものです。
06/03/18 15:46:10 bpOUjL+k
良スレですね。
6年ぶりぐらいにJava触って驚いた~。
趣味の遊びには最適ですね。
251:名前は開発中のものです。
06/03/18 23:01:07 ATXsVevn
exewrapがJavaゲームの必須アイテムになるのかな?
ヒープサイズをjrockitと同じ物理メモリの75%とかに指定したいんだけど
exewrapにはそういう指定は出来ないんだろうか
128m版と256m版の2つ用意したほうがいいかな・・・うーむ
252:名前は開発中のものです。
06/03/18 23:25:32 xwepgm3J
鯖アプリじゃないんだから物理メモリの割合は意味がないぞ
メモリ増えればGCにかかる時間は増えるわけで、ゲームで使用するメモリ量とかちゃんと計算してないの?
それだとGCとかでかたつかないか?
253:名前は開発中のものです。
06/03/19 00:20:58 jd/0wDmz
単位時間に対するGC率が増えるのって操作性に影響でないの?
254:名前は開発中のものです。
06/03/19 00:26:14 UecNa0OI
100秒ごとに1秒とまるGCと1秒ごとに0.01秒とまるGCとどっちがゲーム向きかということだ
それにわりあいでやられたら世代の調整とかおわっとる
GCのアルゴリズムの種類だって調整するのは常識なんだし
アプリごとに最適な値は大きくことなる
255:名前は開発中のものです。
06/03/19 00:34:10 jd/0wDmz
Mapにキャッシュするサイズ+演算用のサイズで考えればいいんだよね?
最適値というのは演算分のヒープサイズがどのくらいのものなの?
256:名前は開発中のものです。
06/03/19 00:50:29 UecNa0OI
GCの頻度とか使用量とかチェックしてないの?
-verbose:gcオプションいれてごらん
もっと詳しく見たいのならプロファイラで見るのが一番だが
まずはGC部分に注力するならこれが見やすいだろうね
257:名前は開発中のものです。
06/03/19 00:58:12 jd/0wDmz
>>256
OK、チャレンジしてみます。
258:名前は開発中のものです。
06/03/31 14:22:07 5bd8BEHK
当方、子供の頃にZ80アセンブラやBASICでゲームプログラムして遊んでいました。
まぁアルゴリズムとかは結構わかります。
今頃になって、再びプログラムを趣味にしてみようと思いJavaを選択しました。
シンタックスやOOPの基本的なことは大丈夫そうです。
Eclipseインストールしてちょっと感激。
で、問題なのはすこしでもDirectDrawとかFPS管理とか、ちょっとでもシステム寄りの
部分になると全然わからないのです。
いくつかソースを読んでみますと、各人でわりと実装が違うようですね。
Java5ではどんな方法がよいのかなど、参考になるものは無いでしょうか。
259:名前は開発中のものです。
06/03/32 00:20:26 dul/XEV4
>>258
そういう人かなりいるよね
ゲームは問題なく作れるけどウインドウアプリになるとmainからはじまらないので
わけがわからない、と
Javaは一応mainから常に始まるしまだ楽なほう
>>1-11あたりはまずよんでみた?
260:名前は開発中のものです。
06/03/32 01:27:44 liMA6BYm
3/32 記念パピコ
261:名前は開発中のものです。
06/04/04 13:36:48 oy1ylhQ+
eclipseってそんなに良いか?【エクリプス】
スレリンク(tech板:274-番)
> 280 名前:デフォルトの名無しさん[sage] 投稿日:2006/04/04(火) 09:53:59
> >>276
> ほんとかよ。
> 2Dゲームの背景にタイルを敷き詰める処理を作ってみたが明らかに遅いぞ。
> これと言って変な処理は入れてないが、5fps出ない。
>
透過pngをImageIO.read()で読み込んで
Graphics.drawImage(Image, int, int, ImageObserver)で表示すると確かに重くなるが
上の奴はこれと同じ状況なのだろうか?
262:名前は開発中のものです。
06/04/04 13:41:10 h6nMnOJP
アルファブレンドだと重いけどただの色抜きなら重くはないよ
5.0ではBufferedImageのままなにもしなくてもそれなりにきくようになってるし
5fpsってありえんね
そもそもソフトウェア描画でもVGAで30fpsはでそうだが
263:名前は開発中のものです。
06/04/06 12:59:32 kzyZx0iO
iアプリを作ろうと思って勉強してるんですが、画像表示で躓いています。
サンプルではちゃんと表示されるんですが、画像を自作のものと入れ替えるとIO.connectionexception
ってのがでるんです。サンプルと同じGIFでサイズも同じにしてあるんですが。自作画像の方に問題が
あるんでしょうか。
264:名前は開発中のものです。
06/04/06 14:20:33 mP0GEHd4
>>263
動かないのが実機かPC上かを明記してもらえるとありがたい
サンプルがどんな処理を行うアプリケーションなのかも関係してくる
情報が少なすぎるのでエスパー回答してみるが、
・ファイルが壊れている
終端コードが無かったり、BMPなのに拡張子だけGIFにしたとか
試しにネット上に転がってる別のGIFファイルでテストしてみては?
・ファイル名の指定が間違っている
サンプルと同じファイル名にしてテストしてみては?
大文字小文字、全角半角の違いがないか気をつけて
・容量がオーバーしている
同じサイズというのはピクセル数のことだと思いますが、
バイト数が上限を超えていないか確認してください。
265:名前は開発中のものです。
06/04/06 17:15:27 kzyZx0iO
適当に書いてすいません。エラーがでるのはDoja3.5のPC上で、ビルドした後実行すると出ます。
サンプルは簡単なもので、画面にタイトルを表示するだけのものです。十枚ある画像を取り込んで
そのうちの一つを画面に表示するものです。
ファイルが壊れている>壊れているかは私に判断できないんですが、自作の画像はwindowsのペイ
ントで書いて、0という名前で(サンプルで表示されるのが0.gif)形式をGIFにしています。
容量がオーバー>サンプルは色付きですが、自作のものは白と黒のみなのでサイズは小さいです。
いろいろ試してみたんですが、サイズの違う画像の時に一回エラーがでずにちゃんと表示されて、
その画像の大きさをいろいろ変えたんてみても上手く表示されました。やはり元の画像が悪いので
しょうか
266:名前は開発中のものです。
06/04/06 17:20:56 kzyZx0iO
あともう一つ。一回エラーが出た後、画像をもとのサンプルの画像にしても、やはり
エラーが出たままなんです。
267:263
06/04/08 17:16:17 +i1+4exU
ソースも画像も変えてないのに何回かやったら表示されるようになりました。
お騒がせしました。264さんありがとうございます。
268:名前は開発中のものです。
06/04/08 21:22:15 MsUK1t+N
何回かやったらってありえね
ビルドしてないとか
269:名前は開発中のものです。
06/04/09 20:57:47 S2mcpQ+R
俺の場合、PCを再起動してみたら正常に動いたってことはたまにある。
メモリが不足してたのかな?
270:263
06/04/09 23:11:53 TOyrHTNi
原因はわからないです。さんぷるの画像の内、一枚だけ入れ替えたらうまくいったんで、
一枚ずつ入れ替えていったらエラーがでなくなりました。言われてみれば一回電源切った
あとかも
271:名前は開発中のものです。
06/04/10 02:20:42 tKGbAe46
>>270
わかんないならもうレスしなくていいよ
272:名前は開発中のものです。
06/04/15 01:23:46 sf5nUDiw
そのくらいのサンプル段階ならソース晒してもいいでしょう
アップローダにアップしては?
URLリンク(gamdev.org)
短いソースならこのスレに書き込んでもいいだろうし。
273:名前は開発中のものです。
06/04/15 10:51:05 0dEqMUag
この板寂しいからレスしてくれよ・・・
書き込みがあるとわくわくする
274:名前は開発中のものです。
06/04/15 11:44:35 HLCHM0Al
最近アプレットは流行らないよな。
このスレはJavaアプリのこと?アプレットのこと?
サーバ側の話?J2MEのこと? なんでもあり?
それよりなにより、漏れは女とJavaTea飲みたい。
275:名前は開発中のものです。
06/04/15 16:50:42 hisjoupK
MEは実装依存度が高すぎるからそちらのスレで
基本はJavaアプリだろうね
アプレットは社内用リッチクライアント用途ではかなりいいけど
アプリと違って起動時のパラメータとかチューニングが限界がある
アプリによってメモリやGC等の設定は細かくかえるのが普通だから
ゲーム用ではさほど・・
フルスクリーンとかファイルアクセスとか限界もあるしね
手軽に配布ということでフラッシュ程度でいいのならフラッシュで作ればいいし
JavaでやりたいのならWebStartにしたほうがまし
JRE同梱してアプリにしたほうがいいよ
276:名前は開発中のものです。
06/04/15 18:40:50 nQHtm5rD
某スレに幾つかアプレットの2Dゲームが上がってるけど、
速度的には全然遜色ないな。
アプレットでも結構作れる事は作れるけど、開発環境などその他諸々の点で
フラッシュの方が断然上。
アプレットでゲームを作るメリットは何もないよ。
277:名前は開発中のものです。
06/04/15 18:57:48 AcPPvKEl
無料でまともなFlash開発環境があればいいんだけどな
278:名前は開発中のものです。
06/04/15 19:10:16 Vc+Xe/9j
ActionScript経由でFlashの機能は全部表現できるんだよね?
だったらActionScript3.0がパブリッシュ(コンパイルの意)出来る環境があれば
あとはAPIリファレンスを手に入れるだけで何とかなりそう
279:名前は開発中のものです。
06/04/15 21:04:45 hisjoupK
>>276
配布を考えればの間違いでは?
開発環境はアプレットのほうがどこをどう考えても上
アクションスクリプトきっついよ
280:名前は開発中のものです。
06/04/15 22:36:11 lpccgP2z
>>276
ASの開発しづらさを知ってて言ってるのか?
マジキツイっての、アプレットと作り比べてみろよ。
281:名前は開発中のものです。
06/04/21 18:53:51 7zcsjMK6
Java使えればゲーム以外にも仕事で役立ちそう
Flashは覚えても応用範囲が狭そう
282:名前は開発中のものです。
06/04/26 22:50:39 h83t4bfk
>>281
俺はC→AS→Javaだったよ
ASだけは遊びで覚えたんだけど、OO開発の基礎は自然と身についた
MovieClipの仕様がいいんだろうな
283:名前は開発中のものです。
06/04/29 05:29:13 e8m8pSlv
みなさんゲーム作ったんですか?
ここじゃ晒さないんですか?
284:名前は開発中のものです。
06/05/01 20:40:07 nUaQGh3S
フリーのは、ふりーむ!とベクターで公開してる。
有料のはDLsite.com等で販売中。
285:名前は開発中のものです。
06/05/07 00:14:23 W2WiM6Ar
知っている方がいらっしゃったら教えてほしいことがあります。
以前j2re1.4.1_02でフルスクリーンとウィンドウモードを切り替えるものを作ったのですが
1.5.0_06では解像度の変更が正しくうごかないという事に当たりました。
手順は
1)フルスクリーンにする
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
device = ge.getDefaultScreenDevice();
DisplayMode fullscreen = new DisplayMode(640, 480, 32, DisplayMode.REFRESH_RATE_UNKNOWN);
device.setFullScreenWindow(fullscreen);
2)排他を解除しウィンドウモードにする
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
device = ge.getDefaultScreenDevice();
device.setFullScreenWindow(null);
この後で1)を行った場合、1.4.1_02ではフルスクリーンで解像度が変わったのですが
1.5.0_06ではフルスクリーンにはなるが解像度が変わらないということになりました。
何かご存知の方がいらっしゃったらお願いします。
286:285
06/05/07 00:27:33 W2WiM6Ar
書き忘れていました。
1)では決まったフレームをフルスクリーン指定してます。
device.setFullScreenWindow(frame);
287:名前は開発中のものです。
06/05/07 02:17:45 5a9PuC3k
元々フルスクリーンと行き来するとリークが発生するから起動時に選択させるほうがいい
ところで意味が分かりにくいのだが
1>2>1ってこと?
288:285
06/05/07 02:57:40 W2WiM6Ar
>287
>元々フルスクリーンと行き来するとリークが発生するから起動時に選択させるほうがいい
ありがとうございます、その方向で考えてみます。
>1>2>1ってこと?
そうです。
289:名前は開発中のものです。
06/05/07 11:37:59 5a9PuC3k
いまやってみたけど画面ちゃんと切り替わったよ
290:285
06/05/07 14:11:36 W2WiM6Ar
>289
j2re1.4.1_02では、繰り返し切り替えたときにちゃんと解像度も一緒に変わったのですが
1.5.0_06ではフルスクリーンにはなりましたが、二度目以降のフルスクリーン切り替えで
解像度が変わりませんでした。(一回目はちゃんと解像度が変わるようです。)
もしうまく切り替わったのでしたらソース、上げていただけませんでしょうか?
291:名前は開発中のものです。
06/05/07 14:15:43 5a9PuC3k
こんなかんじ
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = device.getDefaultConfiguration();
DisplayMode mode = new DisplayMode(640, 480, 32, DisplayMode.REFRESH_RATE_UNKNOWN);
JFrame frame = new JFrame(gc);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
device.setFullScreenWindow(frame);
device.setDisplayMode(mode);
Thread.sleep(1000);
device.setFullScreenWindow(null);
Thread.sleep(1000);
device.setFullScreenWindow(frame);
device.setDisplayMode(mode);
292:名前は開発中のものです。
06/05/07 14:17:41 5a9PuC3k
注意事項としてウインドウモードとフルスクリーンモードで
色深度が違う場合テクスチャキャッシュとか全部作り直してね
異なる色深度で転送を行うとすごく遅くなる
293:285
06/05/07 14:20:50 W2WiM6Ar
ソース、ありがとうございます。
確認してみます。
294:285
06/05/07 15:30:17 W2WiM6Ar
>292
先ほどのソースありがとうございました。
フレームの非表示をフルスクリーンとウィンドウ毎にきりかえりため
毎度フレームをdisposeし、再作成していたが原因でした。
ところで、上記ソースのやり方でフルスクリーンのときにだけ
frame.setUndecorated(true);
を有効にしたいとおもい、いくつか試しているのですがうまくいっていません。
作成していたソースを載せておきますので、再度も一度だけご指摘いただけますでしょか?
295:285
06/05/07 15:33:08 W2WiM6Ar
以下がソースです。
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = device.getDefaultConfiguration();
DisplayMode mode = new DisplayMode(800, 600, 32, DisplayMode.REFRESH_RATE_UNKNOWN);
JFrame frame = new JFrame(gc);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
System.out.println("初期表示");
frame.setSize(800, 600);
frame.setResizable(false);
frame.setLocationRelativeTo(null);//中央配置
frame.setVisible(true);
Thread.sleep(10000);
System.out.println("フルスクリーンへ");
//frame.setUndecorated(true);//フレームの非表示
device.setFullScreenWindow(frame);
device.setDisplayMode(mode);
Thread.sleep(10000);
System.out.println("ウィンドウモードへ");
device.setFullScreenWindow(null);
296:名前は開発中のものです。
06/05/07 16:01:17 5a9PuC3k
>このフレームの装飾の有効化と無効化を切り替えます。
>フレームが表示されていない時にだけ呼び出すことができます。
マニュアルどおりだと思うんだが
タイトルバーの表示、非表示はフレームが表示されているときは駄目
一度非表示にする必要があるよ
297:名前は開発中のものです。
06/05/07 16:03:32 5a9PuC3k
GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice device = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = device.getDefaultConfiguration();
DisplayMode mode = new DisplayMode(640, 480, 32, DisplayMode.REFRESH_RATE_UNKNOWN);
JFrame frame = new JFrame(gc);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setUndecorated(true);
device.setFullScreenWindow(frame);
device.setDisplayMode(mode);
for(int i=0; i<10 ;i++){
Thread.sleep(1000/2);
//ウインドウモード
frame.setVisible(false);
frame.dispose();
frame.setUndecorated(false);
device.setFullScreenWindow(null);
frame.setVisible(true);
Thread.sleep(1000/2);
//フルスクリーンモード
frame.setVisible(false);
frame.dispose();
frame.setUndecorated(true);
device.setFullScreenWindow(frame);
}
298:名前は開発中のものです。
06/05/07 16:06:27 5a9PuC3k
あ、最後フルスクリーンモードで終わってるんでALT+F4な
299:285
06/05/07 17:03:17 W2WiM6Ar
丁寧な反応、本当にありがとうございます。
setVisible(false); の後でdisposeが必要なのですね、
わからずに数ヶ月引っかかっていました。
297でいただいたサンプルなのですが、最後のフルスクリーンの状態で
解像度が640, 480ではなく元に戻っていませんでしょうか?
これを何とかできないかなと
//フルスクリーンモード
frame.setVisible(false);
frame.dispose();
frame.setUndecorated(true);
device.setFullScreenWindow(frame);
device.setDisplayMode(mode);
としてみたのですが、今度はウィンドウモードの解像度が戻らなくなってしまいました。
これが一番最初の質問と同じ状態のようです。
300:名前は開発中のものです。
06/05/07 17:32:54 5a9PuC3k
ウインドウモードのタイミングが指定がおかしかった
//ウインドウモード
device.setFullScreenWindow(null);
frame.setVisible(false);
frame.dispose();
frame.setUndecorated(false);
// device.setFullScreenWindow(null);
frame.setVisible(true);
としてごらん
301:285
06/05/07 18:08:49 W2WiM6Ar
ありがとうございます。
切り替え動くようになりました。
動くようになったので調子に乗って切り替え100回とか試してみたら
java.lang.OutOfMemoryError
がでてきました。最初におっしゃってたように、あまり頻繁に切り替えるもんじゃないって事なんですね。
302:名前は開発中のものです。
06/05/09 15:25:13 ii7Fciy7
ソース見直してたらstaticでいいのにインスタンス生成してる部分が結構あった
インスタンス生成よりstaticの方が軽い、速いかな?
303:名前は開発中のものです。
06/05/09 16:50:48 BdqQPpYt
Java的にはstaticはできるだけ使わないほうがいいらしいけど
304:名前は開発中のものです。
06/05/09 17:54:55 oSIIzbHZ
オブジェクトはプールしないで積極的に生成破棄してくれ
世代別GCとの相性を考えるとこれ
305:名前は開発中のものです。
06/05/09 22:27:04 p8kDUjWo
>>303
実装するにあたって、static変数が必要なデザインパターンもあったんじゃね。
306:名前は開発中のものです。
06/05/09 23:23:28 j9harUZK
>>303
そういう覚え方はよくないよ。勉強しなおしたほうがいい。
307:名前は開発中のものです。
06/05/16 11:01:52 oJeJmTzF
ドラクエってさ、コマンド選ぶと前のコマンドがバックに表示されたまま
次のコマンドが出るじゃん それでキャンセルで現在のウィンドウが消えて
前のコマンドに参照が戻るよね
あれってそれぞれにバッファ用意してやるしかないかな?
たとえば道具→使う→誰に なら
道具を表示するバッファ
道具、使うを表示するバッファ
道具、使う、誰にを表示するバッファ
みたいに
308:名前は開発中のものです。
06/05/16 11:35:56 pNczDPI9
ファミコン時代にバッファがあったと思うか?
ひたすら上書き
ウインドウが消えたらアクティブになったウインドウの描画
それだけだよ
309:名前は開発中のものです。
06/05/16 11:37:03 pNczDPI9
一応レイヤーという考え方もありだが、いまだとそっちのほうが楽だろ
それぞれウインドウ内のみの描画管理
画面全体の描画でそれらを適切に呼び出す
310:名前は開発中のものです。
06/05/20 04:48:56 i7QcIrxX
>>308-309
遅くなったけどサンクス
なんとなく分かってきた
キャラやアイテムのリスト作るのが面倒臭いな・・・
存在してるキャラ、所持してるアイテムを調べてリストにして
多ければウィンドウをスクロールさせなきゃならぬ
面倒だけどがんばるか・・
311:名前は開発中のものです。
06/05/20 09:04:00 R0av8b56
面倒か?
わからなければ先にUMLでもなんでもいいけど処理の手順を書いたほうがいい
312:名前は開発中のものです。
06/05/21 05:45:05 BQPLtheI
処理を考えるのが一番面倒だ
きちんと順序立ててやってみるよ・・
313:名前は開発中のものです。
06/05/22 04:54:34 rAUj867u
俺はデータモデルの設計が一番面倒だなぁ。
変更や拡張に強く、ネットワーク越しの同期の取りやすいデータモデルをとか考え出すとはまり込む。
314:507
06/05/22 19:16:41 KUql4eEY
Javaを最近勉強しはじました。
とりあえず簡単なゲームを作りたいと思っているのですがどれ位勉強すればいいですか?
315:名前は開発中のものです。
06/05/22 19:27:29 bgWiXtf3
ゲーム作りで勉強すれば
そういう本最近多いし
316:名前は開発中のものです。
06/05/23 14:28:37 qGRGm1GF
if else で100近く分岐しそう・・
激重かな
317:名前は開発中のものです。
06/05/23 15:24:24 5zoiL+RS
>>316
どういう風に分岐させたいんだ?
318:名前は開発中のものです。
06/05/23 15:30:17 nyPWq5Mq
100こくらいのifでおもくなるって10MHz切ってるマシンの人かな
319:名前は開発中のものです。
06/05/23 22:43:16 qGRGm1GF
>>317
たとえばさ、魔法クラスがあって、そのメソッドに魔法No.をわたして
そのメソッド内で渡されたNo.によってswitchで分岐させるとか
話がswitchになっちゃったけどswitchは数しかつかえないんだよね、たしか
それ以外で識別したいならif elseしかないと思って
あと、変数は少ないけどメソッドがたくさんあるクラスのインスタンスを
100個くらいつくるとメモリがやばかったりするかな?
320:名前は開発中のものです。
06/05/23 22:51:29 wlFUtSp+
class Magic
{
321:320はミス
06/05/23 22:57:01 wlFUtSp+
abstract class Magic{
public abstract void perform();
}
みたいにして、個別の魔法はこれを継承するようにするとJavaらしくなるよね
実際にゲームを完成させる気ならこんなことしないだろうけど
メソッドはたくさんあっても問題なし
322:名前は開発中のものです。
06/05/23 23:14:15 qo1KKw1q
デザインパターン立ち読みでもいいからおぼえとくといいぞ
制御とデータをわけるという考え方は
Cとか構造化言語までのものだ
323:名前は開発中のものです。
06/05/23 23:18:59 qo1KKw1q
>>321
いや、ゲームでも普通はそういうプログラムを書く
それと識別させたいのならenumを使え
switchもつかえるし
324:名前は開発中のものです。
06/05/23 23:34:50 qGRGm1GF
レスサンクス
おかげで設計ができてきた
enumすか・・あまり馴染みがないから学ぶよ
ところで>>321の4,5行目が素でわからない
アフォですまぬ
教えてもらっていい?
325:名前は開発中のものです。
06/05/24 00:05:11 qo1KKw1q
ポリモーフィズムとかStateパターンとか
そのへんしらべてみるとわかるよ
326:名前は開発中のものです。
06/05/24 00:29:52 0rz/nhQ6
おk、ゲーム作りながら勉強する
いろいろサンクス
327:名前は開発中のものです。
06/05/27 11:28:27 MsTUcez+
VectorにStringとInteger入れて、取り出すときに
Integerの要素をStringでキャスト、変換したり
Stringの要素をIntegerでキャスト、変換したら
エラー出るかな 面倒くさいんでInteger、Stringで統一してるんだが
勉強すればわかることだけどもしよければレスちょうだい
328:名前は開発中のものです。
06/05/27 11:38:38 EufEKVaf
それぞれIntegerとStringが対応してるんなら
class (名前)
{
public String getString();
public Integer getInteger();
}
みたいなクラスを作る
対応してないんだったら、String用のVectorとInteger用のVectorを別にする
329:名前は開発中のものです。
06/05/27 11:49:40 ryxQUfnb
キャストはかならずクラスの関連性がないと無理
かならず数字を含む文字列ということであれば格納前に返還すればいいだけの話だが
この情報だけではどうしたいのかがわからない
あとゲームということは多少パフォーマンス気にすることも多いのだろうから
Swing部分使わないのならVectorよりはArrayListで
シングルスレッドならパフォーマンスはまずかわらんけどな
330:名前は開発中のものです。
06/05/27 13:09:54 MsTUcez+
即&わざわざレス感謝
ArrayListの方がパフォーマンスいいのか・・・
大分Vector使ってコード組んじゃったから、今度からはそうしよう
RPGだからスレッドはマップのキャラ動かすのとアニメーションくらいしか使わないと思う
Vectorの指定された要素がIntegerかStringかで
変換、キャストしたのちifで分岐させて処理を分けたいと思ったんだけど
やっぱり元々のVectorを別にした方がわかりやすかった 対応してないし
話変わるけど、コマンドの実装が面倒だ・・
移動コマンド、アイテムコマンド、魔法コマンド、使用対象コマンド・・
それぞれにクラス作ってそのクラスのキーイベント処理メソッドを
現在のコマンドモードによって呼び分けなきゃならん
いい方法ないかな
331:名前は開発中のものです。
06/05/27 13:39:56 8ehQx4Ia
よくわからんがキーイベントにゴリゴリ書いてるのか?
それならフレームワークの設計自体からやりなおしたほうがいいぞ
332:名前は開発中のものです。
06/05/27 13:57:59 MsTUcez+
ゴリゴリ書いてる・・
とりあえず組んでみようとは思ったがマジで勉強が足りんらしい
チラ裏スマソでした
333:名前は開発中のものです。
06/05/27 14:12:56 8ehQx4Ia
キーイベントではキーの入力フラグを上げ下げするだけ
そしてゲームのループ内でそのフラグを読み取る
これでおけ
334:名前は開発中のものです。
06/05/27 14:23:34 MsTUcez+
ゲームループ内だとkeyTypedメソッドが呼ばれてから
時間差があるかもと思ってkeyTypedメソッドから
直接各コマンドクラスのメソッドを現在のコマンドモードで分岐させて呼んでた
ドラクエみたいなのを再現しようと思ってるんだがゲーム作りって難しいな
俺のゲーム作りが終わるまでJavaが生き残ってるといいんだけど・・
ここの住人はレベル高いね スレ汚しスマソでした
335:名前は開発中のものです。
06/05/27 14:52:54 8ehQx4Ia
ループ内は60fpsとか固定でチェックするから問題ないよ
というか、普通のゲームはイベントで処理するところはほとんどないから
それを隠すためのフレームワークというかそんなもの
まず言語的にJavaがどうのこうのというよりゲームプログラミングに対しての
技術がちょっと足りないかなぁという感じがする
10~20年前だったらゲーム作りとかいろんな本で毎月雑誌に載ってたんだけどな
いまじゃ残ってるプログラム雑誌がなくなってるし、ユーザーが求めるものが
高すぎてギャップで苦しんでる人が多いのはつらい時代だな
とにかくメインループで取得して状態に応じてswitchで戦闘時なのか移動時なのか
キャンプコマンド中なのか分離するようにかけばおけ
336:名前は開発中のものです。
06/05/27 17:41:03 MsTUcez+
ゲームの作り方か・・
一から設計見直すよ
マジで参考になった、ありがとう
337:名前は開発中のものです。
06/05/28 16:35:03 su6FTHmr
C++だとエフェクト(爆発とか)は加算合成を使うって書いてあるんですがJavaでも同じような方法で実装する手段ありますか?
338:名前は開発中のものです。
06/05/28 17:06:46 oT4lybEG
Java2Dには通常合成はあるが加算合成はない
自前で実装するかJOGLとかで3Dで描画するしかない
>>11とかのライブラリに単純な合成がある模様
339:名前は開発中のものです。
06/05/28 22:35:07 L8EQs44V
>316
ifをバイナリツリーみたいな構造にすれば
log2(100)の回数の比較だけで済むんじゃないか?
340:名前は開発中のものです。
06/05/30 19:56:51 AkbGbw5f
mpeg2のような差分圧縮形式のシーケンシャルアニメーションって負荷高いですか?
レイヤー可能でそれを実現できたらコンパクトになるなと思ったのですが
341:名前は開発中のものです。
06/05/30 21:02:41 bnvMLnBd
Javaの質問と関係ないな
効率がいい場合と効率が悪い場合があるっしょ
342:名前は開発中のものです。
06/05/30 22:16:22 AC7eOzy5
>>339
ポリモフィズムで解決という結論がとっくに出ていると思うのだが
343:名前は開発中のものです。
06/05/31 19:31:13 kqayNosp
みんなが配布物に同梱してるSPIってOGG Vorbisくらい?
これが便利ってのがあったら教えてください。
344:名前は開発中のものです。
06/05/31 22:06:19 H+lYwXra
だろうね
OggVorbisさえ再生できればだいたいこまらん
345:名前は開発中のものです。
06/06/01 20:01:54 oy8AdH4m
Javaのゲームライブラリ作成中。Flashの1/2くらいの表現力、生産性が目標。
まぁ皆も半月くらいでライブラリは作って、オーサリング環境作るのに挫折するんだろうけどね。
346:名前は開発中のものです。
06/06/01 23:16:05 mTuQuIix
普通に考えてFlashより表現力は上だし
生産性もFlashはスクリプトがおわっとるからまけないだろ
347:名前は開発中のものです。
06/06/01 23:24:39 IyLxQihX
実行環境の普及率と人々のイメージ
348:名前は開発中のものです。
06/06/02 02:24:25 IlXUhKKR
FLASHと比べるんだからブラウザ上で動かすんだよな
・MIDIや圧縮音声を再生する
・BGMと映像を確実に同期させる
・表示サイズを変更するとそこそこのクオリティで拡縮表示する
あたりが大変そうだ
349:名前は開発中のものです。
06/06/02 07:57:55 OCsBTCKI
・JavaSoundでmidiと圧縮音声は問題なく可能。すぐ上でOggの話が出てる。
・BGMとの同期はそうつくればいいだけ。
・拡大縮小時にアンチエイリアスをかけるかどうかの設定が可能。アルゴリズムも設定可能。
別に大変じゃないし
350:名前は開発中のものです。
06/06/02 21:25:12 cNNwG7w6
Flashは、例えばMovieClipの完成度の高さが大いに参考になる。
あれはComposite、Prototype、Flywightなどの
パターンの組み合わせがかなり洗練されててしかも使いやすい。
なんかFlash8.5からはさらに高度なAPIを持つらしいし
実装の研究をする教材としてはかなり好奇心がくすぐられる。
351:名前は開発中のものです。
06/06/05 07:16:50 voSd2aR7
JavaでノベルゲームとかRPGって作れますか?
352:名前は開発中のものです。
06/06/05 10:04:02 EcpAwWeS
macromediaはずっとデザイナー偏向で作ってきたけど
adobeとの合併で技術者向けのAPIも良くなってくと思う
でもFlashの対抗馬である事に関して、Sunは殆ど興味ないみたいだな
5年前のJavaに今の速度があればいい勝負になってたかもしれんのに
>>351
うん
353:名前は開発中のものです。
06/06/06 01:13:29 wO6xzgzA
>>351
余裕
>>352
Flashの代替はのぞんでないだろ
今はアプリと鯖メインでは?
ただJAX-WSとかGroupLayout標準装備があるんで
企業向けではアプレットやWEBStartが今でも多少使われているのが
今後さらに加速するかも
354:名前は開発中のものです。
06/06/06 23:16:48 /CfzneHU
個人的にはアプレットが一番好きだ
Webで公開して気軽に遊んでもらえるし
355:名前は開発中のものです。
06/06/06 23:20:22 wO6xzgzA
1.1時代のアプレットだとまともにうごかんしな
1.2以上だと別途セットアップが必要
1.2時代のJREなら今のブロードバンド時代なら問題は少ないのだが
5.0のサイズはすげぇ
1.4がかわいく見えるくらい
356:名前は開発中のものです。
06/06/07 21:23:04 IghNSOPk
今はJavaくらいふつうに入れてない?
メーカー製パソコンとかって入ってないの?
357:名前は開発中のものです。
06/06/07 21:41:53 4a3JF+Q3
まあJREも楽勝でインスコできるからな
358:名前は開発中のものです。
06/06/07 23:03:47 k1IxK3O2
>>356
バージョンは買ったときのマシンでばらばらだしそれを期待するのはちときつい
ゲームなら新しいバージョンになればどんどんよくなってるのが敏感にわかる
359:名前は開発中のものです。
06/06/14 15:09:12 LwkvhD3f
>>354
JavaWebStartも良くない?
あれ対応のゲーム出てくると使う側としては楽チンなんだが。見ないね。
360:名前は開発中のものです。
06/06/14 17:48:02 Kbfca28q
Javaで簡単なゲーム作るにはどれ位勉強すればいいですか?
361:名前は開発中のものです。
06/06/14 18:00:49 gnk1ZbZr
「簡単なゲーム」の定義と脳味噌の質によります
362:名前は開発中のものです。
06/06/14 18:55:46 oiUcwSTz
>>360
3じかん位かな?
363:名前は開発中のものです。
06/06/14 20:43:32 E7n+afyq
アプレットにしてもWebStartアプリケーションにしてもセキュリティの問題がつくからね
364:名前は開発中のものです。
06/06/14 21:01:18 KYL0jDeY
>>363に横から追加
Java Web Startってサーバー側にmime-typeの追加が必要だから、
レンタル鯖じゃ動かない可能性あり。
MIME-TYPE:application/x-java-jnlp-file
365:名前は開発中のものです。
06/06/15 13:30:54 tNRE7/uO
>>364
そこは連鎖場屋の中の人にMIME-TYPEの使いを頼めばなんとかなる予感。
366:名前は開発中のものです。
06/06/16 00:52:38 yygRlJ/S
apacheなら個人でもなんとかなるが、運用次第だな
367:名前は開発中のものです。
06/06/17 12:40:34 msfIS4LL
レンタルサーバーでJMSとか使えないかな
ApacheのActiveMQとかで低負荷のCGI代わりに使いたい
368:名前は開発中のものです。
06/06/17 13:13:35 Z2AWkk9k
1台丸ごと借りるならいけるけど
月1,2万かかるよ
369:名前は開発中のものです。
06/06/17 13:31:48 msfIS4LL
それだと完全にASP側に回ってるのと変わらないね
diceやtalkなどシンプルな機能をメッセージングできれば
使い方を決めるのは利用者側みたいなのイメージしてたんだが
370:名前は開発中のものです。
06/06/17 14:46:45 Z2AWkk9k
DBにしてもレンタル鯖のは使い物にならないのと同じ
371:名前は開発中のものです。
06/06/17 17:29:15 cZqcM90l
昨今のDIブームに乗ってアスペクト志向を取り入れようとして挫折気味
設計だけが楽しいみたいな状態に陥ってしまったw
372:名前は開発中のものです。
06/06/17 18:48:38 Z2AWkk9k
ゲーム開発でアスペクトが生きるかどうかはデバッグ時以外では微妙だが
DIはたぶん便利になる
俺も次のゲーム開発ではDIで開発するつもり
373:名前は開発中のものです。
06/06/17 23:46:12 2TpnxAFo
ゲーム開発でDIって例えばどんなの?
374:名前は開発中のものです。
06/06/17 23:58:20 kRFswYuv
例えば以下の内容を記述した設定ファイルを用意する
<resource id="hoge" path="rsrc/hoge.jpg" gen="org.hoge.SPIImageLoader"/>
んで
ImageLoader il = new ImageLoader(conf_path);
BufferedImage img = (BufferedImage)il.getImage(id);
これが基本形。こっからどうするかは腕次第。
375:名前は開発中のものです。
06/06/19 21:46:48 Zb7E8WNx
サウンドにフェード(イン/アウト)、パン(レフト/ライト)の加工をしたいのですが
ぐぐって見た限りではそれらしきところが見当たりませんでした。
これらは割りと基本的なものだと思っていたのですが、Javaにはない機能なのでしょうか?
376:名前は開発中のものです。
06/06/20 00:23:13 z0sECMlC
あります
377:名前は開発中のものです。
06/06/24 21:54:42 pcuzjDvS
フェードはFloatControlで出来ると思うけど、パンってどうすればできるの?
2スピーカーなら2スピーカー分のFloatControlが必要になるよね?
378:名前は開発中のものです。
06/06/24 22:08:59 pcuzjDvS
あ、そういうことか。自己解決orz
379:名前は開発中のものです。
06/06/25 14:38:34 fAOFmqJM
MIDIのSequencerでループさせようとしても
ループの開始時のgetTickPosition()が-2000とかなって余計な雑音が入る。
setLoopStartPoint(0)と設定しても効果なし。
現在はisRunning()でsleepはさむ方法でループさせているが気持ち悪い。
何かよい解決方法があれば教えてください。
380:名前は開発中のものです。
06/06/25 16:59:01 B6He1TJy
MIDIに送り出す部分を自分で作ってるの?
そうではなくMIDIファイルから単に流すだけならループ関係はどうしようもないよ
音源ドライバとか昔の8bit16bit時代ならいくらでも情報は手に入るから
そのへんさがすしかないかな
381:名前は開発中のものです。
06/06/25 20:25:58 US/w5wC7
Java2Dと違ってJavaSoundはちょい敷居が高めだね
ogg対応かつ簡単なエフェクトが掛けられるAudioClipが登場してほすぃ
標準で。
382:名前は開発中のものです。
06/06/25 20:36:42 AQjDLDTE
AudioClipは使い物にならないから今の実装だとoggが再生できてもいらね
383:名前は開発中のものです。
06/06/25 20:42:16 US/w5wC7
だからand条件つけてるやんw
384:名前は開発中のものです。
06/06/25 21:37:23 AQjDLDTE
エフェクトつけれたところでいらんだろ
あんなバッファサイズ最大制限が小さくオンメモリ必須なClipは
実装上の問題で音楽にも効果音にも使えないし
あとJava2DよりJavaSoundのほうが敷居は低いと思うよ
5.0以上ならだいぶ使いやすくなったJavaSoundにたいしていまだにアクセラレーションの聞く範囲がせまく
アルファブレンドもほとんど使えないJava2Dよりはね
385:名前は開発中のものです。
06/06/25 21:43:50 US/w5wC7
それは「敷居」とは関係ないのでは?
386:名前は開発中のものです。
06/06/25 22:12:46 AQjDLDTE
いやいや十分敷居は高いよ
ゲーム用と出ないのならさほど意識することはないのだろうが、
ソフトウェア転送になると目も当てられない
ム板ならともかくこの板ゲーム製作板だしね
387:名前は開発中のものです。
06/06/26 20:32:48 MgtqB2cg
アルファブレンドが敷居が高いとか馬鹿なこと言ってるし
そもそも敷居の意味がわかってないようだな
388:名前は開発中のものです。
06/06/26 23:48:06 6e6dhTU9
アルファブレンドじゃなくてアクセラレーションがきかない描画ってのが敷居が高い。
JavaSoundは非常にシンプル。DirectSoundやってたならすぐにわかるだろうさ。
ようは2Dの知識がない人がJava2Dを扱うのが大変と感じるか
Soundの知識がない人がJavaSoundを扱うのが大変と感じるかの違い。
まったく知識がない場合どちらも難しいだろうが、Java2Dのほうが範囲が広すぎて難しいと思われ。
JavaSoundのほうが難しいと感じるのならあなたは2Dの知識はそれなりにあって
Soundのほうが苦手ということだろう。
389:名前は開発中のものです。
06/06/27 00:34:52 VajeLVWc
所詮はビットマップなのに何が難しいんだか
390:名前は開発中のものです。
06/06/27 00:54:30 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 秒)
これで十分だろ、以降馬鹿レス禁止。
391:名前は開発中のものです。
06/06/27 10:22:35 GJGczP/s
検索結果が多いということはわからないからネタにしているのかその逆なのか判断は難しいな
あとJava2Dはピクセル単位での処理だけじゃないから割と面倒だよ
392:名前は開発中のものです。
06/07/09 17:44:21 O0aQTArO
今日書店寄ってきたが、3冊あったJavaゲーム本で
JavaSoundに触れていた本は0冊だったw
Javaでゲームなんて作ってんじゃねーよって感じなのだろうか
393:名前は開発中のものです。
06/07/10 14:41:59 7etPnpyv
まず、MIDIが使えない。
JavaのMIDIデバイスは古いバージョンのままで、多くのファイルが
正常に演奏できない。音が変になる。
OSのMIDIデバイスを取得して、その出力ポートに切り替えるメソッドは
どうやら中身が実装されておらず、事実上切り替えられない。
Waveは正常に演奏できるけど、そのショートカットであるAudioClipは、
短い曲だと何故かloopでしか演奏できない。さらに幾つインスタンスを作っても、
同じファイルデータだと勝手に一つのWaveハンドルに一本化してしまう様で、
同じWaveを複数同時に演奏できない。
陳腐な批評になるが、SUNのAPIは設計は最高なんだけど実装が・・・・
394:名前は開発中のものです。
06/07/10 21:24:37 ykWXL1Xc
>>392
ゲーム本じゃないけど
これの最後の章あたり、ちょこっとSound APIに触れてた
ま、これだけのために買うのはもったいないが・・・
URLリンク(www.oreilly.co.jp)
あと俺の知ってるのは
JavaWorld 2001年10月号、2004年5月号
Cmagagine 2002年8月号と9月号
にちょろっと載ってた
javax.sound.sampledパッケージ使って
複数の音声を同時に再生とかやってた
395:名前は開発中のものです。
06/07/12 00:08:04 ndOxEXf9
>393
Java 5.0あたりでは多くのMIDI問題は修正されているんじゃないの?
396:名前は開発中のものです。
06/07/12 00:31:43 6aHYcbBn
MIDIで音が変になるか?
AudioClipはまともな実装にしてほしいのは同意
結局自分でソースライン書くしかないからね
せめてバッファ長とか指定できねーのかな
それでもDirectSoundくらべてかなり楽なのはいいけどね
JavaSoundは本読むより実際にいじってみるほうが早いよ
難しくはないし、5.0以降でかなり楽になってる
ただ、JavaSoundDemoが5.0で動かないとかがあふぉすぎ
397:名前は開発中のものです。
06/07/21 19:29:07 rgZqd6WV
>MIDIで音が変
サウンドバンクのせいじゃね?
つURLリンク(www.new-arrow.com)
398:名前は開発中のものです。
06/08/05 23:05:31 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
399:名前は開発中のものです。
06/08/06 01:44:54 kmAOB+5B
jwsのdemoみてみたけどfps表示されないね
昔見たような気がしたけど
400:名前は開発中のものです。
06/08/06 02:36:29 A5aINFFL
>>399
jwsのdemoにあるGaresはGLCanvas(AWT)使用の物です。
JRefractを起動してGaersを呼び出すか、
jogl-demos.jarを落としてJGaersを実行するかすれば、
fps表示有りのGaers(GLJPanel swing使用)が起動します。
401:名前は開発中のものです。
06/08/06 16:06:10 kmAOB+5B
さんきゅ
JOGLなんて久しく触れてなかったから忘れてたよ
結果からいうとTransparentのチェックいれるとCPUパワー使い切って描画サイズ大きくすると
35fps前後まで下がるけど、これはずすとサイズに関係なく40fpsでCPU使用率は低い
自動リフレッシュはMAXが40fpsなのかな
ウインドウを動かすとfpsが上がって滑らかになるところを考えるとたぶん余力はある・・・のか
描画をすべておぺnGLでやってる場合はアクセラレーションがきいていると考えてよさそうだ
ソース読んでないけど
402:名前は開発中のものです。
06/08/06 17:49:22 A5aINFFL
>>401
うちの環境(>>398)だと初期の描画サイズで35fps…
Transparentのチェックに関係なく、大きくしたらそれだけfpsが下がる。
やっぱオンボードビデオが貧弱かw
GLCanvasの方使っときます。
403:名前は開発中のものです。
06/08/06 19:47:19 kmAOB+5B
FPS指定のアニメータつかった?
確か今は新機能としてあったはず
あとCPU使用率もみたほうがいい
OpenGLもJ2SE5.0のOpenGLアクセラレーションのようにまともに実装されてないのかもね
あっちは描画もおかしくなるから最悪だけど、nVidiaとATI以外はOpenGLが動く環境であっても
はねられるというすばらしい実装
結局Win32環境でDirectXアクセラレーション使うしかまともな回答がない
オンボードでも845GあたりからOpenGLはまともに動くようになってきたのにねぇ
404:名前は開発中のものです。
06/08/06 20:21:45 A5aINFFL
>>403
CPU使用率はPentium4 3GHz(HTオン)で論理CPU一つがほぼ100%に…
GLCanvas使うと殆どCPU使わない
405:名前は開発中のものです。
06/08/07 11:33:48 LXzNSWyz
今2Dアクション作ってるんだが
やっぱりグラフィック描画はJava2D使ったほうがいいのかな?
今のところpaintCompornent使って描いてて
そこまで不満はないんだが
406:名前は開発中のものです。
06/08/08 00:49:52 NGJuOaT6
paintComponentはJava2D使って描画してるわけだが・・・
407:名前は開発中のものです。
06/08/08 19:44:58 OxD/Wpxu
ああ、スマン
Graphics2Dを使わないで描画してるって意味
408:名前は開発中のものです。
06/08/09 01:40:46 jTOF7SJj
Graphicsだけつかっていても実態はGraphics2Dだぞ
BufferStrategyではなくて?
409:名前は開発中のものです。
06/10/05 02:14:46 6n2qO2al
java初心者ですが、質問に答えてもらえませんか?
for文を使うときに何か制限はありませんか?
キャンバスクラスでfor を使うとエラーが出てきてしまって困っています。
410:名前は開発中のものです。
06/10/05 02:23:59 nS6lvpAp
そんなのありえん
まずエラーは何なのか、どこでおきてるのか
あとCanvasはいまはほとんどつかわん
411:名前は開発中のものです。
06/10/05 02:26:18 UlwDPe/+
柄フレーム付きでBufferStrategyを使うときくらいか。
412:名前は開発中のものです。
06/10/05 14:34:39 6n2qO2al
URLリンク(gamdev.org)
15パズルを作ろうとしているんですが・・・
型の開始が不正と言われるんです・・・。
413:名前は開発中のものです。
06/10/05 17:15:27 JxBA5zKz
>>412
Canvasクラスじゃなくてもエラーになって当たり前
メソッドの中に書け
414:名前は開発中のものです。
06/10/05 23:15:13 6n2qO2al
今度はfor文に使う変数の型が不正と出てしまいました。
int型ではだめなのでしょうか?
415:名前は開発中のものです。
06/10/05 23:37:11 3erpkvWT
その部分のソースがないとなんとも
416:名前は開発中のものです。
06/10/05 23:38:34 UlwDPe/+
import見て、「ああ、MEね。独特な癖でもあるのかなぁ」とか思ってたら
クラスの内側を見た瞬間全てを理解した。
まずJavaの入門サイトを回ろう。質問はその後。OK?
417:名前は開発中のものです。
06/10/05 23:50:20 6n2qO2al
分かりました。サイトめぐりしてきます。
418:名前は開発中のものです。
06/10/06 00:37:07 n8QeDfZX
Eclipseでカーリングゲーム作ってるんですがパワーメーターなどを組み込むのに手間取っています。
なにかオススメの参考書を教えてください。よろしくお願いします
419:名前は開発中のものです。
06/10/06 03:47:35 RxJHFhg5
まずそれはEclipseであるかどうかが関係するアプリなのかとききたい?
420:名前は開発中のものです。
06/10/06 08:35:03 79ZjkJYk
swtつかってんの?
421:名前は開発中のものです。
06/10/06 17:15:07 NF0Fi7f7
失礼しました。書き方が悪かったです
これから一から作りたいのでそれに見合う参考書を教えていただけませんか?
できればゴルフかビリヤードのサンプルが載っている参考書がいいのですが・・・
よろしくお願いします
422:名前は開発中のものです。
06/10/06 17:22:32 VIIycFpg
システムをどうしたいの?
システムがわかってるならそのまま作るだけだと思うが
423:421
06/10/06 22:59:44 Mdom56kE
システムというとゲームの設定とかのことでしょうか?
ゲームを作るのは初めてなのでこんな感じにしたいっていうのはあるのですが
技術がないので、自分のイメージに感じが似てるゴルフかビリヤードのサンプル見ながら、
少しづつ作ろうかなと思って質問しました。
424:名前は開発中のものです。
06/10/06 23:08:13 DivPy0FS
>>423
URLリンク(javagame.main.jp)
このへんで一通り勉強すれば
ゲームなんて基本はどれも大体一緒だよ
はじめから目当てのものを作ろうと思わない方がいい
425:名前は開発中のものです。
06/10/07 01:11:11 BYxdR2eO
ゲーム自体がはじめてだったのか
まずはループ処理や入力まわり、描画、サウンドなどを一通り勉強しよう
Javaに限った話じゃないがね、これらの機能を使った最低限の動く単純なゲームを作るといい
426:名前は開発中のものです。
06/10/07 01:17:47 BYxdR2eO
ゲーム開発で何度か相談されたことがあるが、
ゲーム開発初心者なのに最初からでかいゲーム作ろうとするやつ多いよな
規模が大きくなってもメモリ節約しなくてもインタプリタで余裕でさばけるマシンが手に入るようになったのはいいが
サンプルプログラムとかも下手に大きくなりがちで役に立たないという感じ
昔は雑誌でコードがのるくらいだからあまり大きいのはのりにくいし、把握がしやすかった
1画面プログラムとかはテク満載で逆に覚えるのには向かなかったがね
ベーマガとかM・ファンとかOh!シリーズとかほんの10年前は毎月雑誌で
数十本のゲームのコードが入手できたってのはよい時代だったのかな
いまじゃハードとか違法関係ばかりで真っ当なソフト雑誌が残ってねぇ
危険すぎ
427:名前は開発中のものです。
06/10/07 01:50:40 xRS6QFs/
プログラミングの話をいまさら紙の上でやっても利点は皆無だから
白黒だし検索できないしコピペできないリンクもない
428:名前は開発中のものです。
06/10/07 01:54:11 BYxdR2eO
だがまったく資料がない現状よりましでは?
ネットでまとまった資料やたくさんのコードはでてこねーし
ようはゲーム開発の基礎ってすでに20年位前からある基礎なわけで
いまさらネットでまとめようと思う人はまずいない
429:名前は開発中のものです。
06/10/08 00:52:26 S1BiNozn
RMIはEJBだけで埋もれさせてはいけない低級APIな気がしてきた。
430:名前は開発中のものです。
06/10/08 01:36:32 +r9TQj6u
RMIはJava2SE5.0からは大幅に改善されたので普通に価値があると思うぞ
431:名前は開発中のものです。
06/10/08 03:06:24 CumxyfUX
RMIよくしらないんだが、ゲームでつかうとしたらたとえばどんな例があるの?
リアルタイムなものでもつかえそう?
MMORPGみたいのものはどうなんかな?
432:名前は開発中のものです。
06/10/08 12:24:12 +r9TQj6u
おもいっきりはしょるとソケット通信の高級APIみたいなもんだから場合によるとしかいえん
UDP使いまくらないといけない用途には使えないね
人数や設計しだいではMMORPGでも使えるかと
RMIは引数をシリアライズしてリモートのメソッドを起動、戻り値をシリアライズすることができる
もちろんコードはクライアントのコードとまったく同じでいける点が違う
その特定のメソッドが実行される場所がサーバーってだけ
オンラインゲームってローカルで計算される部分は少なく、入力を鯖に送って
結果を表示するだけのシステムだから設計だけしっかりしていればそんなに難しくはないかと
433:名前は開発中のものです。
06/10/08 17:25:06 S1BiNozn
カードゲームとかターン制のゲームには向いてると思うんだ。
ただホストをプレイヤーのどちらかが行うとなると性善説ゲームになるけどね。
434:名前は開発中のものです。
06/10/08 23:44:58 vqXTr2Px
Google Web Toolkit (GWT)を使ってJavaで、
Ajaxなブラウザゲームを作成している人はおらんかね。。。
435:名前は開発中のものです。
06/10/09 02:01:24 1PRT+gpJ
RMIはJavaの目玉である事実に間違いはないが、シビアなリアルタイムが
必要となるオンラインゲームに使う様なものじゃない。
重すぎる。
436:名前は開発中のものです。
06/10/09 03:22:04 +490gA4h
オンラインゲームだからすべてシビアなタイミングとは限らん
437:名前は開発中のものです。
06/10/09 18:17:01 wlsw1WDR
東風荘とかみてりゃ、まあそりゃそうだ
438:名前は開発中のものです。
06/10/10 11:31:47 aHfYBwCV
実際RMI使ったオンラインゲームとかあるの?
439:名前は開発中のものです。
06/10/10 13:08:42 COB1kkz5
その前にJavaがフロントエンドのゲームなんてあるの?といったほうが早いのでは
RMIは自前でプロトコル作るよりは重いけどWEBサービスに比べたらめちゃくちゃ早い
開発の容易さはRMIのほうが上
440:名前は開発中のものです。
06/10/10 19:14:44 Z6Vg5wVI
ぶっちゃけCGIより早ければ十分でしょ。
441:名前は開発中のものです。
06/10/10 19:44:19 Z6Vg5wVI
疑問なんだが第三者サーバを通さずに
ランダム性のあるゲームを公正に運用することって可能?
442:名前は開発中のものです。
06/10/10 20:52:02 Fmr3/ROI
両方のクラで同処理を行って結果に差異がないか互いにチェックするとか?
443:名前は開発中のものです。
06/10/10 21:10:32 Z6Vg5wVI
自分で言っといてなんだけど、公開鍵の応用でいいんだよね。
1.互いに乱数のハッシュを送りあう
2.乱数の実体とあるならば追加のコマンドを送りあう
3.実体とハッシュを照合する
4.互いの実体を合算したものを元に処理を進める
多少重そうだけどこれなら実際に通信があるのは1と2の送受信でよい。
でもまあランキング戦とかには使えないよなぁ。
444:初歩的なことでスマン
06/10/12 20:16:43 iUCUCn7d
j2sdkとJava3Dを入れてみたんだけど
3d絡みのDemoプログラムが無いっぽい。
ググってみたけど付いてきてるはずなんだけどなー
j2sdk下にはwireframeのサンプルプログラムしかないし
それとも他に入れるべきソフトがあるのかしら
少なくともjava3d-1_4_0_01-windows-i586.exeには入ってないですか?