トップページ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あたりを参照
0173名前は開発中のものです。2005/12/24(土) 16:31:00ID:Al8Kj3xL
>>172
> 既に表示されてた行が上にずれて1番上の行が消えるとか
Clipが神だと分かったあの日の夜
0174名前は開発中のものです。2005/12/24(土) 16:37:56ID:gnp/5lgI
それ文字列をスクロールさせるのではなくて
BufferedImageで文字列のバッファ用意して毎フレームブリットしたほうが楽
0175名前は開発中のものです。2005/12/26(月) 08:43:49ID:zSwx4yvQ
>>174
勉強になります
dd
0176名前は開発中のものです。2006/01/07(土) 15:15:38ID:EFX7v943
Javaでタスクシステムって作れる?
0177名前は開発中のものです。2006/01/07(土) 18:00:27ID:yOZ6b1cq
オブジェクト指向なんだから普通はポルモルフィズム(多態性)でOK
0178名前は開発中のものです。2006/01/15(日) 10:23:57ID:53jl8YVS
SWTのImageとGCをつかってスプライトを描画しているんですが、
左右反転、上下反転をする際に、
setTransform(...)
で、trans.scale(-1,1);
などとすると複数のスプライトを描く際に実用に耐えられないくらい重いです。
AWTのdrawImageみたいに、それだけで左右、上下反転できないのでしょうか?
srcX,destXを反転させれば良かったAWTにたいし、
SWTだとwith,height指定なので引数に負数を渡すと実行時エラーになってしまい、それだけではできないようにみえます。
ご存じの方、おられましたら宜しくお願いいたします。
0179名前は開発中のものです。2006/01/15(日) 11:12:29ID:aMKMqoWr
SWTはEclipse以外では使わないこと
が正しいと思う

PureJavaのほうがまともな実装ってどういうことさ
って場面がよくある
0180名前は開発中のものです。2006/01/15(日) 20:09:28ID:Vrds102b
SwingでJava2D使おうぜ
01811782006/01/15(日) 22:49:28ID:53jl8YVS
>>178,>>179
なるほど、ありがとうございます。
SWTをつかってアニメーションエディタとゲーム自体を一緒に作っていたのですが、
考え直した方が良いみたいですね。
0182名前は開発中のものです。2006/01/15(日) 22:52:15ID:53jl8YVS
う、間違えました。
>>180
Swingの方がやはりいいんですね。SWT自体は割と扱いやすいとは感じているのですが、
最近は情報も出てこず考え直したりもしています。
SWTを使うと局所的なところでWin32APIなどを呼べるのも魅力なのですが。
思想には反しますけれど。
0183名前は開発中のものです。2006/01/16(月) 00:14:43ID:DTLttG/1
PureJavaとはいえJava2DってDirectX使われてるの知ってる?
情報量は多いしものによっては速度面でも結構いける

1フレームあたり1000個のスプライトとか余裕
0184名前は開発中のものです。2006/01/17(火) 03:10:21ID:9917DXoA
JAVAでカードゲームを作ろうと思っているのですが、
某サイトに開発ツールJAVA2 SDK 1.3と書いてあるのですが、
このスレのテンプレには(Ver5.0のJDKとVer1.4.2) しかなく
どれをDLすればいいのか分かりません
どなたか教えてもらえないでしょうか?
0185名前は開発中のものです。2006/01/17(火) 06:08:31ID:Om3jnpEH
>>184
ハァ?
質問の意味が読めん
0186名前は開発中のものです。2006/01/17(火) 06:37:28ID:1vDzG9rV
>184-185
エスパーちからを発揮してみると、参考にしようと思ったサイトが
1.3だったので、1.3が良いと思ったのではなかろうかと。
1.4か5.0でやってみたら?ほとんどの場合、動くと思うよ。>184
0187名前は開発中のものです。2006/01/17(火) 14:12:13ID:jNVA85J7
>>185-186
日本語がおかしくてすみません
参考にしようと思ってるサイトでは1.3と書いていて
1.3を探したけど、1.4か5.0しかなくて困ってます。
それから1.4と5.0の違いが分からなくて
どっちをDLしていいのか分かりません
違いを教えてもらえないでしょうか?
ちなみにiアプリのゲームを作ろうと思ってます
0188名前は開発中のものです。2006/01/17(火) 14:22:08ID:4NyPfQ7d
ここではJava2SEの話題がメインなので
J2MEの話題はプログラム技術板に専用スレがあったと思うのでそちらのほうがいいかと。

そして動作保障している1.3を使うのが吉。
互換性は細かいタイミングが必要なところではチューニングすればするほど問題が出やすいし。

J2MEといってもiアプリは独自の層があついのでいわゆるJavaという豊富な標準API
を使って開発するという感じはないと思われ。
0189名前は開発中のものです。2006/01/17(火) 17:16:07ID:jNVA85J7
おお!?
そうなのですか
全然知りませんでした^^:
すみませんでした
そっちに行きます
0190名前は開発中のものです。2006/01/18(水) 06:35:27ID:kAS6/zeP
すみませんCPad for Javaについて質問です

CPad for Java 2.31
にてAntが使えるというので、以下のページのやり方で設定してみました
ttp://javacafebreak.tripod.com/document/cpad_tips/cpad_ant.html

このページには「CPadで、Antを実行するには、『F6』キーを押すか、メインメニューの『実行』→『Ant』を選択します」
とかかれているのですが、『F6』キーを押しても何も起こらないし、
「メインメニューの『実行』→『Ant』」などというメニュ項目も見当たりません

CPadで、Antを実行して、さらにエラーメッセージをCPad上のメッセージウィンドウで表示させている人たちは
どうやっているんでしょう
(DOS窓でAntの実行を単独実行するやり方はわかっているのですが、それだとCPadのメッセージウィンドウに表示できないので不便なんです)
環境はWindows2000 JDK1.5.0_06 です
0191名前は開発中のものです。2006/01/18(水) 10:53:20ID:c2N1wZsa
もしかして普通のJavaスレと勘違いしてる?
0192名前は開発中のものです。2006/01/23(月) 17:40:02ID:kW9KAIGh
サーブレットとかJSPでゲームを作るのは無理ですか?
0193名前は開発中のものです。2006/01/23(月) 17:48:15ID:yJIlIQCh
WEBアプリのゲームはあるから無理ではないけど
別にたいした仕組みが必要になるわけでもないと思われ
0194名前は開発中のものです。2006/01/23(月) 22:17:38ID:/EcVc25a
シューティングでインタープリターをつくろうと思ったのですが
文法をどうやって決めればいいのか、どう実行させればいいのか
いまいち想像できません。
敵の出現まではできそうですが、敵の弾の設定(どんな弾を、いつだすか)を
インタープリターでどう表現したらいいのでしょうか?
0195名前は開発中のものです。2006/01/23(月) 22:27:55ID:I0QlWZ4d
>>192
WEBブラウザで行うCGIゲームライクなものなら当然可能。
というか、漏れ自身が現在進行形で作成中。
0196名前は開発中のものです。2006/01/23(月) 22:46:33ID:tL3TpBsR
>>194
なんか設計に悩んでるっぽいことはわかった。
その調子でがんばれ。
0197名前は開発中のものです。2006/01/23(月) 22:49:50ID:yJIlIQCh
>>194
まずは敵のクラス内で処理してみれば?
それを外に出したほうがいいか、ださないほうがいいかは案件しだい
0198名前は開発中のものです。2006/01/24(火) 14:41:32ID:vo2dZIRF
インタープリターよりも簡単なコードジェネレータの方がいいんじゃない?
0199名前は開発中のものです。2006/01/26(木) 15:59:14ID: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();
}
0200名前は開発中のものです。2006/01/26(木) 16:52:43ID:ITPJnSj3
>>199
まず根本的なことからなおしましょう

キーのイベントで処理は入れないように

メインループでのみ処理するようにしてください
イベントではフラグの上げ下げのみで
02011992006/01/26(木) 23:31:16ID:Pd3Qgsdn
>>200
サンクス。できるようになりました。
0202まほろば ◆BmUbLWewsM 2006/01/28(土) 18:36:32ID:K+4gOIY6
いやーこのスレは役にたつなー。。
ところで、classファイルからソースコードを盗まれないようにするにはどうしたらいいんでしょ。。
0203名前は開発中のものです。2006/01/28(土) 18:42:43ID:u3ZzJuZS
正直それはあきらめろ

クラスローダ自作したところで実行中のメモリのぞかれれば意味なし
nproではじくとかやると誰も使うやつはいなくなるぞ

ネイティブバイナリでもコンパイラの癖とあたりつければそれなりに追えるんだし・・・とわりきれ
その分開発効率がいいんだからガンガンものづくりに専念しなさいといいたい

オンラインゲーなら毎日こまめにクラスを再配布していれば大丈夫かと
0204まほろば ◆BmUbLWewsM 2006/01/28(土) 21:29:17ID:K+4gOIY6
>>203
実行中のメモリのぞかれれば意味なし
そんな事出きるの?ソースは?
やろうと思えばできるとか妄想でつか?
0205名前は開発中のものです。2006/01/28(土) 21:37:25ID:EnQtmKxX
>>204
メモリ覗くだけならWindows上で実行しちゃえば簡単だろうけど、
手軽に解析って話は俺も聞いたこと無いな。

うちの会社はDashOとかいうバカ高い難読化ツールを買った。
そんな必要無ぇって主張は通らなかった。
0206名前は開発中のものです。2006/01/28(土) 22:44:25ID:PUcSGIMg
読みやすくしてくれるツールはありませんか。
0207名前は開発中のものです。2006/01/28(土) 23:06:37ID:u3ZzJuZS
>>204
多少は調べろ
クラスロードした後はざる
0208まほろば ◆BmUbLWewsM 2006/01/28(土) 23:57:58ID:K+4gOIY6
>>207
0209名前は開発中のものです。2006/01/29(日) 01:11:24ID:1KG7yFUT
結局いいスレだったのをコテハンが壊したってことか。
0210名前は開発中のものです。2006/01/29(日) 02:35:06ID:PecoYXTp
もう大学生は春休みか……
いいご身分だなぁ。
0211名前は開発中のものです。2006/01/29(日) 12:34:08ID:FRX/ORuz
低脳だから卒業後ニート行きで
さらに良いご身分だな
0212まほろば ◆BmUbLWewsM 2006/01/29(日) 13:24:43ID:LX0lKjST
まったくだなww
0213名前は開発中のものです。2006/01/29(日) 17:14:26ID:zbiz4Pm/
GraphicsクラスのdrawImageで浮動小数点数を使う方法って何かない?
ゲームのキャラクターを表示させるためにはint型では精度が悪いんで。
0214まほろば ◆BmUbLWewsM 2006/01/29(日) 17:28:00ID:LX0lKjST
ないよ。javadoc見りゃ分かるじゃん。。
0215名前は開発中のものです。2006/01/29(日) 17:45:07ID:ec+1eYbr
>>213
そういうときは大きいバッファを持つことで回避する
320*240の画像を0.5単位で扱いたいときは640*480とかね

drawRenderedImageとかtranslateを使う方法もあるが
用途がゲームなら使わないほうがすっきりしていいと思われ
0216名前は開発中のものです。2006/01/29(日) 17:57:12ID: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 で処理するのが現実的だと思う。
0217名前は開発中のものです。2006/01/29(日) 21:48:41ID:qPM3IQVC
正男ってjava?
0218名前は開発中のものです。2006/02/01(水) 20:44:05ID:W1eX6IZO
Javaアプレットでしょ
0219名前は開発中のものです。2006/02/05(日) 00:25:12ID: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()が呼ばれるにはどう修正すればよいでしょうか。
0220名前は開発中のものです。2006/02/05(日) 00:52:34ID:NFbwVJ0F
フルスクリーン使ってるならSwingのイベントモデルにはこだわらないのが普通
BufferStrategyってのをしらべてごらん

ようは好きなタイミングで描画が出来るのだ
0221名前は開発中のものです。2006/02/05(日) 01:21:52ID:LCSDYznu
ありがとうございます。
やっぱそれですか。そうかもと思って実装始めたらできました。
frame.createBufferStrategy(2);
とやってpaintComponent(g)をdraw(g)にかえて
BufferStrategy strategy = window.getBufferStrategy();
Graphics g = strategy.getDrawGraphics();
draw(g);
g.dispose();
でうまく描画できました。
02222192006/02/05(日) 01:30:28ID:LCSDYznu
もう一つあるのでアドバイスいただけるとうれしいです。

Window window = device.getFullScreenWindow();
window.add(JPanelオブジェクト);

