Javaでゲーム作成 2本目at GAMEDEV
Javaでゲーム作成 2本目 - 暇つぶし2ch2:名前は開発中のものです。
05/10/27 09:45:06 dzSvRQXE
板内関連スレ
Javaでゲーム作る話してるキチガイがいるよ(藁
スレリンク(gamedev板)
JAVAアプリでゲーム
スレリンク(gamedev板)
【JAVA】2Dアクションゲームを作る【初級】
スレリンク(gamedev板)

Javaテクノロジ
URLリンク(jp.sun.com)
URLリンク(java.sun.com) (Ver5.0のJDK入手はここから)
URLリンク(java.sun.com) (Ver1.4.2)

EclipseWiki (開発環境Eclipseについて)
URLリンク(eclipsewiki.net)
Javaでゲーム作りますが何か?
URLリンク(javagame.main.jp)

3:名前は開発中のものです。
05/10/27 09:46:29 dzSvRQXE
関連スレ補完
JAVA シューティング作成委員会
スレリンク(tech板)

【徹底討論】Java3Dの可能性について考える
スレリンク(tech板)

[立方体]  JAVA3D  [直方体]
スレリンク(tech板)

【質問】Java3D【相談】
スレリンク(tech板)

JavaでVCバリのゲーム開発可能?
スレリンク(tech板)

【Java】EZアプリ勉強しつつ作っていく
スレリンク(appli板)

4:名前は開発中のものです。
05/10/27 11:27:47 ZZ7nMv5G
しばらく見ないと思ったら、落ちてたのか
1乙

5:名前は開発中のものです。
05/10/27 16:01:39 7S6We+lN
>1おつ。

これだけだとアレなんでPureJavaでゲームを開発する場合チェックすべきもの。

・描画の基本となるJava2D全般
・音楽のすべてはJavaSound
・描画のベースとなるGraphicsConfigurationとかJFrameとかBufferStrategy
・画像ロードにImageI/O
・入力のKeyEventやらListenerまわり
・時間管理にTimer方面
・ゲームに限らないが便利なコレクション関係。特にJ2SE5.0からは面白いものが追加されてるのでチェック
・J2SE5.0以上なら高速で高機能な排他制御にLock方面
・ハイスコアやリプレイ保存、データ読み込みなどにストリームのI/O方面。XMLも5.0からはXPathが標準ライブラリに入ったので便利


6:ooo
05/10/27 16:30:12 Wsa915hK
よぉ
ああああああああああああああああああああああああああああああああああ

7:名前は開発中のものです。
05/10/27 16:38:06 MMxzgP3l
Processing 1.0 (BETA)
URLリンク(processing.org)
でゲーム作りを始めてみましたが、面白いですよ。
JAVAについては何も知りませんでしたけど、簡単に作れました。
(Processing is an open source programming languageとか云ってますが、実体はJAVAなので問題無いですよね?)

ただ、BETAだとEclipseから利用する方法が分からなかったので、
あえてALPHAを使っています。
あと、音周りが工夫しないとダメですね。

SpringTower : Built with Processing
URLリンク(akimasa.s96.xrea.com)
僕が作ったのはこんなモンですが、
ABA Games
URLリンク(www.asahi-net.or.jp)
(のProce55ingの項)
がとても参考になりました。

製作者側もお手軽で、遊ぶ側もお手軽で、アマチュアには良いんじゃないですかね。

8:名前は開発中のものです。
05/10/27 18:31:56 7S6We+lN
>>7
たしか出来上がるものはjavaのクラスファイルだが、言語そのものは違う

という微妙なラインだな

でもBASIC感覚ならProce55ingよりもっとわかりやすいライブラリが前スレで見た気がする

9:名前は開発中のものです。
05/10/27 19:33:52 Ng3zF12F
各種ラッパーライブラリ

JOGL(OpenGL) URLリンク(jogl.dev.java.net)
  JSR-231 beta 01 URLリンク(jogl.dev.java.net)

Lightweight Java Game Library(OpenGL, OpenAL) URLリンク(www.lwjgl.org)
sdljava(SDL) URLリンク(sdljava.sourceforge.net)

10:名前は開発中のものです。
05/10/27 22:35:20 w+M8OxUU
>>8
Proce55ingはJava Appletの一部を隠蔽しているだけだから
言語も同じと考えていいかと。
EclipseでPAppletを継承して作っているとなおさら。

11:名前は開発中のものです。
05/10/27 23:10:51 7S6We+lN
でも細かいこと出来ないし、ゲーム用ってのは無理があるかと
まだベータだったような気もする

それくらいだったらstatic importを前提とした
URLリンク(shin.cside.com)
のほうが楽だね

まだstatic importで使える命令は少ないけど、
ページフリッピングとイメージ描画、BGM、SE、入力がBASICと同じように使えるし、
Proce55ingの時間管理のように最初にフレームレート指定するだけで全自動

だらだらと
PUTSPRITE( image, x, y, w, h);
FILL( x, y, w, h, color) ;

とかBASICと同じように可能

J2SE5.0の新機能を割り切って使ったというのは面白い


12:名前は開発中のものです。
05/10/31 23:39:48 u6e5CoZ+
質問です。
ある画像image1を90度回転させてimage2に保存するにはどうしたらよいでしょうか?

13:名前は開発中のものです。
05/10/31 23:56:08 imBdURi1
ム板で質問した人?

基本的な考え方としては、新しい BufferedImage を作成して
そこから createGraphics()で Graphics2D コンテクストを取得する。
そこにオリジナル画像を AffineTransform で90度回転して描画、
んでファイル書き出し。

14:名前は開発中のものです。
05/11/01 00:30:00 9pR/2Iza
ここまで想像力のない質問を見るとさすがにムカつく

15:名前は開発中のものです。
05/11/02 22:39:55 l4YhQp0J
想像力と言うか知識があるかないかだと思う。要は知ってるか知らないか。

16:名前は開発中のものです。
05/11/02 23:48:22 DUZczgaE
>>15
業務系ではなくゲームの場合、少ない知識の組み合わせで目的の結果を得る想像力は大事だと思う。

17:名前は開発中のものです。
05/11/03 02:58:58 urWJhpS3
90度単位だったら普通は関数しらなくてもピクセル単位で回転できるよなぁ

18:名前は開発中のものです。
05/11/03 06:40:04 9Sm6/yeX
> ピクセル単位
Javaを覚え始めた頃、
Toolkit.getImage → PixelGrabber → MemoryImageSource
の流れはあまり簡単には思えなかった。catch しなきゃならない例外もあるしね。

WindowsでもDIB関係に戸惑ったし、ロジックはわかってるのに肝心な入出力
がらみのライブラリが未修得でイライラすることが良くある。

19:名前は開発中のものです。
05/11/03 13:46:35 urWJhpS3
昔はともかく今ならBufferedImageあるんで楽チンだと思うが
素でDIBつかうよりインテリジェントにラッピングしてくれる

20:名前は開発中のものです。
05/11/03 14:05:31 WOWA/OPZ
java・・・・と言うかプログラミング自体を勉強し始めた者なんですけど
javaで人工知能(チャットでよくある人口無能みたいなやつで入力
した単語に返答してくれるみたいな」)っぽいのつくれますか?
せっかく高校で習っているので勉強だけじゃなくてなにか役立てたいのですが・・・・

21:名前は開発中のものです。
05/11/03 14:09:06 urWJhpS3
アルゴリズムがしっかり自分で作れるなら作れる


22:名前は開発中のものです。
05/11/03 14:16:55 WOWA/OPZ
>>21
レスさんくすです。
ALは2次元配列までしか理解していませんが頑張って見ます

23:名前は開発中のものです。
05/11/03 14:51:49 yzYzVhNJ
2次元配列ってアルゴリズムなのか?

24:名前は開発中のものです。
05/11/03 15:25:40 rL8Q+mgG
データ構造だろ

25:名前は開発中のものです。
05/11/03 15:30:20 rL8Q+mgG
>>20
人工知能と人口無能じゃ大違いだが、とりあえず
Javaだから作れる、とか作れない、とかはない。
自然言語処理等の勉強をすれば色々な言語で作れる。


26:名前は開発中のものです。
05/11/03 17:22:53 MCCIxjg4
>>20
URLリンク(javagame.main.jp)
にJavaで作ったサンプル例がある。

でもテキスト扱うのはPerlとかRubyの方が簡単だろうな。Javaだと無駄に難しそう。

27:名前は開発中のものです。
05/11/03 17:27:23 urWJhpS3
どの変が難しそうなんだろう・・・

28:名前は開発中のものです。
05/11/03 17:27:41 mPH84WWP
>>20
MyJxtaのソースの一部にEliza(人工無脳っぽいプログラム)
の機能があったと思う

Ruby向けだけど
URLリンク(book.mycom.co.jp)

人工無脳ではないけどJava向け
URLリンク(www.amazon.co.jp)

29:名前は開発中のものです。
05/11/03 17:56:04 MCCIxjg4
>>27
正規表現の使い方がJavaだと面倒くさい

30:名前は開発中のものです。
05/11/03 19:20:15 urWJhpS3
面倒なことないやん


31:名前は開発中のものです。
05/11/04 22:15:45 Kyfrg/8g
オブジェクト作ったりしないといけないしPerlの方が楽だと思うけど

32:名前は開発中のものです。
05/11/04 22:28:24 SFh7BoY4
確かにちょいちょいした作業ならperlも便利だが
ちょっと大きなプログラムになるとデバッグ時間が指数関数的に増えるし
半年も経つと自分で書いたソースでも完全意味不明に見えるのは困るな

33:名前は開発中のものです。
05/11/04 22:52:05 qJSgT1NL
昔のWebアプリはPerlが主流だったが、掲示板やチャット程度ならともかく、
業務アプリみたいな巨大な物をメンテナンスすると死にそうになる。
最近のPerlは知らんが。

34:名前は開発中のものです。
05/11/04 23:16:25 BPGzYPZF
しかし、Javaはあとからあとから新しいWebアプリフレームワークだの
なんだの、いろいろ出しすぎw

35:名前は開発中のものです。
05/11/04 23:20:17 ukNdIpNn
ライブラリなんて必要とする携帯にあわせて選択すればいいだけだろ。
得意不得意はそれぞれあるし、目標とするものが違うからな。


36:名前は開発中のものです。
05/11/05 08:59:55 nyk5I5ZL
>>34
Javaは最先端の実験言語みたいだな。大学の研究でよく使われるからかも。

37:名前は開発中のものです。
05/11/05 13:00:36 3XtwtUcI
>>36
大学の研究でよく使われるのもあるけど、
Apacheを筆頭に無数のオープンソース開発者がいるからだと思うぞ。

38:名前は開発中のものです。
05/11/05 14:22:37 bFW/1MqR
Apacheのプロジェクト数は異常なくらいだな

問題はこのスレに関係があるライブラリはなさそうなことくらいか

まぁApache XML-RPCは目的によっては使えるか

39:名前は開発中のものです。
05/11/05 15:12:24 JuIHCGWg
みんなどのくらい非ネーチブパッケージ使ってるのかな。
シミュレーションとかちまちましたデータ中心ならXMLデータバイディングとか
かなり使えそうとか思うけど。

自分の場合はついついインタプリタ仕込む癖がある。

40:名前は開発中のものです。
05/11/05 15:14:53 bFW/1MqR
標準でXPath使えるようになったから大分楽になったけどね

ゲームつくろうって人間は自前で実装が多いと思われ
なんせ、ばらす必要はなくてたとえばList<Element>でもっていけば、
Beansとちがって仕様変更に強かったり、例外処理がしやすかったりする


41:名前は開発中のものです。
05/11/07 02:44:21 vwx0ALlq
WikiのJava実装のソースを読むと正規表現が山のように出てくる
WikiはPerlで作ったのをコピーしてるからそうなっているんだと思うけど
これが、Perl文化かと思ったよ

42:名前は開発中のものです。
05/11/15 23:05:03 P0cI9ezk
OGGって再生コストがえらい高いらしいけど
それをJavaで再生したらどえらいことになったりする?
Wavのがディスク食うだけでいいから安定するのかな?

43:名前は開発中のものです。
05/11/15 23:12:48 ShfCvdFQ
質問は明確に

44:名前は開発中のものです。
05/11/15 23:19:48 P0cI9ezk
CPUへの負荷が高いそうなのですが、実用レベルなのですか?

45:名前は開発中のものです。
05/11/15 23:33:03 Wrh6FbhN
>>42

>>11のを見る限りCPU使用率は1GHzで1,2%ってところでは?


46:名前は開発中のものです。
05/11/17 20:29:55 8R2XVZPE
フルスクリーンから
device.setFullScreenWindow(null);
System.exit(0);
とやって終わらせると画面真っ黒になって操作不能になることが
あるのですが、なる理由がわかりません。
あと、フルスクリーンにするときそこで処理が止まってctlALTDelで終わるしかない
ときもあるのですがどうすればよいのですか?
1_4_2です。

47:名前は開発中のものです。
05/11/17 20:35:02 2shdXMro
System.exit()すればすべて開放するから
問題はないはずだけど

ベータのときはnullわたしたやつはダメだったけどね
今は大丈夫だったと思ったけど

あとはチップとビデオドライバによるかも
安定してDirectX動いてる?

48:名前は開発中のものです。
05/11/17 21:44:27 8R2XVZPE
それを確認するにはどうしたらいいんですか?
PC初心者板逝きですか?

49:名前は開発中のものです。
05/11/17 23:38:12 2shdXMro
>device.setFullScreenWindow(null);
これをコメント化してみたら?

あとは他のJavaのフルスクリーンのゲーム試してみるとかどうかな


50:46
05/11/18 20:45:39 Jjzsx+o7
フルスクリーンで操作不能になったりする理由はわかりませんでしたが
とりあえず動くのでよしとすることにしました。
ですが背景を付けてみると
ぱちぱちしてとても目に悪いことこの上ないという状況になりました。
これがちらつきというのでしょうか?
BufferStrategyは使っているのですがどうすれば改善するのでしょうか?

51:名前は開発中のものです。
05/11/18 21:13:51 bdg3zZZw
BufferStrategyでページフリッピングしてれば大概の環境で垂直同期取るはずなので
ちらつくことはないと思うんだが、他のアプリでもちらついてるの?

52:名前は開発中のものです。
05/11/18 21:16:43 yEqWeMq1
フルスクリーンじゃなくても垂直同期とるんだっけ?

53:名前は開発中のものです。
05/11/18 21:24:56 bdg3zZZw
フルスクリーンのみな
ウインドウモードはフリッピングのフラグが降りてブリットのフラグがたってるはずだろ


54:46
05/11/18 22:02:38 Jjzsx+o7
もしや、自分の環境が大概の外にあるということでしょうか。

他にはコマンドプロンプトしか動かしてません。
ちらつくときとちらつかないときがあるのですが
背景を付けると100%ちらつくこの状況。
フルスクリーンを諦めるしかないのか

55:名前は開発中のものです。
05/11/18 22:16:33 bdg3zZZw
だからフルスクリーン対応のアプリ立ち上げてみればわかるっしょ

56:46
05/11/19 06:56:25 59ba+Epe
東方、どっかで拾ったフルスクリーンにボールが増えていく
もの(Java)、百本ゲームのゲームは問題なく動きます。

57:名前は開発中のものです。
05/11/19 13:09:03 BsSsGwkc
なら自分のコードがわるいってことかと

58:46
05/11/19 13:40:21 59ba+Epe
背景の描画オブジェクトにフレームのを
渡していたことが発覚。
正直すみませんでした。
ちらつきは直りましたが、それ以前の操作不能になること
がある時があるのはわからない。
これもどこか自分のが悪いのだろうか。

59:名前は開発中のものです。
05/11/20 02:35:57 PktMjKAY
>>46=58
一言アドバイス
発覚したってことは他も可能性アリ
煮詰まってそうだけど、連レスしてないで
とりあえずもちつけ

で、もっかいソースとにらめっこしてみようぜ!


60:名前は開発中のものです。
05/11/26 22:10:42 wK3zX5BN
Javaのパワーを生かしてツクールやFlashみたいなエンジン作ろうよ
馴らしたSEの人が設計してくれるならコードは手伝うよ

61:名前は開発中のものです。
05/11/26 22:25:05 sU6iOuYI
まず自分でたたき台を作るくらいが必要と思われ

ツクールにしてもダンテのようにフラグだけでいいのか、スクリプトでいいのか
スクリプトなら次期バージョンで標準実装だとか

出だしはコードと設計は同一者でひっぱっていくくらいじゃないと
オープンソースなプロジェクトは成功しないと思われ

SEだ、プログラマだといったすみわけはいらない

まず、>>60がJavaでスタンドアロンのゲームを作れるかどうかという点がポイントになる


62:名前は開発中のものです。
05/11/26 22:53:12 wK3zX5BN
>>61
すまん。実は業務系でSwingは勉強中なんだ。

63:名前は開発中のものです。
05/11/26 22:56:43 sU6iOuYI
いや、誤る必要ないよ
業務系でJavaさわってるならまず言語の基本は問題ないとして

Java2Dを筆頭にフルスクリーンとか時間管理、JavaSoundあたりが触れるようになるといいね



64:名前は開発中のものです。
05/11/26 22:56:47 WkbR04YY
画像を回転させようと思って
AffineTransform form = new AffineTransform();
draw(){
form.rotate(x*Math.PI/180,画像の幅/2,画像の高さ/2);
画像イメージの描画オブジェクト.drawRenderedImage(画像イメージ,form);
描画先の描画オブジェクト.drawImage(画像イメージ,null,gx,gy);
}
というふうにすると、背景が透明なでただ↓と描かれている画像を使うと背景が黒くなり矢印が見えなくなります。
また、横長い画像をつかって見ると画像の中心に
画像の高さを直径に丸くなって回転をし
その丸以外の部分が白くなってしまうんです。
ただ画像をその場で回転させて
表示させたいんですがどうすればいいんでしょうか?

65:名前は開発中のものです。
05/11/26 23:04:49 wK3zX5BN
>>63
最初はCっぽくなるかも知れないけどやってみる。

66:名前は開発中のものです。
05/11/26 23:11:28 sU6iOuYI
>>64
もちつけ

なんか日本語が分かりにくいぞ

まずGraphics2Dのrotateメソッドを使ってみて描画してもおかしいかチェック

それに画像イメージってやつをを上書きしてしまってるように見える


67:名前は開発中のものです。
05/11/26 23:29:16 PhHUEMA7
>>60-63
Flash やツクールみたいのはゲームどうこうより、
アプリとしての設計の方が100倍重要だと思うけどなー
エンドユーザ的意見としては、時間制御 UI は Flash じゃなくて
AfteEffects を参考にして欲しいと願う。

Shape エディタがあったら超便利なのにと思う事は多々あるので
正直これはかなり興味ある。
そのうち Sun が出すんじゃねーかとか思ってたけど全然だし。

このへんは現状だと SVG (Illustrator -> Batik) とかになるんだろうけど
こっち方面は面倒すぎて手が出せん。


68:名前は開発中のものです。
05/11/27 00:07:17 XSFMA6v6
まず最低限ゲームが作れないとどういう設計したらいいかわからんのでは?

69:名前は開発中のものです。
05/11/27 00:25:55 H8JPzJcw
以下でJavaで作るゲームの基本を学ぶ。
Java基本機能だけのベースとしてはかなりいい材料と思う。
URLリンク(www.brackeen.com)

70:名前は開発中のものです。
05/11/27 01:11:36 bXtTt1i7
>>69
すごいね。いい勉強になりそう。
TimerとGraphics2Dでアニメくらいは出きるからちょこちょこ学んでみるよ。

71:名前は開発中のものです。
05/11/27 01:13:57 laCqt6jf
>>68
それは多分作ってほしいと思うもの違いがあるのかも。
オレが想像したのは、エンジンはメタなインターフェイスを提供して
ゲーム的なエッセンスはエンドユーザが作るって形のものだから。

んで実際の所、描画の最適化とか絶対に必要になるけど、
それがゲームに限った話かと言われると微妙な気がするのよ。

むかーし似たようなモン作ろうとしたけど (作りかけたま放置)
必要としたゲーム的な知識ってタイマーの使い方くらいだった。

>>70
とりあえずガンガレ!

72:名前は開発中のものです。
05/11/27 01:16:07 XSFMA6v6
>>70
スレッドプールとか5.0で標準で実装されてるのもあるし注意な
とくにJavaSoundのストリームと偽ったところはなめてる感じ

73:名前は開発中のものです。
05/12/05 22:23:20 DrFNVWzV
gifなどの透過画像をImage等に描画して
そのImageのなにも描いてない部分を透過させるにはどうしたらよいのですか?

74:名前は開発中のものです。
05/12/05 23:52:46 YnmMxKVz
>>73
BufferedImage(int, int, int)で
3番目の引数にBufferedImage.TYPE_4BYTE_ABGR指定で透明になるかな?

75:名前は開発中のものです。
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も良くない?
あれ対応のゲーム出てくると使う側としては楽チンなんだが。見ないね。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch