Javaでゲーム作成 2本目
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/10/27(木) 09:43:50ID:dzSvRQXEゲーム作成以外の話題はム板(http://pc8.2ch.net/tech/)、
他言語に関する話題は他スレでお願いします。
前スレ
JAVAでゲーム作成
http://pc8.2ch.net/test/read.cgi/gamedev/1074347252/
テンプレは>>1->>10あたりを参照
0012名前は開発中のものです。
2005/10/31(月) 23:39:48ID:u6e5CoZ+ある画像image1を90度回転させてimage2に保存するにはどうしたらよいでしょうか?
0013名前は開発中のものです。
2005/10/31(月) 23:56:08ID:imBdURi1基本的な考え方としては、新しい BufferedImage を作成して
そこから createGraphics()で Graphics2D コンテクストを取得する。
そこにオリジナル画像を AffineTransform で90度回転して描画、
んでファイル書き出し。
0014名前は開発中のものです。
2005/11/01(火) 00:30:00ID:9pR/2Iza0015名前は開発中のものです。
2005/11/02(水) 22:39:55ID:l4YhQp0J0016名前は開発中のものです。
2005/11/02(水) 23:48:22ID:DUZczgaE業務系ではなくゲームの場合、少ない知識の組み合わせで目的の結果を得る想像力は大事だと思う。
0017名前は開発中のものです。
2005/11/03(木) 02:58:58ID:urWJhpS30018名前は開発中のものです。
2005/11/03(木) 06:40:04ID:9Sm6/yeXJavaを覚え始めた頃、
Toolkit.getImage → PixelGrabber → MemoryImageSource
の流れはあまり簡単には思えなかった。catch しなきゃならない例外もあるしね。
WindowsでもDIB関係に戸惑ったし、ロジックはわかってるのに肝心な入出力
がらみのライブラリが未修得でイライラすることが良くある。
0019名前は開発中のものです。
2005/11/03(木) 13:46:35ID:urWJhpS3素でDIBつかうよりインテリジェントにラッピングしてくれる
0020名前は開発中のものです。
2005/11/03(木) 14:05:31ID:WOWA/OPZjavaで人工知能(チャットでよくある人口無能みたいなやつで入力
した単語に返答してくれるみたいな」)っぽいのつくれますか?
せっかく高校で習っているので勉強だけじゃなくてなにか役立てたいのですが・・・・
0021名前は開発中のものです。
2005/11/03(木) 14:09:06ID:urWJhpS30022名前は開発中のものです。
2005/11/03(木) 14:16:55ID:WOWA/OPZレスさんくすです。
ALは2次元配列までしか理解していませんが頑張って見ます
0023名前は開発中のものです。
2005/11/03(木) 14:51:49ID:yzYzVhNJ0024名前は開発中のものです。
2005/11/03(木) 15:25:40ID:rL8Q+mgG0025名前は開発中のものです。
2005/11/03(木) 15:30:20ID:rL8Q+mgG人工知能と人口無能じゃ大違いだが、とりあえず
Javaだから作れる、とか作れない、とかはない。
自然言語処理等の勉強をすれば色々な言語で作れる。
0026名前は開発中のものです。
2005/11/03(木) 17:22:53ID:MCCIxjg4ttp://javagame.main.jp/index.html#minigame
にJavaで作ったサンプル例がある。
でもテキスト扱うのはPerlとかRubyの方が簡単だろうな。Javaだと無駄に難しそう。
0027名前は開発中のものです。
2005/11/03(木) 17:27:23ID:urWJhpS30028名前は開発中のものです。
2005/11/03(木) 17:27:41ID:mPH84WWPMyJxtaのソースの一部にEliza(人工無脳っぽいプログラム)
の機能があったと思う
Ruby向けだけど
ttp://book.mycom.co.jp/book/4-8399-1729-9/4-8399-1729-9.shtml
人工無脳ではないけどJava向け
ttp://www.amazon.co.jp/exec/obidos/ASIN/4339023876/249-1065135-4693961
0029名前は開発中のものです。
2005/11/03(木) 17:56:04ID:MCCIxjg4正規表現の使い方がJavaだと面倒くさい
0030名前は開発中のものです。
2005/11/03(木) 19:20:15ID:urWJhpS30031名前は開発中のものです。
2005/11/04(金) 22:15:45ID:Kyfrg/8g0032名前は開発中のものです。
2005/11/04(金) 22:28:24ID:SFh7BoY4ちょっと大きなプログラムになるとデバッグ時間が指数関数的に増えるし
半年も経つと自分で書いたソースでも完全意味不明に見えるのは困るな
0033名前は開発中のものです。
2005/11/04(金) 22:52:05ID:qJSgT1NL業務アプリみたいな巨大な物をメンテナンスすると死にそうになる。
最近のPerlは知らんが。
0034名前は開発中のものです。
2005/11/04(金) 23:16:25ID:BPGzYPZFなんだの、いろいろ出しすぎw
0035名前は開発中のものです。
2005/11/04(金) 23:20:17ID:ukNdIpNn得意不得意はそれぞれあるし、目標とするものが違うからな。
0036名前は開発中のものです。
2005/11/05(土) 08:59:55ID:nyk5I5ZLJavaは最先端の実験言語みたいだな。大学の研究でよく使われるからかも。
0037名前は開発中のものです。
2005/11/05(土) 13:00:36ID:3XtwtUcI大学の研究でよく使われるのもあるけど、
Apacheを筆頭に無数のオープンソース開発者がいるからだと思うぞ。
0038名前は開発中のものです。
2005/11/05(土) 14:22:37ID:bFW/1MqR問題はこのスレに関係があるライブラリはなさそうなことくらいか
まぁApache XML-RPCは目的によっては使えるか
0039名前は開発中のものです。
2005/11/05(土) 15:12:24ID:JuIHCGWgシミュレーションとかちまちましたデータ中心ならXMLデータバイディングとか
かなり使えそうとか思うけど。
自分の場合はついついインタプリタ仕込む癖がある。
0040名前は開発中のものです。
2005/11/05(土) 15:14:53ID:bFW/1MqRゲームつくろうって人間は自前で実装が多いと思われ
なんせ、ばらす必要はなくてたとえばList<Element>でもっていけば、
Beansとちがって仕様変更に強かったり、例外処理がしやすかったりする
0041名前は開発中のものです。
2005/11/07(月) 02:44:21ID:vwx0ALlqWikiはPerlで作ったのをコピーしてるからそうなっているんだと思うけど
これが、Perl文化かと思ったよ
0042名前は開発中のものです。
2005/11/15(火) 23:05:03ID:P0cI9ezkそれをJavaで再生したらどえらいことになったりする?
Wavのがディスク食うだけでいいから安定するのかな?
0043名前は開発中のものです。
2005/11/15(火) 23:12:48ID:ShfCvdFQ0044名前は開発中のものです。
2005/11/15(火) 23:19:48ID:P0cI9ezk0045名前は開発中のものです。
2005/11/15(火) 23:33:03ID:Wrh6FbhN>>11のを見る限りCPU使用率は1GHzで1,2%ってところでは?
0046名前は開発中のものです。
2005/11/17(木) 20:29:55ID:8R2XVZPEdevice.setFullScreenWindow(null);
System.exit(0);
とやって終わらせると画面真っ黒になって操作不能になることが
あるのですが、なる理由がわかりません。
あと、フルスクリーンにするときそこで処理が止まってctlALTDelで終わるしかない
ときもあるのですがどうすればよいのですか?
1_4_2です。
0047名前は開発中のものです。
2005/11/17(木) 20:35:02ID:2shdXMro問題はないはずだけど
ベータのときはnullわたしたやつはダメだったけどね
今は大丈夫だったと思ったけど
あとはチップとビデオドライバによるかも
安定してDirectX動いてる?
0048名前は開発中のものです。
2005/11/17(木) 21:44:27ID:8R2XVZPEPC初心者板逝きですか?
0049名前は開発中のものです。
2005/11/17(木) 23:38:12ID:2shdXMroこれをコメント化してみたら?
あとは他のJavaのフルスクリーンのゲーム試してみるとかどうかな
005046
2005/11/18(金) 20:45:39ID:Jjzsx+o7とりあえず動くのでよしとすることにしました。
ですが背景を付けてみると
ぱちぱちしてとても目に悪いことこの上ないという状況になりました。
これがちらつきというのでしょうか?
BufferStrategyは使っているのですがどうすれば改善するのでしょうか?
0051名前は開発中のものです。
2005/11/18(金) 21:13:51ID:bdg3zZZwちらつくことはないと思うんだが、他のアプリでもちらついてるの?
0052名前は開発中のものです。
2005/11/18(金) 21:16:43ID:yEqWeMq10053名前は開発中のものです。
2005/11/18(金) 21:24:56ID:bdg3zZZwウインドウモードはフリッピングのフラグが降りてブリットのフラグがたってるはずだろ
005446
2005/11/18(金) 22:02:38ID:Jjzsx+o7他にはコマンドプロンプトしか動かしてません。
ちらつくときとちらつかないときがあるのですが
背景を付けると100%ちらつくこの状況。
フルスクリーンを諦めるしかないのか
0055名前は開発中のものです。
2005/11/18(金) 22:16:33ID:bdg3zZZw005646
2005/11/19(土) 06:56:25ID:59ba+Epeもの(Java)、百本ゲームのゲームは問題なく動きます。
0057名前は開発中のものです。
2005/11/19(土) 13:09:03ID:BsSsGwkc005846
2005/11/19(土) 13:40:21ID:59ba+Epe渡していたことが発覚。
正直すみませんでした。
ちらつきは直りましたが、それ以前の操作不能になること
がある時があるのはわからない。
これもどこか自分のが悪いのだろうか。
0059名前は開発中のものです。
2005/11/20(日) 02:35:57ID:PktMjKAY一言アドバイス
発覚したってことは他も可能性アリ
煮詰まってそうだけど、連レスしてないで
とりあえずもちつけ
で、もっかいソースとにらめっこしてみようぜ!
0060名前は開発中のものです。
2005/11/26(土) 22:10:42ID:wK3zX5BN馴らしたSEの人が設計してくれるならコードは手伝うよ
0061名前は開発中のものです。
2005/11/26(土) 22:25:05ID:sU6iOuYIツクールにしてもダンテのようにフラグだけでいいのか、スクリプトでいいのか
スクリプトなら次期バージョンで標準実装だとか
出だしはコードと設計は同一者でひっぱっていくくらいじゃないと
オープンソースなプロジェクトは成功しないと思われ
SEだ、プログラマだといったすみわけはいらない
まず、>>60がJavaでスタンドアロンのゲームを作れるかどうかという点がポイントになる
0062名前は開発中のものです。
2005/11/26(土) 22:53:12ID:wK3zX5BNすまん。実は業務系でSwingは勉強中なんだ。
0063名前は開発中のものです。
2005/11/26(土) 22:56:43ID:sU6iOuYI業務系でJavaさわってるならまず言語の基本は問題ないとして
Java2Dを筆頭にフルスクリーンとか時間管理、JavaSoundあたりが触れるようになるといいね
0064名前は開発中のものです。
2005/11/26(土) 22:56:47ID:WkbR04YYAffineTransform form = new AffineTransform();
draw(){
form.rotate(x*Math.PI/180,画像の幅/2,画像の高さ/2);
画像イメージの描画オブジェクト.drawRenderedImage(画像イメージ,form);
描画先の描画オブジェクト.drawImage(画像イメージ,null,gx,gy);
}
というふうにすると、背景が透明なでただ↓と描かれている画像を使うと背景が黒くなり矢印が見えなくなります。
また、横長い画像をつかって見ると画像の中心に
画像の高さを直径に丸くなって回転をし
その丸以外の部分が白くなってしまうんです。
ただ画像をその場で回転させて
表示させたいんですがどうすればいいんでしょうか?
0065名前は開発中のものです。
2005/11/26(土) 23:04:49ID:wK3zX5BN最初はCっぽくなるかも知れないけどやってみる。
0066名前は開発中のものです。
2005/11/26(土) 23:11:28ID:sU6iOuYIもちつけ
なんか日本語が分かりにくいぞ
まずGraphics2Dのrotateメソッドを使ってみて描画してもおかしいかチェック
それに画像イメージってやつをを上書きしてしまってるように見える
0067名前は開発中のものです。
2005/11/26(土) 23:29:16ID:PhHUEMA7Flash やツクールみたいのはゲームどうこうより、
アプリとしての設計の方が100倍重要だと思うけどなー
エンドユーザ的意見としては、時間制御 UI は Flash じゃなくて
AfteEffects を参考にして欲しいと願う。
Shape エディタがあったら超便利なのにと思う事は多々あるので
正直これはかなり興味ある。
そのうち Sun が出すんじゃねーかとか思ってたけど全然だし。
このへんは現状だと SVG (Illustrator -> Batik) とかになるんだろうけど
こっち方面は面倒すぎて手が出せん。
0068名前は開発中のものです。
2005/11/27(日) 00:07:17ID:XSFMA6v60069名前は開発中のものです。
2005/11/27(日) 00:25:55ID:H8JPzJcwJava基本機能だけのベースとしてはかなりいい材料と思う。
http://www.brackeen.com/javagamebook/
0070名前は開発中のものです。
2005/11/27(日) 01:11:36ID:bXtTt1i7すごいね。いい勉強になりそう。
TimerとGraphics2Dでアニメくらいは出きるからちょこちょこ学んでみるよ。
0071名前は開発中のものです。
2005/11/27(日) 01:13:57ID:laCqt6jfそれは多分作ってほしいと思うもの違いがあるのかも。
オレが想像したのは、エンジンはメタなインターフェイスを提供して
ゲーム的なエッセンスはエンドユーザが作るって形のものだから。
んで実際の所、描画の最適化とか絶対に必要になるけど、
それがゲームに限った話かと言われると微妙な気がするのよ。
むかーし似たようなモン作ろうとしたけど (作りかけたま放置)
必要としたゲーム的な知識ってタイマーの使い方くらいだった。
>>70
とりあえずガンガレ!
0072名前は開発中のものです。
2005/11/27(日) 01:16:07ID:XSFMA6v6スレッドプールとか5.0で標準で実装されてるのもあるし注意な
とくにJavaSoundのストリームと偽ったところはなめてる感じ
0073名前は開発中のものです。
2005/12/05(月) 22:23:20ID:DrFNVWzVそのImageのなにも描いてない部分を透過させるにはどうしたらよいのですか?
0074名前は開発中のものです。
2005/12/05(月) 23:52:46ID:YnmMxKVzBufferedImage(int, int, int)で
3番目の引数にBufferedImage.TYPE_4BYTE_ABGR指定で透明になるかな?
0075名前は開発中のものです。
2005/12/06(火) 12:56:55ID:m90gA8zy0076名前は開発中のものです。
2005/12/06(火) 18:51:26ID:vSoUCqBNうまくいきました。ありがとうございます。
しかしcIearRectするとダメなようです。
画像を回転させるために仮Imageを作って
それに画像を描画してそのImageを回転させる
という風に考えていたのですが他の方法を考えます。
0077名前は開発中のものです。
2005/12/06(火) 19:04:14ID:m90gA8zy0078名前は開発中のものです。
2005/12/06(火) 19:42:22ID:vSoUCqBNtmp.lotate(chara,characenter.x,characenter.y);
g.drawImage(chara,null,charagx,charagy);
てな感じにやってたんですけど、なぜか全く回転しなかったので
仮画像を作ってそれを回転させるという風にしました。
0079名前は開発中のものです。
2005/12/06(火) 20:43:53ID:m90gA8zyすでに描画されてるのはどうしようもない
0080名前は開発中のものです。
2005/12/06(火) 20:51:15ID:57K4+g+RGraphics2Dオブジェクトに描画でできんのかな
0081名前は開発中のものです。
2005/12/07(水) 00:29:46ID:R+Rh6YVG皆様から頂いた助言を活かすことができません。
少し、具体例を用いて説明して頂けいませんか?
0082名前は開発中のものです。
2005/12/07(水) 00:59:31ID:xiUT9nsP2・描画先を回転させます
3・ロードした画像を描画します
0083名前は開発中のものです。
2005/12/07(水) 01:56:14ID:SEfUp1TO指定された絵を完成させるゲームをイメージしてみるとか。
0084名前は開発中のものです。
2005/12/07(水) 06:51:27ID:R+Rh6YVGつまり、描画先を回転させて
そこに描画して、回転させた分
逆回転させて他はもと通り、と解釈して実行し
成功致しました。ありがとうございます。
しかし、これは斜めになったとき
四角の余白が黒くなってしまいます。
これの解決方法はどうすればよいのでしょう?
背景を再び描画も考えましたが
回転させたものが塗り潰されてしまいます。
0085名前は開発中のものです。
2005/12/07(水) 09:35:30ID:hZztkAcv先に塗り潰すという発想がでてこんのだ。
0086名前は開発中のものです。
2005/12/07(水) 19:03:18ID:R+Rh6YVG______
|■/ \■|
↑回転した画像
て感じにうえの部分に黒い部分ができてしまうんです。
さて、どうしたものか?
0087名前は開発中のものです。
2005/12/07(水) 19:17:03ID:ruXn40F60088名前は開発中のものです。
2005/12/08(木) 14:23:17ID:wcnvECNEg.rotate(time*PI/,characenter.x,characenter.y);
g.drawImage(chara,null,gx,gy);
g.rotate(-time*PI/,characenter.x,characenter.y);
time++;
これでいいんですよね?
0089名前は開発中のものです。
2005/12/08(木) 15:51:44ID:Voeburfjprotected 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 の使い方はわすれた。
0090名前は開発中のものです。
2005/12/08(木) 16:27:30ID:+Z+rNNsb背景黒く塗ってるっぽいから黒くなるのは正しい動作だとみたが?
009188
2005/12/08(木) 20:08:36ID:wcnvECNE>>89
すみません。このコードの前に
int time=1;
double PI = Math.PI;
ってあって
time*PI/は
time*PI/180の間違いです。
そしてそのコードを実行した結果
見事指定した座標を中心にぐるぐると
私がしたいのはその場を動かずに回ることだったのですが。
というかこれでも黒い部分でてきました。すみません。
>>90
g.setColor(Color.GREEN);
って事前にやってたんです。
0092名前は開発中のものです。
2005/12/08(木) 20:58:51ID:+Z+rNNsb該当部分のソースを最小限にしてコンパイルできるものを出したほうがいいんじゃね?
0093名前は開発中のものです。
2005/12/08(木) 21:03:25ID:HtN2IVyaプロジェクト > games > games-middleware > genuts
ttp://www.genuts.com/
Genuts Cheese Indigestion Puzzle
オモシロスwww
0094名前は開発中のものです。
2005/12/09(金) 01:58:21ID:DR3+EYk2XML? properties?
0095名前は開発中のものです。
2005/12/09(金) 02:29:57ID:HsQzl6B+0096名前は開発中のものです。
2005/12/09(金) 12:27:40ID:wi5fEo9o修正もこまめに入ると思うし、文字だけじゃなくてたのパラメータも必要になると思うから
XMLが汎用性では一番かと
0097名前は開発中のものです。
2005/12/09(金) 17:53:50ID:3zLl7jhnttp://fivedots.coe.psu.ac.th/~ad/jg/ch1/index.html
0098名前は開発中のものです。
2005/12/09(金) 23:37:39ID:6Nnex+8J0099名前は開発中のものです。
2005/12/09(金) 23:40:17ID:HsQzl6B+0100名前は開発中のものです。
2005/12/10(土) 00:04:18ID:KuqpST++内部ではElementでつかうのがいい
010197
2005/12/10(土) 21:23:28ID:h8wANggUttp://fivedots.coe.psu.ac.th/~ad/jg/ch04/index.html
Graphics2Dは知らないお^^;
0102名前は開発中のものです。
2005/12/10(土) 22:25:02ID:KuqpST++ただ、普段以上にメモリ使用量は把握していかないと駄目
GCがかなり増えるから
速度が必要な場合あらかじめ回転させておくとかが必要になるね
アクセラレーションきかないから
0103名前は開発中のものです。
2005/12/10(土) 22:27:15ID:MpQxaKQL0104名前は開発中のものです。
2005/12/10(土) 22:35:58ID:KuqpST++Java2Dって高級すぎるAPIなんでどれがアクセラレーションきいて、どれがきかないのか
チェックするのが大事
基本的に速度は1.4.2と5.0でかわってないよ
アクセラレーションがきけば秒間にスプライトが万単位で描画できるはずだが
やることをかえるとこれが一気に1/100以下に下がったりする
0105名前は開発中のものです。
2005/12/10(土) 23:04:18ID:MpQxaKQL昔ながらのアナログ手法にしとくか
0106名前は開発中のものです。
2005/12/11(日) 01:01:17ID:xyghd8DO60fpsで128*128の回転スプライトが1000個は無理だと思う
010794
2005/12/11(日) 12:16:09ID:hWRTdhf0>>100
XMLの方が柔軟性があって良いということですね。
propertiesは簡単な設定の保存程度にしておいた方が良いのかもしれませんね。
ありがとうございます。
0108名前は開発中のものです。
2005/12/11(日) 14:37:45ID:ohNVp0t4400MHz、64MB、VRAM8Mでどこまで出来るかがポイントだな。
まあ回転なんてギャラガとか作ろうと思わなければ使わないけど。
0109名前は開発中のものです。
2005/12/11(日) 15:20:14ID:xyghd8DOVRAM8MってことはTNTとかあのあたりかな
ならアクセラレーションの速度も問題にならない
メインメモリ64Mが一番のネックかと
GCの調整はプロファイラとにらめっこになるね
ヒープサイズ自体を24M以下に抑えてももVM方面で厳しい
1.4.2のほうがメモリ消費は少ないからそっちのほうがオススメか
Pen3/1GHz+統合ビデオでテストしてみたけど
上で上がってた2DSTGは60fpsでサクサク動いた
0110名前は開発中のものです。
2005/12/11(日) 17:02:52ID:5bLTV7mU遅レスだが、これいいよ
ttp://www.oreilly.com/catalog/java2d/
0111名前は開発中のものです。
2005/12/11(日) 17:06:21ID:xyghd8DO■ このスレッドは過去ログ倉庫に格納されています