とやってフルスクリーン上にパネルを置いています。
こうするとパネルがちらついてしまうのですが対策はあるでしょうか。
0223名前は開発中のものです。2006/02/05(日) 01:52:48ID:8ByMu9YS
まずパネルをおく必要はない
ウインドウ全体を使って描画してるから
02242192006/02/05(日) 09:38:19ID:LCSDYznu
コマンド選択パネルみたいに使っているんですが。

フルスクリーン上でスペース押すと右上にパネルが表示されます。
KeyboardListenerを実装してるのでキー入力はそのパネルが奪い
パネルを消すともとのフルスクリーン上にキー入力がいくという感じです。
パネルじゃなくてCanvasでもいいんですがどうもちらつきます・・・

パネルで何も描画しなくてもちらつくということはフルスクリーンにしてる
JFrame上にコンテナは置いちゃだめということでしょうか。
0225名前は開発中のものです。2006/02/05(日) 12:29:26ID:8ByMu9YS
おいてはいけないということはないが、BufferStrategyはつかえんぞ
02262192006/02/05(日) 13:00:29ID:LCSDYznu
そうですか・・・ボタンやらも全部だめだったのでBufferStrategyの描画領域にコンポーネントは配置してもちらついてしまうみたいですね。
あきらめてパネル風のウィンドウを描画することにします。
0227名前は開発中のものです。2006/02/05(日) 13:25:23ID:8ByMu9YS
ゲーム目的ならコンポーネントの描画は避けるべきだな
すべて自前で描画しないとリフレッシュとかのタイミングがコントロールできん
0228名前は開発中のものです。2006/02/05(日) 14:37:09ID:15xceU0H
便乗だけど、フルスクリーンで文字の入力はどうすればいいの?
英語だけなら楽勝かもしれないけど、漢字変換とかどうすればいいのかさぱーり。
以前コンポーネント埋め込んだら酷いことになって諦めてた
0229名前は開発中のものです。2006/02/05(日) 14:40:46ID:LCSDYznu
MMORPGの市販ゲームとかできてるからやり方あるんだろうけど。Javaだとどうなるんだろ。自分も知りたい。
0230名前は開発中のものです。2006/02/05(日) 15:23:24ID:8ByMu9YS
MMORPGの場合フルスクリーンでもただすべての画面を占有するだけ
といった作りかたしてると思われ

JavaでやろうとするならBufferStrategyをあきらめるほうがいいだろうね
JPanelに画面部分を描画、paintComponentでバックバッファから自前で転送
0231名前は開発中のものです。2006/02/05(日) 17:31:23ID:XoC15JKP

LWJGLやJOGLで日本語文字を画面に表示するにはどうしたらいいんでしょうか。
LWJGLにAWTGLCanvasっていうのがあって、これを使えばできそうなんですが、
サンプルがなく使い方がいまいち分かりません。

みんなはどうやっているんだろう。

以前Graphics2Dでゲーム作ろうと思ったけど、アルファブレンド処理がソフトウェア描画に
なったので、LWJGLに移ったんですが。

うううーーーん
0232名前は開発中のものです。2006/02/05(日) 17:43:24ID:8ByMu9YS
基本はDirectDrawだからな
一応オプションでDirect3Dで動作させればアルファブレンドもハードウェアになるが
レンダリング品質の問題とか通常一番使うブリットが遅いとかJava2Dベースでは
通常合成しか出来ないとかが問題になるからな

LWJGLはまったくさわったことがないのでわからん
JOGLはOpenGLそのままだね
俺が触ったときはSDLとのリンクが未実装だったので対象には上がらなかったが

Java3Dは高級すぎてゲーム用途にはまったく使えないという感じだった
速度がまったくでないことやピクセル単位の処理という感じではなかった

ただ、軽く触っただけなのでなんともいえない
2Dゲームならソフトウェアによるアルファブレンドが問題になるほど遅い場面は少ないとは思う
0233名前は開発中のものです。2006/02/05(日) 19:35:20ID:XoC15JKP

>>232

640x480の画面に32x32のマップをひきつめただけですでに40FPSだったんですよね
Graphics2D。。。

やっぱりC++の方がゲーム開発はいいのかなぁ・・・
開発効率はJavaの方がはるかにいいんですけどね

