- 1 名前:名前は開発中のものです。 [2005/10/27(木) 09:43:50 ID:dzSvRQXE]
- Javaでのゲーム作成について情報交換をするスレです。
ゲーム作成以外の話題はム板(pc8.2ch.net/tech/)、 他言語に関する話題は他スレでお願いします。 前スレ JAVAでゲーム作成 pc8.2ch.net/test/read.cgi/gamedev/1074347252/ テンプレは>>1->>10あたりを参照
- 133 名前:名前は開発中のものです。 mailto:sage [2005/12/12(月) 16:21:39 ID:xzlsw/bc]
- Javaでゲームを作れという課題がでたんですが、どんなのが簡単だとおもいます?
行数は400以上&対戦ゲーム&Swingというのが条件です。 既存のゲームでなるべく参考資料が沢山あるものが良いのですが・・・ アイデアゲームは自分のスキルや時間的制約から作る自信が無いですorz
- 134 名前:名前は開発中のものです。 mailto:sage [2005/12/12(月) 16:57:06 ID:5lGPHviO]
- ブロック崩しやインベーダーのようなSTGとか
Swingを使えという時点でたぶんそんなレベルじゃない気がする マルバツゲームとかもっと単純なの 最低自分が何を作りたいかだけはきめてください
- 135 名前:名前は開発中のものです。 mailto:sage [2005/12/12(月) 17:05:04 ID:6Xf+w43J]
- >>133
その条件なら特に苦にならんだろう テンプレあたりに行って資料が多そうなの探せばいんじゃね?
- 136 名前:名前は開発中のものです。 mailto:sage [2005/12/13(火) 07:26:14 ID:lGjUBPOJ]
- >>134
12月末までという期限付きなので力量に合わないのに手を出したら怖いなと。 そのためそこそこボリュームがあって簡単に作れるゲームをきいてみたいと思ったわけです。 ちなみにブロック崩しモドキ(ボールをブロックに当てたら壊れる)や シューティングモドキ(たまを発射させ物に当たったら壊せる)ぐらいは作った事ありますが、 昨日調べた結果によるとリアルタイムで進行させるものは対戦にするのは難しいとか。 それよりターン製のゲームの方が比較的楽でイイヨって書いてありました。。 >>135 つらつらとネットサーフィンしてみましたが400行足らずでも結構うまく作れるものですね、 どんだけのゲーム作れば良いのかと何か不安になってきましたorz
- 137 名前:名前は開発中のものです。 mailto:sage [2005/12/13(火) 12:23:28 ID:SA14+LJ/]
- リアルタイムのほうが難しいかどうかは設計しだいかと
12月末ではあと2週間ですか STGだと1面だけ開発するのも難しそうだ
- 138 名前:名前は開発中のものです。 mailto:sage [2005/12/13(火) 14:25:19 ID:ULQaYiRM]
- >>136
とりあえずとっとと着手しろって ブロック崩しに対戦要素混ぜるとかでいいじゃん。 上下にバー作るとか。 ちょっと工夫するなら、画面半分に分けて上下にバー作って、 1P側の操作で左の下側バーと右の上側バーが同時に動き、 2P側の操作だとその逆。勝利条件をちょっと考えれば これで十分対戦になるじゃんよ?
- 139 名前:名前は開発中のものです。 mailto:sage [2005/12/13(火) 18:22:53 ID:lGjUBPOJ]
- 2日で終わらせた人がいたもので、自分でも2週間あればと思っていたのですが・・
なんにせよ選ぶのは程ほどにし、 皆さんの意見を参考にしつつ今から寝ずに頑張ってきます。 他のレポートもあるのでつきっきりになるわけにはいきませんがorz Thank you.
- 140 名前:名前は開発中のものです。 mailto:sage [2005/12/13(火) 18:25:21 ID:SA14+LJ/]
- がんがれ
- 141 名前:名前は開発中のものです。 mailto:sage [2005/12/13(火) 23:40:37 ID:/KZUefCp]
- ジョイスティックを扱うには、
JNIとJavaCommunicationAPI、どっちが良いのでしょうか? 前者は高級な機能を使えるけど環境依存、 後者は低級な所からくみ上げる必要があるけど、WinとSunで動く、 という感じなのでしょうか?
- 142 名前:名前は開発中のものです。 mailto:sage [2005/12/13(火) 23:43:17 ID:msXDQ5aj]
- >>141
https://jinput.dev.java.net/はどう?
- 143 名前:名前は開発中のものです。 mailto:sage [2005/12/13(火) 23:48:38 ID:Ngny3SWu]
- 400行のゲームなら、その先生が期待してるのはテトリスあたりかな。
対戦要素を考えるならボンブリスとかか、俺ならそこらへん狙う。と遅レス。
- 144 名前:名前は開発中のものです。 mailto:sage [2005/12/14(水) 00:08:34 ID:8d4z5wIB]
- >>142
コミュニティ開発のAPIですか。 まだライセンスを確認してないけど、 頒布の問題が発生しなければいいかもですね。
- 145 名前:名前は開発中のものです。 mailto:sage [2005/12/14(水) 00:52:23 ID:P5dHJreb]
- どのライブラリにしろJNIで組まれてる
- 146 名前:名前は開発中のものです。 mailto:sage [2005/12/18(日) 01:18:18 ID:ART67WNv]
- フルスクリーンにしようと思うのですが、環境はどんなのが良いのでしょうか?
640x480の16bitでいいかなと思うのですが、Win高級機以外でも32bitって使えますか?
- 147 名前:名前は開発中のものです。 mailto:sage [2005/12/18(日) 01:43:27 ID:9q2jSVUj]
- つーか、Win以外は解像度変更あきらめたほうがいいかと
そしてWinでも32bpp出せない環境はある
- 148 名前:名前は開発中のものです。 mailto:sage [2005/12/18(日) 01:59:42 ID:ART67WNv]
- >>147
Win以外では無視されるといことでしょうか? では16bpp(bit per pixel?)にしておけば不具合が起きることもなさそうです。 BIT_DEPTH_MULTIというのもあるのですがこれは使えますか? スクリーン版JISAutoDetectみたいなものなのかとJavaDocを見て思ったのですが これといった情報がネットにありませんでした。
- 149 名前:名前は開発中のものです。 mailto:sage [2005/12/18(日) 02:03:11 ID:9q2jSVUj]
- 指定なしという感じでは?
Linuxでやったときは画面サイズ変更が不可能だったし、ウインドウモードとフルスクリーンモードと作ったよ 内部描画と出力描画を分けるとかが吉かも 速度大幅に低下するけど あと使用可能な画面をリストアップして処理するのが一番だね
- 150 名前:名前は開発中のものです。 mailto:sage [2005/12/18(日) 02:14:24 ID:ART67WNv]
- > 使用可能な画面をリストアップして処理する
ここをもう少し詳しく教えていただけないでしょうか? device.getDisplayModes();で最高値のモードを探す感じですか?
- 151 名前:名前は開発中のものです。 mailto:sage [2005/12/18(日) 13:02:30 ID:9q2jSVUj]
- 最高というか自分がやろうとしているモードに最も近いのを探すといった感じかな
- 152 名前:名前は開発中のものです。 mailto:sage [2005/12/19(月) 20:35:40 ID:o8rpM/SY]
- グラフィックなどは置いといて、
タクティクスオウガみたいなSLGのシステム作るのに おまいらだったらどれくらいかかるもんですか?
- 153 名前:名前は開発中のものです。 mailto:sage [2005/12/19(月) 20:49:21 ID:Xlt1mg4V]
- 時間がかかりそうなものは最初に作ろうとしない
自分がまず完成できるものを選ぶ のが普通では? 最初から風呂敷広げて崩壊していくのを何度見たことか たいしたことのないものであってもちゃんと快適動作してバグもないように完成させる、 というのはそれなりに大変なもの
- 154 名前:名前は開発中のものです。 [2005/12/19(月) 22:23:05 ID:GbGeAi3t]
- フルスクリーンでゲームをつくってきたんですが、
デバッグがあまりに手間でウィンドウモードに変えたくなってきました。 public Graphics2D getGraphics() のようにして、 スクリーンマネージャが getFullScreenWindowからえたWindowから、 BufferStrategyを返して、 それから、Graphics2Dを返して描画するようにしているんですが、 ここから楽にウィンドウモードに切り替えるすべはありますか?
- 155 名前:名前は開発中のものです。 mailto:sage [2005/12/19(月) 22:52:44 ID:Xlt1mg4V]
- ウインドウモードでなんでgetFullScreenWindowがでてくるんだ?
- 156 名前:名前は開発中のものです。 mailto:sage [2005/12/19(月) 23:30:01 ID:vG/cR0LR]
- いろいろ悩んだ結果たどり着いたのはStrutsだった。
なるほど、これならMVCになる。この感動は衝撃的だった。 おわり。
- 157 名前:名前は開発中のものです。 mailto:sage [2005/12/20(火) 00:07:37 ID:pKpEoU3U]
- Strutsでゲームつくったのか?
- 158 名前:名前は開発中のものです。 mailto:sage [2005/12/20(火) 00:29:32 ID:WpmlUq/X]
- 画面切り替えの仕様がぜんぜんかっこよくならなくて悩んでいたら
Strutsの例のfowerdが頭に浮かんだ。そんだけ。 メインルーチンの戻り値がまさかシーンだったとは・・・みたいな。
- 159 名前:名前は開発中のものです。 mailto:sage [2005/12/20(火) 02:15:06 ID:FfJ0Icl6]
- それゲーム内での遷移のスクリプトの話なだけだろ
AVGとかきまったものでしかつかえんよね
- 160 名前:名前は開発中のものです。 mailto:sage [2005/12/20(火) 23:06:36 ID:WpmlUq/X]
- うんにゃ、RPGパートからシューティングパートに切り替えるにしてもこの手法でいけるよ。
- 161 名前:名前は開発中のものです。 mailto:sage [2005/12/20(火) 23:12:27 ID:FfJ0Icl6]
- その程度のシーン切り替え・・・
- 162 名前:名前は開発中のものです。 mailto:sage [2005/12/20(火) 23:19:12 ID:WpmlUq/X]
- ん?流しっぱなのかスタックなのかの指定もこの方法なら簡単なんだけど・・・
- 163 名前:名前は開発中のものです。 [2005/12/21(水) 00:10:55 ID:38cOblp2]
- >>153
たいしたことのないものは、そこら辺にソースが転がってるから、 作る気が起きないんだよね。 かといって、ちょっとレベルや規模を広げると、1人じゃお手上げになるし。
- 164 名前:名前は開発中のものです。 mailto:sage [2005/12/21(水) 00:12:34 ID:2Odzg4dt]
- たとえばぷよぷよとかテトリス、コラムスなんて作るのは簡単
でも、しっかり音出したり演出出したりバランス取りしてちゃんとしたものを作る という段階まではなかなか難しい
- 165 名前:名前は開発中のものです。 [2005/12/21(水) 20:44:15 ID:+HySSU2I]
- そこそこできたら飽きてしまって次の作りたくなる
- 166 名前:名前は開発中のものです。 mailto:sage [2005/12/21(水) 21:12:53 ID:2Odzg4dt]
- その差が途中で投げ出すやつか、それとも同人屋やソフト屋としてちゃんとやっていけるかどうかの差
- 167 名前:名前は開発中のものです。 mailto:sage [2005/12/23(金) 20:23:05 ID:3FOPkpSW]
- Javaで作ったRPGでソース公開してるサイトありますか?
もしくはセリフの表示のやり方の紹介とか
- 168 名前:名前は開発中のものです。 mailto:sage [2005/12/23(金) 20:57:04 ID:/tlDw98+]
- それ難しくはないだろ
どの変が難しいと思うんだ?
- 169 名前:名前は開発中のものです。 [2005/12/23(金) 21:11:56 ID:PPOyiaLP]
- >>167
テンプレ
- 170 名前:名前は開発中のものです。 [2005/12/24(土) 11:52:15 ID:iqSdFGcF]
- だれかJava3Dでゲーム作ってる人いない?
- 171 名前:名前は開発中のものです。 mailto:sage [2005/12/24(土) 12:56:39 ID:gnp/5lgI]
- 1年位前に触ったときJOGLならともかくJava3Dものすごく遅くてお話にならなかったけど
DirectXの実装のほうでね
- 172 名前:名前は開発中のものです。 mailto:sage [2005/12/24(土) 16:05:43 ID:twljoP+/]
- >>168-169 レスサンクス
ドラクエみたいに新しい行が挿入されたら 既に表示されてた行が上にずれて1番上の行が消えるとか 主人公の名前を変えられるゲームにおいて メッセージ中で表示するときはどうしたらいいかとか ファイルからセリフを読み込むにはとか テンプレ見て勉強します
- 173 名前:名前は開発中のものです。 mailto:sage [2005/12/24(土) 16:31:00 ID:Al8Kj3xL]
- >>172
> 既に表示されてた行が上にずれて1番上の行が消えるとか Clipが神だと分かったあの日の夜
- 174 名前:名前は開発中のものです。 mailto:sage [2005/12/24(土) 16:37:56 ID:gnp/5lgI]
- それ文字列をスクロールさせるのではなくて
BufferedImageで文字列のバッファ用意して毎フレームブリットしたほうが楽
- 175 名前:名前は開発中のものです。 mailto:sage [2005/12/26(月) 08:43:49 ID:zSwx4yvQ]
- >>174
勉強になります dd
- 176 名前:名前は開発中のものです。 [2006/01/07(土) 15:15:38 ID:EFX7v943]
- Javaでタスクシステムって作れる?
- 177 名前:名前は開発中のものです。 mailto:sage [2006/01/07(土) 18:00:27 ID:yOZ6b1cq]
- オブジェクト指向なんだから普通はポルモルフィズム(多態性)でOK
- 178 名前:名前は開発中のものです。 [2006/01/15(日) 10:23:57 ID:53jl8YVS]
- SWTのImageとGCをつかってスプライトを描画しているんですが、
左右反転、上下反転をする際に、 setTransform(...) で、trans.scale(-1,1); などとすると複数のスプライトを描く際に実用に耐えられないくらい重いです。 AWTのdrawImageみたいに、それだけで左右、上下反転できないのでしょうか? srcX,destXを反転させれば良かったAWTにたいし、 SWTだとwith,height指定なので引数に負数を渡すと実行時エラーになってしまい、それだけではできないようにみえます。 ご存じの方、おられましたら宜しくお願いいたします。
- 179 名前:名前は開発中のものです。 mailto:sage [2006/01/15(日) 11:12:29 ID:aMKMqoWr]
- SWTはEclipse以外では使わないこと
が正しいと思う PureJavaのほうがまともな実装ってどういうことさ って場面がよくある
- 180 名前:名前は開発中のものです。 mailto:sage [2006/01/15(日) 20:09:28 ID:Vrds102b]
- SwingでJava2D使おうぜ
- 181 名前:178 mailto:sage [2006/01/15(日) 22:49:28 ID:53jl8YVS]
- >>178,>>179
なるほど、ありがとうございます。 SWTをつかってアニメーションエディタとゲーム自体を一緒に作っていたのですが、 考え直した方が良いみたいですね。
- 182 名前:名前は開発中のものです。 mailto:sage [2006/01/15(日) 22:52:15 ID:53jl8YVS]
- う、間違えました。
>>180 Swingの方がやはりいいんですね。SWT自体は割と扱いやすいとは感じているのですが、 最近は情報も出てこず考え直したりもしています。 SWTを使うと局所的なところでWin32APIなどを呼べるのも魅力なのですが。 思想には反しますけれど。
- 183 名前:名前は開発中のものです。 mailto:sage [2006/01/16(月) 00:14:43 ID:DTLttG/1]
- PureJavaとはいえJava2DってDirectX使われてるの知ってる?
情報量は多いしものによっては速度面でも結構いける 1フレームあたり1000個のスプライトとか余裕
- 184 名前:名前は開発中のものです。 [2006/01/17(火) 03:10:21 ID:9917DXoA]
- JAVAでカードゲームを作ろうと思っているのですが、
某サイトに開発ツールJAVA2 SDK 1.3と書いてあるのですが、 このスレのテンプレには(Ver5.0のJDKとVer1.4.2) しかなく どれをDLすればいいのか分かりません どなたか教えてもらえないでしょうか?
- 185 名前:名前は開発中のものです。 mailto:sage [2006/01/17(火) 06:08:31 ID:Om3jnpEH]
- >>184
ハァ? 質問の意味が読めん
- 186 名前:名前は開発中のものです。 mailto:sage [2006/01/17(火) 06:37:28 ID:1vDzG9rV]
- >184-185
エスパーちからを発揮してみると、参考にしようと思ったサイトが 1.3だったので、1.3が良いと思ったのではなかろうかと。 1.4か5.0でやってみたら?ほとんどの場合、動くと思うよ。>184
- 187 名前:名前は開発中のものです。 [2006/01/17(火) 14:12:13 ID:jNVA85J7]
- >>185-186
日本語がおかしくてすみません 参考にしようと思ってるサイトでは1.3と書いていて 1.3を探したけど、1.4か5.0しかなくて困ってます。 それから1.4と5.0の違いが分からなくて どっちをDLしていいのか分かりません 違いを教えてもらえないでしょうか? ちなみにiアプリのゲームを作ろうと思ってます
- 188 名前:名前は開発中のものです。 mailto:sage [2006/01/17(火) 14:22:08 ID:4NyPfQ7d]
- ここではJava2SEの話題がメインなので
J2MEの話題はプログラム技術板に専用スレがあったと思うのでそちらのほうがいいかと。 そして動作保障している1.3を使うのが吉。 互換性は細かいタイミングが必要なところではチューニングすればするほど問題が出やすいし。 J2MEといってもiアプリは独自の層があついのでいわゆるJavaという豊富な標準API を使って開発するという感じはないと思われ。
- 189 名前:名前は開発中のものです。 [2006/01/17(火) 17:16:07 ID:jNVA85J7]
- おお!?
そうなのですか 全然知りませんでした^^: すみませんでした そっちに行きます
- 190 名前:名前は開発中のものです。 mailto:sage [2006/01/18(水) 06:35:27 ID: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 です
- 191 名前:名前は開発中のものです。 mailto:sage [2006/01/18(水) 10:53:20 ID:c2N1wZsa]
- もしかして普通のJavaスレと勘違いしてる?
- 192 名前:名前は開発中のものです。 [2006/01/23(月) 17:40:02 ID:kW9KAIGh]
- サーブレットとかJSPでゲームを作るのは無理ですか?
- 193 名前:名前は開発中のものです。 mailto:sage [2006/01/23(月) 17:48:15 ID:yJIlIQCh]
- WEBアプリのゲームはあるから無理ではないけど
別にたいした仕組みが必要になるわけでもないと思われ
- 194 名前:名前は開発中のものです。 mailto:sage [2006/01/23(月) 22:17:38 ID:/EcVc25a]
- シューティングでインタープリターをつくろうと思ったのですが
文法をどうやって決めればいいのか、どう実行させればいいのか いまいち想像できません。 敵の出現まではできそうですが、敵の弾の設定(どんな弾を、いつだすか)を インタープリターでどう表現したらいいのでしょうか?
- 195 名前:名前は開発中のものです。 mailto:sage [2006/01/23(月) 22:27:55 ID:I0QlWZ4d]
- >>192
WEBブラウザで行うCGIゲームライクなものなら当然可能。 というか、漏れ自身が現在進行形で作成中。
- 196 名前:名前は開発中のものです。 mailto:sage [2006/01/23(月) 22:46:33 ID:tL3TpBsR]
- >>194
なんか設計に悩んでるっぽいことはわかった。 その調子でがんばれ。
- 197 名前:名前は開発中のものです。 mailto:sage [2006/01/23(月) 22:49:50 ID:yJIlIQCh]
- >>194
まずは敵のクラス内で処理してみれば? それを外に出したほうがいいか、ださないほうがいいかは案件しだい
- 198 名前:名前は開発中のものです。 mailto:sage [2006/01/24(火) 14:41:32 ID:vo2dZIRF]
- インタープリターよりも簡単なコードジェネレータの方がいいんじゃない?
- 199 名前:名前は開発中のものです。 mailto:sage [2006/01/26(木) 15:59:14 ID: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 名前:名前は開発中のものです。 mailto:sage [2006/01/26(木) 16:52:43 ID:ITPJnSj3]
- >>199
まず根本的なことからなおしましょう キーのイベントで処理は入れないように メインループでのみ処理するようにしてください イベントではフラグの上げ下げのみで
- 201 名前:199 mailto:sage [2006/01/26(木) 23:31:16 ID:Pd3Qgsdn]
- >>200
サンクス。できるようになりました。
- 202 名前:まほろば ◆BmUbLWewsM mailto:age [2006/01/28(土) 18:36:32 ID:K+4gOIY6]
- いやーこのスレは役にたつなー。。
ところで、classファイルからソースコードを盗まれないようにするにはどうしたらいいんでしょ。。
- 203 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 18:42:43 ID:u3ZzJuZS]
- 正直それはあきらめろ
クラスローダ自作したところで実行中のメモリのぞかれれば意味なし nproではじくとかやると誰も使うやつはいなくなるぞ ネイティブバイナリでもコンパイラの癖とあたりつければそれなりに追えるんだし・・・とわりきれ その分開発効率がいいんだからガンガンものづくりに専念しなさいといいたい オンラインゲーなら毎日こまめにクラスを再配布していれば大丈夫かと
- 204 名前:まほろば ◆BmUbLWewsM mailto:age [2006/01/28(土) 21:29:17 ID:K+4gOIY6]
- >>203
実行中のメモリのぞかれれば意味なし そんな事出きるの?ソースは? やろうと思えばできるとか妄想でつか?
- 205 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 21:37:25 ID:EnQtmKxX]
- >>204
メモリ覗くだけならWindows上で実行しちゃえば簡単だろうけど、 手軽に解析って話は俺も聞いたこと無いな。 うちの会社はDashOとかいうバカ高い難読化ツールを買った。 そんな必要無ぇって主張は通らなかった。
- 206 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 22:44:25 ID:PUcSGIMg]
- 読みやすくしてくれるツールはありませんか。
- 207 名前:名前は開発中のものです。 mailto:sage [2006/01/28(土) 23:06:37 ID:u3ZzJuZS]
- >>204
多少は調べろ クラスロードした後はざる
- 208 名前:まほろば ◆BmUbLWewsM [2006/01/28(土) 23:57:58 ID:K+4gOIY6]
- >>207
- 209 名前:名前は開発中のものです。 mailto:sage [2006/01/29(日) 01:11:24 ID:1KG7yFUT]
- 結局いいスレだったのをコテハンが壊したってことか。
- 210 名前:名前は開発中のものです。 mailto:sage [2006/01/29(日) 02:35:06 ID:PecoYXTp]
- もう大学生は春休みか……
いいご身分だなぁ。
- 211 名前:名前は開発中のものです。 mailto:sage [2006/01/29(日) 12:34:08 ID:FRX/ORuz]
- 低脳だから卒業後ニート行きで
さらに良いご身分だな
- 212 名前:まほろば ◆BmUbLWewsM [2006/01/29(日) 13:24:43 ID:LX0lKjST]
- まったくだなww
- 213 名前:名前は開発中のものです。 [2006/01/29(日) 17:14:26 ID:zbiz4Pm/]
- GraphicsクラスのdrawImageで浮動小数点数を使う方法って何かない?
ゲームのキャラクターを表示させるためにはint型では精度が悪いんで。
- 214 名前:まほろば ◆BmUbLWewsM [2006/01/29(日) 17:28:00 ID:LX0lKjST]
- ないよ。javadoc見りゃ分かるじゃん。。
- 215 名前:名前は開発中のものです。 mailto:sage [2006/01/29(日) 17:45:07 ID:ec+1eYbr]
- >>213
そういうときは大きいバッファを持つことで回避する 320*240の画像を0.5単位で扱いたいときは640*480とかね drawRenderedImageとかtranslateを使う方法もあるが 用途がゲームなら使わないほうがすっきりしていいと思われ
- 216 名前:名前は開発中のものです。 mailto:sage [2006/01/29(日) 17:57:12 ID: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 名前:名前は開発中のものです。 mailto:sage [2006/01/29(日) 21:48:41 ID:qPM3IQVC]
- 正男ってjava?
- 218 名前:名前は開発中のものです。 [2006/02/01(水) 20:44:05 ID:W1eX6IZO]
- Javaアプレットでしょ
- 219 名前:名前は開発中のものです。 [2006/02/05(日) 00:25:12 ID: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 名前:名前は開発中のものです。 mailto:sage [2006/02/05(日) 00:52:34 ID:NFbwVJ0F]
- フルスクリーン使ってるならSwingのイベントモデルにはこだわらないのが普通
BufferStrategyってのをしらべてごらん ようは好きなタイミングで描画が出来るのだ
- 221 名前:名前は開発中のものです。 [2006/02/05(日) 01:21:52 ID:LCSDYznu]
- ありがとうございます。
やっぱそれですか。そうかもと思って実装始めたらできました。 frame.createBufferStrategy(2); とやってpaintComponent(g)をdraw(g)にかえて BufferStrategy strategy = window.getBufferStrategy(); Graphics g = strategy.getDrawGraphics(); draw(g); g.dispose(); でうまく描画できました。
- 222 名前:219 [2006/02/05(日) 01:30:28 ID:LCSDYznu]
- もう一つあるのでアドバイスいただけるとうれしいです。
Window window = device.getFullScreenWindow(); window.add(JPanelオブジェクト); とやってフルスクリーン上にパネルを置いています。 こうするとパネルがちらついてしまうのですが対策はあるでしょうか。
- 223 名前:名前は開発中のものです。 mailto:sage [2006/02/05(日) 01:52:48 ID:8ByMu9YS]
- まずパネルをおく必要はない
ウインドウ全体を使って描画してるから
- 224 名前:219 [2006/02/05(日) 09:38:19 ID:LCSDYznu]
- コマンド選択パネルみたいに使っているんですが。
フルスクリーン上でスペース押すと右上にパネルが表示されます。 KeyboardListenerを実装してるのでキー入力はそのパネルが奪い パネルを消すともとのフルスクリーン上にキー入力がいくという感じです。 パネルじゃなくてCanvasでもいいんですがどうもちらつきます・・・ パネルで何も描画しなくてもちらつくということはフルスクリーンにしてる JFrame上にコンテナは置いちゃだめということでしょうか。
- 225 名前:名前は開発中のものです。 mailto:sage [2006/02/05(日) 12:29:26 ID:8ByMu9YS]
- おいてはいけないということはないが、BufferStrategyはつかえんぞ
- 226 名前:219 [2006/02/05(日) 13:00:29 ID:LCSDYznu]
- そうですか・・・ボタンやらも全部だめだったのでBufferStrategyの描画領域にコンポーネントは配置してもちらついてしまうみたいですね。
あきらめてパネル風のウィンドウを描画することにします。
- 227 名前:名前は開発中のものです。 mailto:sage [2006/02/05(日) 13:25:23 ID:8ByMu9YS]
- ゲーム目的ならコンポーネントの描画は避けるべきだな
すべて自前で描画しないとリフレッシュとかのタイミングがコントロールできん
- 228 名前:名前は開発中のものです。 mailto:sage [2006/02/05(日) 14:37:09 ID:15xceU0H]
- 便乗だけど、フルスクリーンで文字の入力はどうすればいいの?
英語だけなら楽勝かもしれないけど、漢字変換とかどうすればいいのかさぱーり。 以前コンポーネント埋め込んだら酷いことになって諦めてた
- 229 名前:名前は開発中のものです。 [2006/02/05(日) 14:40:46 ID:LCSDYznu]
- MMORPGの市販ゲームとかできてるからやり方あるんだろうけど。Javaだとどうなるんだろ。自分も知りたい。
- 230 名前:名前は開発中のものです。 mailto:sage [2006/02/05(日) 15:23:24 ID:8ByMu9YS]
- MMORPGの場合フルスクリーンでもただすべての画面を占有するだけ
といった作りかたしてると思われ JavaでやろうとするならBufferStrategyをあきらめるほうがいいだろうね JPanelに画面部分を描画、paintComponentでバックバッファから自前で転送
- 231 名前:名前は開発中のものです。 mailto:sage [2006/02/05(日) 17:31:23 ID:XoC15JKP]
-
LWJGLやJOGLで日本語文字を画面に表示するにはどうしたらいいんでしょうか。 LWJGLにAWTGLCanvasっていうのがあって、これを使えばできそうなんですが、 サンプルがなく使い方がいまいち分かりません。 みんなはどうやっているんだろう。 以前Graphics2Dでゲーム作ろうと思ったけど、アルファブレンド処理がソフトウェア描画に なったので、LWJGLに移ったんですが。 うううーーーん
- 232 名前:名前は開発中のものです。 mailto:sage [2006/02/05(日) 17:43:24 ID:8ByMu9YS]
- 基本はDirectDrawだからな
一応オプションでDirect3Dで動作させればアルファブレンドもハードウェアになるが レンダリング品質の問題とか通常一番使うブリットが遅いとかJava2Dベースでは 通常合成しか出来ないとかが問題になるからな LWJGLはまったくさわったことがないのでわからん JOGLはOpenGLそのままだね 俺が触ったときはSDLとのリンクが未実装だったので対象には上がらなかったが Java3Dは高級すぎてゲーム用途にはまったく使えないという感じだった 速度がまったくでないことやピクセル単位の処理という感じではなかった ただ、軽く触っただけなのでなんともいえない 2Dゲームならソフトウェアによるアルファブレンドが問題になるほど遅い場面は少ないとは思う
- 233 名前:名前は開発中のものです。 mailto:sage [2006/02/05(日) 19:35:20 ID:XoC15JKP]
-
>>232 640x480の画面に32x32のマップをひきつめただけですでに40FPSだったんですよね Graphics2D。。。 やっぱりC++の方がゲーム開発はいいのかなぁ・・・ 開発効率はJavaの方がはるかにいいんですけどね 何かJOGLやLWJGLに近い速度がでるゲーム用ライブラリって ないんでしょうか
|

|