JAVAでゲーム作成
■ このスレッドは過去ログ倉庫に格納されています
0001JAVA初心者・・・
04/01/17 22:47ID:eiE+Mw3o今年に入ってからJAVAでゲームを作ってみようと勉強しています。
どなたか宝さがしゲームを作るうえで参考になるゲームとツール知りませんか??
知っていたら教えてください。<(_ _)>ぺこり
0670名前は開発中のものです。
2005/06/08(水) 17:57:47ID:jswTX7ucEclipse上にプラグインとして公開して、
仕事しているようにゲームできることか。
どうよ
0671名前は開発中のものです。
2005/06/08(水) 18:03:07ID:2dFSgXt/OpenGL使いたいのならJOGL使ったほうが手っ取り早いかと
3D目的なら今の流れだとJava3Dのほうがいいかもしれんが
>>670
それならJBuilderでもNetBeansでもテキストエディタでも環境にあわせるだけでかまわんような
そもそもどうしてもゲーム画面が表示される瞬間があるわけでどーすんだよと
0672名前は開発中のものです。
2005/06/09(木) 02:49:56ID:IHGy2XMxヒント:Jad
0673名前は開発中のものです。
2005/06/11(土) 04:07:57ID:BS9m70FPてか実用的な逆コンパイラなんて初めて見た。不覚...
0674名前は開発中のものです。
2005/06/11(土) 10:07:51ID:GcEolZiW0675名前は開発中のものです。
2005/06/11(土) 21:32:54ID:wbD2CWIzオススメページってどこかないかな。
検索してもアプレットばっかりだし。
0676名前は開発中のものです。
2005/06/11(土) 21:38:59ID:pf44YaEx0677名前は開発中のものです。
2005/06/11(土) 23:33:05ID:QGGoJuurアプレットのほうが理解しにくいと思うんだけどなぁ
フレームワークであるという仕組みが分からないとかね
理解しないでアプリケーションに移行して画像のロードが出来ないんですけど、とか
アプレットじゃないと音楽が流せないんですけどとか
よくある話だが
0678名前は開発中のものです。
2005/06/12(日) 00:24:41ID:dLf08KQ4ttp://www.goldenstudios.or.id/
ttp://fivedots.coe.psu.ac.th/~ad/jg/
ttp://www.cokeandcode.com/index.php?page=resources
0679名前は開発中のものです。
2005/06/12(日) 03:14:21ID:LXUyz6JSおもしろいページばかりだ!
0680名前は開発中のものです。
2005/06/12(日) 09:22:26ID:KhhXkEWy0681名前は開発中のものです。
2005/06/12(日) 10:35:27ID:PH5G30Lu0682名前は開発中のものです。
2005/06/12(日) 11:21:17ID:FBVLqvgcありがとう。>>678の見ながら勉強するよ。
0683名前は開発中のものです。
2005/06/20(月) 17:09:26ID:OLasBkswこれ防ぐ方法はいまのところ何もないの?
0684名前は開発中のものです。
2005/06/20(月) 17:38:53ID:xz5FMksQ単純にGCのせいともいえない
ティアリングの可能性も高いし
綺麗に垂直同期とってもディスプレイのせいかもしれない
そもそもWinやMac,Linuxなんかは垂直同期とろうが
確実に引っかかりをとめる方法はない
0685名前は開発中のものです。
2005/06/21(火) 00:06:59ID:7pToadzn0686名前は開発中のものです。
2005/06/21(火) 00:46:47ID:gLIUZNPdおもしろいやつはけーん
もう数年前から可能ですが
0687名前は開発中のものです。
2005/06/21(火) 02:08:38ID:7pToadzn0688619 ◆pKT/RyrDCw
2005/06/21(火) 05:42:57ID:vl1dL1WYGCが原因ならJavaVMのオプションでVMのメモリの量を多くしたら
(一時的には)ひっかかりが解けます。
そうじゃなかったら他の原因だと思われ。
0689名前は開発中のものです。
2005/06/22(水) 07:02:51ID:LQPYyhFpもう一般向けのダウンロード出たね
http://www.apple.com/jp/ftp-info/reference/java2se50release1.html
0690名前は開発中のものです。
2005/06/23(木) 00:33:24ID:jP3VdD640691名前は開発中のものです。
2005/06/23(木) 03:19:47ID:0EAQ3U15簡単なサンプルで定期的に落ちるようならガベコレじゃないと思われ。
漏れもそれに困ってモニタのinf(だっけ?)を入れ替えたりしたけど、結局だめだった。
液晶ね。
関係ないけど、アプレットfpsが30以上にならないのはアプレットのせいだよね?
と便乗質問してみる始末。
0692名前は開発中のものです。
2005/06/23(木) 11:56:22ID:L4YwPNmI0693名前は開発中のものです。
2005/06/23(木) 12:12:05ID:A1Up2BL3これのせいかfpsが落ちたりするよね。IEだと問題ないけど。
0694名前は開発中のものです。
2005/06/24(金) 02:16:51ID:2dm7pYZBオクトツリーとかいうのを使ってみようと思った。
なんかメンドクサス
0695名前は開発中のものです。
2005/06/24(金) 05:10:17ID:Im1/sm4wSTGあたりならRectangleのあたり判定を使って自作でさくっと
スーパーマリオのようなアクションなら多少考える必要があるが
0696691
2005/06/25(土) 05:22:05ID:c8XAIbYrそか。うっとこではapplette viewerでも32fpsより短くならないんだけど、
教えてgoogleパワーでがむばってみる。
ありがトン。
0697名前は開発中のものです。
2005/06/25(土) 08:42:28ID:KxoU9hXJどんなこと考える必要ありますか?
敵(栗ボーとか)を配列に登録しておいてマリオが動くたびにすべての敵とあたっているか調べるってのじゃ遅すぎます?
0698名前は開発中のものです。
2005/06/25(土) 09:28:37ID:Q6O8Kliy0699名前は開発中のものです。
2005/06/25(土) 22:03:49ID:i7Vh4wJf最近のPCは力持ちだから極端に数が多くならない限りは
当たり判定処理を秒間10〜30回くらいなら平気でこなすよ。
もしこれ以上の精度が欲しいなら他の方法を使う必要があるけど
大抵はこれで十分だと思う。
0700名前は開発中のものです。
2005/06/26(日) 00:10:58ID:5IDbwQfw8bitのときは比較回数が100個くらいをこえるときつくなってきたな
16bit以上はもんだいにならんよ
Javaが動いている時点でわざと遅くするコードやオプションにしないかぎりまず大丈夫かと
0701名前は開発中のものです。
2005/06/26(日) 00:28:35ID:xA3Wpl2vそれぞれ画面内にいないときもAIで動いてるゲーム
キャラクターどうし:9 回
キャラクターと弾:10 * 20 = 200 回
キャラクターと地形:10 * 20 = 200 回
弾と地形:200 * 20 = 4,000 回
1フレーム内で 4,500 回の判定・・・
0702名前は開発中のものです。
2005/06/26(日) 01:38:32ID:5IDbwQfw100MHzいってないのならすまん
0703名前は開発中のものです。
2005/06/26(日) 08:30:26ID:R9cNrqzHd
何かすごく遅くなりそうだけど結構大丈夫なんですね。試してみます。
0704名前は開発中のものです。
2005/06/26(日) 12:22:05ID:2NQ+FlFkありますか?日本語のJavaゲーム本だと、内容が古いか携帯電話向け
ばかりで、英語なら結構出版されていますが、読めるかどうか…。
キャラクターはクラスにするのか?そのクラスは自身で描画する機能を
持つのか?持つなら対象のCanvasの情報はどう持たせるのか?など。
皆さんはどうしてますか?
0705名前は開発中のものです。
2005/06/26(日) 12:31:22ID:5IDbwQfw多態を使うのとコレクションを使えるようになればいいんじゃないか
0706名前は開発中のものです。
2005/06/26(日) 20:51:40ID:R9cNrqzH私もそこらへんすごく悩んだ。結局、キャラクターに描画機能もたせて、キャンバスへの参照はキャラクターのコンストラクタに引数で渡してます。
0707初期不良
2005/06/27(月) 09:20:24ID:sjyCFv/3それで悩むなら Visitor パターンいいんじゃない?
いい具合に整理できるかも。自己満足レベルかも知れんが。
0708名前は開発中のものです。
2005/06/27(月) 09:57:33ID:5sMCnoiVpaintとかdrawとかってメソッドでGraphicsを引数に取ればいい
そして呼び出し元がそれら描画オブジェクトをリストから取り出して順に描画させる
プライオリティもここできめれるし
0709名前は開発中のものです。
2005/06/29(水) 16:20:38ID:sZiDzWutメディアトラッカーに渡すモノが必要ですね。
他の人のソースを見ると、Appletで渡したり、Containerで渡したりしてる。
このへん意味も分からず人まねしてる。
クラスが一つしかない簡単なアプレットなら
g.drawImage(.....,this);で済むのに。
0710名前は開発中のものです。
2005/06/29(水) 19:06:02ID:Jz57RSZi5.0ならアクセラレーション聞きやすい環境ではあるけどコンパチブルなVolatileImageを
意識的に作る場合もある
イメージのロード命令ひとつでおわることはねぇな、ゲーム目的ならね
0711名前は開発中のものです。
2005/06/29(水) 19:32:24ID:tkZA2RNqクラスわけするとそこらへんが結構無駄に複雑になる気がする
0712名前は開発中のものです。
2005/07/17(日) 13:46:28ID:Cex8NEqAどういうテクニックを使えば、こういうなめらかな動きのアクションゲームをjavaで
できるのだろう??
--------
http://www.geocities.co.jp/SiliconValley-Sunnyvale/6003/ura/sisters2/
ちょいあシスターズ
アクションゲーム「ちょいあシスターズ」を公開しています。マ○オブラザーズをアレンジ
したもので、マウスとキーボードを使うことで2人同時プレイも可能です。
0713名前は開発中のものです。
2005/07/17(日) 14:57:55ID:TVccPhIn0714名前は開発中のものです。
2005/07/17(日) 21:51:17ID:IN1Lw/+sやってみた。
至って普通だな
0715名前は開発中のものです。
2005/07/17(日) 21:54:17ID:Cex8NEqA> テクニックも何もJavaは普通になめらかにうごかせるものだが
ええーッ、僕が知っているjavaゲームは、敵の数に反比例して速度が低下するのが
多いのだが。
普通だったのか?
0716名前は開発中のものです。
2005/07/17(日) 22:08:22ID:TVccPhInなんだよそれは
作り方が悪いだけだろ
60fpsで垂直同期取ったり滑らかに動いてるJavaのソフトだってあるぜ
0717名前は開発中のものです。
2005/07/17(日) 22:25:38ID:DvhZ5Df90718初期不良
2005/07/18(月) 06:27:33ID:pZiMlJXxこのゲームをぬるぽしてください
Tribal Trouble(リアルタイム3Dストラテジー)体験版
http://oddlabs.com/download.php
0719名前は開発中のものです。
2005/07/18(月) 13:03:07ID:uZqED97p0720名前は開発中のものです。
2005/07/21(木) 02:18:18ID:R+w7QC9R0721名前は開発中のものです。
2005/07/21(木) 02:35:11ID:R+w7QC9R0722名前は開発中のものです。
2005/07/21(木) 05:05:07ID:ttEileue0723名前は開発中のものです。
2005/07/21(木) 10:50:10ID:0da8GUHYサウンドノベルのような物を作るスクリプトは、
どこかで配布されていないのかな?
前に使っているサイトを見かけたんだけれども……。
0724名前は開発中のものです。
2005/07/21(木) 11:42:34ID:PX1CM5dLおれも昔あったような気がする。
Javaでわざわざやる必要が無いから無いんだろうね。
Flashのほうがそういう用途では作りやすいし使いやすい。
気力さえあればHTML+JavaScriptだけで行けるし。
0725名前は開発中のものです。
2005/07/21(木) 13:49:56ID:52Yxwi4f0726名前は開発中のものです。
2005/07/22(金) 01:15:00ID:34bxPQ7x2枚の Image から getGraphics() でグラフィクスを取得し、
それぞれに別の描画をしてから重ねることでいわゆるレイヤーみたいのを実装してみたんですが、
上に重ねるほうの Image のグラフィクスを
まっさらに戻す方法がわからず行き詰まってしまいました。
単純に上に重ねるほうの描画の最初で clearRect() を呼ぶと、
下のグラフィクスまでクリアされてしまいます。
描画内容が変わるたびに新しくグラフィクスを取得しなおすのは
パフォーマンス的にかなりデンジャラスでした(ゲームには致命的なほど)。
0727名前は開発中のものです。
2005/07/22(金) 01:31:17ID:34bxPQ7x0728名前は開発中のものです。
2005/07/22(金) 06:52:53ID:2/g0amAL描画元がVolatileImageを使うということはJ2SE5.0だと思うけど
まずピクセルフォーマットをコンパチブルで作っているのが条件
さらにアルファ0のピクセルを強制描画となるとアルファブレンドの設定をsrcに変える必要あり
この辺分かってないのならスプライトはBufferedImageで作るのがいいよ
速度的にクリティカルでないのならね
5.0なら体外アクセラレーションがきくので描画先だけVolatileImageでよい
0729名前は開発中のものです。
2005/07/22(金) 18:23:30ID:nqdltgNj0730名前は開発中のものです。
2005/07/22(金) 22:28:19ID:2/g0amALスプライトには使えないのだよ
0731名前は開発中のものです。
2005/07/23(土) 21:03:39ID:yrG67FHD0732名前は開発中のものです。
2005/07/24(日) 00:35:26ID:XT5QSyzVアクセラレーションがきく描画とアクセラレーションがきかない描画とで
APIがわかれていないからノウハウが必要。
速度を無視さえすれば一応どうとでも動くけどね。
DirectXを使って描画されたときとソフトウェア描画になったときとの差はさすがに激しい。
分からないときは描画先はVolatileImageで描画元はBufferedImageのBITMASK指定
にしておけば基本的に問題はない。
ただ、アルファブレンドとか考えるとソフトウェア描画具合によって描画先もBufferedImageに
おいたほうがいい場合もある。
など>>218の過去の日記とか参考になる。
1.4.2と5.0とは基本的には速度は変わってないそうだね。
0733名前は開発中のものです。
2005/07/27(水) 13:20:35ID:ix/c6kOA何の事だかさっぱり分かんねー
0734名前は開発中のものです。
2005/07/27(水) 13:44:30ID:MUqN45X50735名前は開発中のものです。
2005/08/06(土) 22:11:52ID:pinomsPpいいのですか?
シューティングを作っているのですが。
0736名前は開発中のものです。
2005/08/07(日) 01:41:13ID:7DUHzpYT0737名前は開発中のものです。
2005/08/07(日) 02:59:33ID:70Sdbjq90738名前は開発中のものです。
2005/08/07(日) 04:57:27ID:4HgBgmKIデータ構造に関する事なのか?
0739735
2005/08/07(日) 07:23:54ID:YgzkFRJY出なおして来ます。
0740名前は開発中のものです。
2005/08/07(日) 14:33:14ID:yCvqVkAo0741名前は開発中のものです。
2005/08/07(日) 16:09:28ID:gU2cgAEa彼は留学生なんだよ
0742名前は開発中のものです。
2005/08/07(日) 17:38:19ID:ORJAOx8r0743名前は開発中のものです。
2005/08/07(日) 18:29:55ID:JLSTZtKF0744名前は開発中のものです。
2005/08/07(日) 18:49:39ID:yCvqVkAoすごい理解力だな
だとしても難しく考えず多態がわかればそれでOK
JavaだけでなくC++でもオブジェクト指向言語ならね
C++でも関数ポインタ使うようではお話になりませぬ
0745名前は開発中のものです。
2005/08/07(日) 19:23:38ID:4HgBgmKIcommandSeq.add(commandB);
...
Command command = commandIter.next();
command.do();
みたいにして敵を動かしたいけど List とか Set とか Map とか色々あって
どれ使ったらいいか分らんって話かな?
0746名前は開発中のものです。
2005/08/09(火) 17:21:29ID:kPu+8l2oコマンドをオブジェクトにするなんて高級な発想ができるとは思えん・・・
0747名前は開発中のものです。
2005/08/12(金) 17:22:56ID:4rKVi55EJavaコレクションフレームワーク
ttp://www.amazon.co.jp/exec/obidos/ASIN/4797327057/250-0127530-6112251
0748名前は開発中のものです。
2005/08/12(金) 18:01:22ID:JHIWdaT40749名前は開発中のものです。
2005/08/15(月) 00:53:42ID:kKlH8VdwC++でもゲームだと普通にコールバック登録とかに使ってるね、関数ポインタ。
べつのスマートで高速な方法があるなら知りたいや。
0750名前は開発中のものです。
2005/08/15(月) 01:03:30ID:ESVCg1zy関数ポインタ使うなとは言わないけど。
0751名前は開発中のものです。
2005/08/15(月) 01:50:33ID:qn8FJw6T保守性と速度とでどっちをとるかなんだけど。
0752名前は開発中のものです。
2005/08/15(月) 16:02:35ID:UyuTTffG0753名前は開発中のものです。
2005/08/15(月) 18:16:25ID:C+etuN6IDLのページって英語ばかりで良く分からないし安全かどうかも分かりませんよね(汗;
0754名前は開発中のものです。
2005/08/15(月) 18:53:34ID:limOG/LRインストールできないってことは、まだ落としてないの?
JDK ダウンロード でぐぐって最初のページである下記サイトに行き、
ttp://java.sun.com/j2se/1.4.2/ja/download.html
・適当にドキュメントを読んでから「J2SE SDK のダウンロード」を選択
・Accept にチェックを入れて Continue
・自分の使用しているOSのインストーラをクリック(Windowsなら Windows Offline Installation, Multi-language)
で、あとはインストーラを実行するといいよ。
5.0が必要な場合も同様
ttp://java.sun.com/j2se/1.5.0/ja/download.html
0755名前は開発中のものです。
2005/08/16(火) 19:46:04ID:m8tb6mCHstatic Game gam;
と、宣言したもののメソッドを
使おうとしたらNullPointerException
が発生してしまうのですが
どうしたらよいのですか?
staticで宣言したら
newとかやらなくても使えるんですよね?
もしかして自分間違ってます?
0756名前は開発中のものです。
2005/08/16(火) 19:57:51ID:r7PJkQoA0757名前は開発中のものです。
2005/08/16(火) 19:59:31ID:BK5WFM6Gメソッドの宣言ではないなその書き方は。
フィールドの宣言だとしたら
それを宣言したクラスをHogeってすると
Hoge.gam
でアクセスできる。
ただ、staticにする必要があるかどうかをまず考えた方がいいよ。
0758755
2005/08/16(火) 20:56:19ID:m8tb6mCHそのクラスを呼び出すコンポーネントをHogeとして
static Hoge hoge;
と、キャラクラスでフィールド宣言して
そのHogeのメソッドを使おうとしてNullが
出てしまうんです。
こんな風にやってるのを参考にしてみたのですが、
キャラを呼び出すクラスをキャラの方で呼び出さないようにします。
0759名前は開発中のものです。
2005/08/16(火) 21:06:10ID:BK5WFM6Gおまいはすごい変な勘違いをしてる。
public class Test() {
static Hoge hoge;
..................
}
ってなクラスだったとすると、
hogeへのアクセスは
Test.hoge
になる。
でやりたいことは、Hogeのメソッドを使うことだとおもうんだが
その使いたいメソッドはStaticなのか?
たとえばキャラクラスが
public class Hoge() {
private int charPosX;
public int getCharPosX() {
....
}
とかだとすると
必ずhogeにはインスタンスを代入してあげないといけない。
hoge = new Hoge();
さっきのキャラクラスのメソッドが
public static int getCharPostX();
とかならメソッドにはアクセスできるはず。
ただ、Staicだからちゃんと考えて使わないと意図してないことになるぞ。
0760755
2005/08/16(火) 22:31:39ID:m8tb6mCHstaticな参照型のフィールドの持つ
メソッドを使うには、そのメソッドは
staticである必要があるということですか?
0761名前は開発中のものです。
2005/08/16(火) 23:13:00ID:BK5WFM6G違う。
staticについてかなり勘違いしてるな。
俺の書き方も悪かったかも知れない。
staticなフィールドへのアクセス方法 と
staticなフィールドのメソッドへのアクセス方法 とは別物。
方法は二つあるってこと。
hoge = new Hoge();
としてインスタンス化するか
アクセスしたいメソッドをstaticにするか。
このどちらか。
staticにするって事は、どの他のクラスからのアクセスでも、
参照できる値が同じであって欲しいって事だと思うのだけど、
そういうときはstaticを使わなくても実現できる。
Singletonパターンでググってみなさい。
0762名前は開発中のものです。
2005/08/16(火) 23:21:32ID:BK5WFM6Gシングルトンでも内部ではStatic使ってます。
0763名前は開発中のものです。
2005/08/16(火) 23:54:56ID:6Nhea8Nrいや、いいことだが
0764名前は開発中のものです。
2005/08/17(水) 00:44:12ID:K4BMijBi0765名前は開発中のものです。
2005/08/17(水) 01:02:01ID:CDbJt1VR0766名前は開発中のものです。
2005/08/17(水) 07:52:32ID:aplD8U3k0767755,758,760
2005/08/17(水) 21:06:34ID:9iZ8I7A5丁寧親切にありがとうございます。
実は初心者スレに最初に行ったのですが
上記の通り下手な質問だったので
まともに相手をされなかったのです。
初心者スレで聞けと思った方すみません。
答えて下さった方重ね重ねありがとうございました。
0768名前は開発中のものです。
2005/08/17(水) 21:33:35ID:CDbJt1VRstaticなメソッドってあまり使わない方がいいよ。
使うパターンは決まってて、
(static) finalな変数と引数だけしか内部で使わないような場合。
ユーティリティクラスとかでは多用する事になるかも。
そうじゃない場合は
volatileとかsynchronizedとかを使うことを念頭に置かないとまずい。
どういうときにこれを使うかがわからないなら
インスタンスを使う方法に統一するほうが変なエラーでなくて楽。
まぁスレッドとか使い始めたら嫌でも覚えるだろうけどね。
ところでうちのVSSサーバが飛んじゃってるんですが・・・・。
どうするんだろう・・・・。
0769名前は開発中のものです。
2005/08/17(水) 23:53:07ID:U8H63nuI0770名前は開発中のものです。
2005/08/18(木) 08:52:11ID:pZp+Mec7メソッドもstaticにして、
Game.メソッド
で、エラーが取れるような・・・
■ このスレッドは過去ログ倉庫に格納されています