何かJOGLやLWJGLに近い速度がでるゲーム用ライブラリって
ないんでしょうか

0234名前は開発中のものです。2006/02/05(日) 19:44:36ID:8ByMu9YS
アルファブレンドでしきつめたらそれくらいにはなりそうだが
通常転送ならそこまで遅くなることはあるまい

使い方がおかしいかと
0235名前は開発中のものです。2006/02/05(日) 19:48:54ID:XoC15JKP

>>234

アルファブレンドで描画したときです。
正直なきたくなりました。
同様の処理でDirectXの場合は余裕を持たせてもFPS500ぐらいでした。
0236名前は開発中のものです。2006/02/05(日) 20:03:06ID:8ByMu9YS
デフォはDirectDrawベースだから当たり前
PureJavaベースのゲームなら少し前のコンシューマの2Dベースにしておくべき

アルファブレンドが多い場合は自前のエンジンを使ったほうがいい
Java2Dのアルファブレンドは機能が多すぎて高級すぎる
回転とかも同様

あとメモリアクセスを減らすために解像度を下げるとか
今後を考えてレンダリングエンジンはマルチコアに対応させる

現状を考えると320*240-16bppが2DでJavaでの安定動作の限界だと思うよ
それを2倍拡大して描画するのがベストか

Sunはデスクトップ部分に5.0は力を入れるといいつつ
1.4.2とほとんど変わらなかった前科があるから6にも期待薄だな
0237名前は開発中のものです。2006/02/05(日) 20:25:57ID:15xceU0H
-serverを指定するだけ多少は速くなるし、メモリ次第かなぁ
0238名前は開発中のものです。2006/02/05(日) 21:05:19ID:8ByMu9YS
serverはゲームではオススメしない
強度の最適化のために滑らかに動かない
0239名前は開発中のものです。2006/03/01(水) 00:33:42ID:LBMCdldE
BufferStrategyとpaintComponentを切り替えられるようにすれば
RPGツクールでキーボード名前入力を可能にした感じのゲームも可能なのかな。
でもそんなことしてたらMMORPGなんて作れない気もする。
-serverの件もそうだけど、なんかもどかしい
0240名前は開発中のものです。2006/03/01(水) 00:53:30ID:iPnrcY6D
一応BufferStrategyはCanvasでも使える
AWTなのであまり込み入った使い方しないように
0241名前は開発中のものです。2006/03/01(水) 01:34:48ID:LBMCdldE
おお、ホントだ。BufferStrategyは埋め込み可能だったのか。
ゲーム画面上に透明チャット窓とかしようとするのも可能そうだね。
BufferStrategyならAWTとSwingの差分なんてあってないようなものだろうし。
ちょっと希望が湧いてきました。
0242名前は開発中のものです。2006/03/01(水) 02:35:02ID:LBMCdldE
5.0からAWTにZOrderが追加される。かゆいところに手が届いてら。
0243名前は開発中のものです。2006/03/04(土) 19:59:23ID:+Bxv4duP
Swingでrepaintをした場合ってイベントキューで処理されるの?
Timerのタイミングできちんと描画スレッドに渡せますか?
0244名前は開発中のものです。2006/03/04(土) 23:22:41ID:EEF7QBKs
何を言いたいのかわからんがSwingは普通のSUIのイベント処理だぞ

リペイントわたしてもリペイント範囲のaddされるだけ

連続でrepaint複数渡しても1回しかリペイントされないとかよくあること

これはSwingに限ったことではない
Windowシステムは全部そう

だからTimerでrepaintわたしたからすぐに描画されるわけではない

正確なタイミングでやるならAWTイベントでのリペイントは辞めるべき
BufferStrategyを使うのが正しい
これは内部でDirectXとか使われてるイベントモデルではなく、いわゆる直書きだ
0245名前は開発中のものです。2006/03/05(日) 13:59:16ID:R322THrX
>>244 どうもです。
FPS管理するからrepaintのままでやります。
描画に失敗したら致命的というわけでもありませんし。
0246名前は開発中のものです。2006/03/05(日) 14:46:49ID:o20ilzio
FPS管理って普通にみんなBufferStrategyでしてると思うぞ
なんか勘違いしてないか?
0247名前は開発中のものです。2006/03/05(日) 15:12:44ID:R322THrX
いやJComponentもバリバリ使いたいので。
0248名前は開発中のものです。2006/03/05(日) 16:46:58ID:o20ilzio
Swingコンポーネントベースのゲームってめずらしいな
ダブルバッファリングをライブラリに任せるのは割ときついからな
0249名前は開発中のものです。2006/03/15(水) 01:15:11ID:cXOEjtfT
保守
0250名前は開発中のものです。2006/03/18(土) 15:46:10ID:bpOUjL+k

良スレですね。


6年ぶりぐらいにJava触って驚いた〜。
趣味の遊びには最適ですね。

0251名前は開発中のものです。2006/03/18(土) 23:01:07ID:ATXsVevn
exewrapがJavaゲームの必須アイテムになるのかな?
ヒープサイズをjrockitと同じ物理メモリの75%とかに指定したいんだけど
exewrapにはそういう指定は出来ないんだろうか

128m版と256m版の2つ用意したほうがいいかな・・・うーむ
0252名前は開発中のものです。2006/03/18(土) 23:25:32ID:xwepgm3J
鯖アプリじゃないんだから物理メモリの割合は意味がないぞ
メモリ増えればGCにかかる時間は増えるわけで、ゲームで使用するメモリ量とかちゃんと計算してないの?
それだとGCとかでかたつかないか?
0253名前は開発中のものです。2006/03/19(日) 00:20:58ID:jd/0wDmz
単位時間に対するGC率が増えるのって操作性に影響でないの?
0254名前は開発中のものです。2006/03/19(日) 00:26:14ID:UecNa0OI
100秒ごとに1秒とまるGCと1秒ごとに0.01秒とまるGCとどっちがゲーム向きかということだ

それにわりあいでやられたら世代の調整とかおわっとる
GCのアルゴリズムの種類だって調整するのは常識なんだし
アプリごとに最適な値は大きくことなる
0255名前は開発中のものです。2006/03/19(日) 00:34:10ID:jd/0wDmz
Mapにキャッシュするサイズ+演算用のサイズで考えればいいんだよね?
最適値というのは演算分のヒープサイズがどのくらいのものなの?
0256名前は開発中のものです。2006/03/19(日) 00:50:29ID:UecNa0OI
GCの頻度とか使用量とかチェックしてないの?
-verbose:gcオプションいれてごらん

もっと詳しく見たいのならプロファイラで見るのが一番だが
まずはGC部分に注力するならこれが見やすいだろうね
0257名前は開発中のものです。2006/03/19(日) 00:58:12ID:jd/0wDmz
>>256
OK、チャレンジしてみます。
0258名前は開発中のものです。2006/03/31(金) 14:22:07ID:5bd8BEHK
当方、子供の頃にZ80アセンブラやBASICでゲームプログラムして遊んでいました。
まぁアルゴリズムとかは結構わかります。

今頃になって、再びプログラムを趣味にしてみようと思いJavaを選択しました。
シンタックスやOOPの基本的なことは大丈夫そうです。
Eclipseインストールしてちょっと感激。

で、問題なのはすこしでもDirectDrawとかFPS管理とか、ちょっとでもシステム寄りの
部分になると全然わからないのです。
いくつかソースを読んでみますと、各人でわりと実装が違うようですね。
Java5ではどんな方法がよいのかなど、参考になるものは無いでしょうか。
0259名前は開発中のものです。2006/03/32(土) 00:20:26ID:dul/XEV4
>>258
そういう人かなりいるよね
ゲームは問題なく作れるけどウインドウアプリになるとmainからはじまらないので
わけがわからない、と

Javaは一応mainから常に始まるしまだ楽なほう
>>1-11あたりはまずよんでみた?
0260名前は開発中のものです。2006/03/32(土) 01:27:44ID:liMA6BYm
3/32 記念パピコ
0261名前は開発中のものです。2006/04/04(火) 13:36:48ID:oy1ylhQ+
eclipseってそんなに良いか?【エクリプス】
http://pc8.2ch.net/test/read.cgi/tech/1099300344/274-
> 280 名前:デフォルトの名無しさん[sage] 投稿日:2006/04/04(火) 09:53:59
> >>276
> ほんとかよ。
> 2Dゲームの背景にタイルを敷き詰める処理を作ってみたが明らかに遅いぞ。
> これと言って変な処理は入れてないが、5fps出ない。
>
透過pngをImageIO.read()で読み込んで
Graphics.drawImage(Image, int, int, ImageObserver)で表示すると確かに重くなるが
上の奴はこれと同じ状況なのだろうか?
0262名前は開発中のものです。2006/04/04(火) 13:41:10ID:h6nMnOJP
アルファブレンドだと重いけどただの色抜きなら重くはないよ
5.0ではBufferedImageのままなにもしなくてもそれなりにきくようになってるし
5fpsってありえんね

そもそもソフトウェア描画でもVGAで30fpsはでそうだが
0263名前は開発中のものです。2006/04/06(木) 12:59:32ID:kzyZx0iO
iアプリを作ろうと思って勉強してるんですが、画像表示で躓いています。

サンプルではちゃんと表示されるんですが、画像を自作のものと入れ替えるとIO.connectionexception
ってのがでるんです。サンプルと同じGIFでサイズも同じにしてあるんですが。自作画像の方に問題が
あるんでしょうか。
0264名前は開発中のものです。2006/04/06(木) 14:20:33ID:mP0GEHd4
>>263
動かないのが実機かPC上かを明記してもらえるとありがたい
サンプルがどんな処理を行うアプリケーションなのかも関係してくる
情報が少なすぎるのでエスパー回答してみるが、

・ファイルが壊れている
終端コードが無かったり、BMPなのに拡張子だけGIFにしたとか
試しにネット上に転がってる別のGIFファイルでテストしてみては?

・ファイル名の指定が間違っている
サンプルと同じファイル名にしてテストしてみては?
大文字小文字、全角半角の違いがないか気をつけて

・容量がオーバーしている
同じサイズというのはピクセル数のことだと思いますが、
バイト数が上限を超えていないか確認してください。
0265名前は開発中のものです。2006/04/06(木) 17:15:27ID:kzyZx0iO
適当に書いてすいません。エラーがでるのはDoja3.5のPC上で、ビルドした後実行すると出ます。
サンプルは簡単なもので、画面にタイトルを表示するだけのものです。十枚ある画像を取り込んで
そのうちの一つを画面に表示するものです。

ファイルが壊れている>壊れているかは私に判断できないんですが、自作の画像はwindowsのペイ
ントで書いて、0という名前で(サンプルで表示されるのが0.gif)形式をGIFにしています。

容量がオーバー>サンプルは色付きですが、自作のものは白と黒のみなのでサイズは小さいです。


いろいろ試してみたんですが、サイズの違う画像の時に一回エラーがでずにちゃんと表示されて、
その画像の大きさをいろいろ変えたんてみても上手く表示されました。やはり元の画像が悪いので
しょうか
0266名前は開発中のものです。2006/04/06(木) 17:20:56ID:kzyZx0iO
あともう一つ。一回エラーが出た後、画像をもとのサンプルの画像にしても、やはり
エラーが出たままなんです。
02672632006/04/08(土) 17:16:17ID:+i1+4exU
ソースも画像も変えてないのに何回かやったら表示されるようになりました。
お騒がせしました。264さんありがとうございます。
0268名前は開発中のものです。2006/04/08(土) 21:22:15ID:MsUK1t+N
何回かやったらってありえね
ビルドしてないとか
0269名前は開発中のものです。2006/04/09(日) 20:57:47ID:S2mcpQ+R
俺の場合、PCを再起動してみたら正常に動いたってことはたまにある。
メモリが不足してたのかな?
02702632006/04/09(日) 23:11:53ID:TOyrHTNi
原因はわからないです。さんぷるの画像の内、一枚だけ入れ替えたらうまくいったんで、
一枚ずつ入れ替えていったらエラーがでなくなりました。言われてみれば一回電源切った
あとかも
0271名前は開発中のものです。2006/04/10(月) 02:20:42ID:tKGbAe46
>>270
わかんないならもうレスしなくていいよ
0272名前は開発中のものです。2006/04/15(土) 01:23:46ID:sf5nUDiw
そのくらいのサンプル段階ならソース晒してもいいでしょう
アップローダにアップしては?
http://gamdev.org/up/upload.php
短いソースならこのスレに書き込んでもいいだろうし。
■ このスレッドは過去ログ倉庫に格納されています