[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 09/18 03:04 / Filesize : 50 KB / Number-of Response : 179
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【JAVA】2Dアクションゲームを作る【初級】



1 名前:ヤンス mailto:sage [04/09/08 09:17 ID:Qk2n0ep6]
JAVAアプレットでファミコンのゲームにありそうな2Dアクション物を作ろうと思い
二ヶ月くらい前から勉強を始めて最近やっと、ショボイながらも記念すべき
人生初の自作ゲームを作って今、第二作目を作っている所なのですが、やり方の
分からない処理が多すぎて困っております。
勿論ネットや本等で調べまわった上でスレを立てました、何でこんな処理が
分からないんだよと思われるでしょうけれど指導の方お願いします。
上級者の方達と質問のやり取りをしたいのです。

当面の目標は倉庫番、ロードランナー、ドンキーコング等の1画面固定タイプの
やつを作ろうと思います、とりあえず現段階で二次元配列を使っての
マップと自機の表示まで出来てます、二次元配列を使って表示した
マップの壁などに、どうやって当たり判定を付けるかで躓いてます
当たり判定の付け方の考え方など教えて貰えたら、ありがたいです。

ちょっと爪垢が溜まってきたので、また後ほど書きたいと思います。


90 名前:名前は開発中のものです。 mailto:sage [2007/04/27(金) 19:41:09 ID:W0CIDG0i]
12fpsくらいのアクションゲームがあるとしたら、おまえらがっかり?
フレームワーク的なものの推奨fpsを模索してるんだが、ラインを知りたい。

91 名前:名前は開発中のものです。 mailto:sage [2007/04/27(金) 19:52:53 ID:2hgvmjyM]
別におもしろければなんでもいいよ

ただ、60fpsが余裕で出ると思うのでマシンスペックで300MHzとかを対象にしているのであればそれでもいいけど
最低30fpsはほしい希ガス

92 名前:名前は開発中のものです。 mailto:sage [2007/04/27(金) 20:56:23 ID:W0CIDG0i]
Javaで30fpsって迷うよね。TimerTaskかポーリングか。
低負荷なポーリングとかあるんだろうか。

93 名前:名前は開発中のものです。 mailto:sage [2007/04/27(金) 21:14:55 ID:2hgvmjyM]
精度重視ならある程度のsleep等+ポーリング
実際はフルスクリーンならタイマー+垂直同期のみでいける

ウインドウ時で垂直同期を取るにはJOGL+UMA以外のビデオ搭載のやつが必要

どっちにしろ60fpsは余裕

94 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 01:15:47 ID:Yt5Nv7VQ]
>>90
12fpsでも遊べなくないからがっかりはしない。
GUIツールキットと描画に何を使うかでもfpsは差があるからそれ次第でもある。
AWT + JOGLで最近の性能ならjake2で300fps位、JOGLのデモでもそれ以上出る。

描画が何にしてもSwingだとSwingのバッファに書いてからパイプラインに渡す分遅いがそれでも、
60fpsは出る。今時javaで速度気にすんのは知らん人間だけだよ。

それより、俺としてはデカイGCがドカっと来て明らかにもたついてんのは気になるかな。小さいCGがチマチマ来るのは気にならない。

今からフレームワーク作るならアプレットよりJWSを視野に入れた方が良いよ。
と、AWT+JOGL+JMF(+JOAL)+viajeで作ってる最中の俺が言ってみる。
AWT使うならインストール型標準拡張のJNIくらいpure Javaと差はないと思ってる。

・・・と、俺の考え。

95 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 08:48:04 ID:GbSr5Tht]
>>94
JOGLはGLJPanel使うと60fpsでないな
その改善をJavaSE6でやるはずだったが、ベータ版は有効だったのに正式版で無効になった
JavaSE7でちゃんとOpenGLパイプラインが動けばGLCanvas捨てることが出来るんだけどね

GLCanvasはフルスクリーン時描画が出来ないバグもちだから実は使いたくないと思ったり
そのかわりビデオチップによってはウインドウモードで垂直同期が効くというすぐれものだったりもするが

96 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 11:37:11 ID:HANiMBGR]
パイプラインの変更は既に実装済みでも有効にするとVGAドライバのバグ誘発してOSと無理心中だから仕方ない。

しかも有効にした途端に必ず落ちるという訳でもないみたい。やっかいだねぇ。
java側の問題ではないからSEのバージョンは関係ないよ。

ゲームならGUIは自前だからAWTの見た目なんて関係なし、フルスクリーンはどうだろう、やる人間の好みかな?エロゲだと居るだろうねw

けど、アプリ実行中にころころウィンドウとフルスクリーン切り替えれるのってwinくらいなんじゃなかったっけ?

JOGLが実際に使える段階まで来たのは良い事だよ。しかも、最近やたら更新早い。

java.netでホストされてる標準ライブラリに取り込まれてない
公式プロジェクトは頻繁にクラス・パッケージ構成が変わるからフレームワーク組むとき困るよ・・・。

97 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 12:05:58 ID:PlJLH/jq]
フルスクリーンはアクション系こそ必要
そしてここはアクション系のスレ

パイプライン有効にするとすべての環境で不具合が出るんだけれども特定のドライバの問題ってわけではないようだ
J2SE5.0からSwing描画にOpenGl使えるようになってるんだけれども、有効にするとリペイントマネージャまわりがおかしいのかめちゃくちゃになる

標準でOpenGL使えるようになるには遠すぎ

98 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 12:36:04 ID:usJc8olx]
-Dsun.java2d.opengl=true
-Dsun.java2d.opengl.fbobject=false

付けて暫く動かしてみそ、ドライバによってはドライバのバグを再現する。必ずなる訳ではない。



99 名前:名前は開発中のものです。 mailto:sage [2007/04/28(土) 12:50:51 ID:PlJLH/jq]
UMAビデオでもGeForceでもだめだが?

100 名前:名前は開発中のものです。 mailto:sage [2007/06/03(日) 17:25:21 ID:wvWDdkI8]
12fpsでアクションゲームってwww
今時、Flashでも30fpsは出るぞ

101 名前:名前は開発中のものです。 mailto:sage [2007/06/03(日) 17:30:39 ID:qjYqK/Ln]
あおり方間違ってるぞ

Javaでは垂直同期を取って60fpsが可能。これはflashには不可能。

上の12fpsというのは作者が12fpsでつくってもいいか?といってるだけかと。
そもそも4月の書き込みに今頃つっこむなぞ・・・

102 名前:名前は開発中のものです。 [2007/09/08(土) 04:36:01 ID:sP8eKrEk]
Java(アプリケーション)のスレッドがないのでここで
質問させてもらいますが、インスタンスのプールってどのように
実装していますか?
あと、画像の透過はどうしていますか?gifやpngだとジャギーがでてくる
ので画像を二枚用意して比較させて1ドットづつアルファ値を設定して
いますがいい方法があったら教えてもらえませんか?

103 名前:名前は開発中のものです。 mailto:sage [2007/09/08(土) 13:04:20 ID:F1K7atqP]
インスタンスプールの実装がわからないのならそれはまだ使うタイミングではないと思われ
必要な場合ってのは限られるからね

画像に関してはJava2Dでアンチエイリアスをかけるようにする
もしくはpngでαつきで作成しておく

104 名前:名前は開発中のものです。 mailto:sage [2007/12/31(月) 01:08:49 ID:DW0nBc61]
ggsdg



dfhhf




fdgg



sdgsd


sdgsd



105 名前:名前は開発中のものです。 [2007/12/31(月) 06:06:31 ID:nIWs4m/L]
晒しあげ

106 名前:通行中のjuner mailto:sage [2008/03/10(月) 09:01:44 ID:Hz+DJliq]
通行ついでに、最近スキルを得る為に作ってみているものを貼ってみる。
ttp://juner.csx.jp/game/unb/

107 名前:名前は開発中のものです。 mailto:sage [2008/03/10(月) 09:11:13 ID:Dcr87hng]
>>106
www.vector.co.jp/soft/win95/game/se119747.html
ゲーム用爆発アニメーション作成ツール

108 名前:名前は開発中のものです。 mailto:sage [2008/05/11(日) 01:59:19 ID:klztBJ6c]
>>105



109 名前:名前は開発中のものです。 mailto:sage [2008/06/04(水) 17:14:17 ID:xVETCOHb]
新しいgamdeve かきかき

TopPage - game-develop.com wiki
wiki.game-develop.com/

GameDevWikiを何とかするスレ
pc11.2ch.net/test/read.cgi/gamedev/1156117275/

110 名前:名前は開発中のものです。 mailto:age [2008/08/15(金) 10:54:51 ID:fu+JQp+m]
あげ

111 名前:名前は開発中のものです。 mailto:sage [2008/08/18(月) 17:57:33 ID:cm8lH5DO]
Javaゲーム作成の総合スレみたいなスレが無いのですが、
どなたかたてていただけないでしょうか?

112 名前:名前は開発中のものです。 mailto:sage [2008/08/18(月) 21:34:26 ID:GqjEpIM5]
総合スレ
pc11.2ch.net/test/read.cgi/gamedev/1013953851/

113 名前:名前は開発中のものです。 mailto:sage [2008/08/19(火) 16:56:19 ID:BFNfndoR]
前立ったのはすぐ落ちたからな・・・

114 名前:名前は開発中のものです。 mailto:sage [2008/08/19(火) 19:25:28 ID:WJzGqLN0]
この板を「java」で検索したら五つありますね。
アクションを作りたいならこのスレ、他には

「Javaアプレットのゲームの限界は!」
pc11.2ch.net/test/read.cgi/gamedev/1005230153/l50

「JAVAアプリでゲーム」
pc11.2ch.net/test/read.cgi/gamedev/1033926010/l50

言語としての質問ならプログラム板にたくさんスレがあります。
過去には単発作品スレみたいなとこでボンバーマンやさいたまSTGを
作ってるスレをみた事あります。

それとも、「Javaゲーム総合」みたいなスレがほしいとかでしょうか

いまJavaでがんばってる人いないから期待します。
ここも休眠ぽい。
javagame.skr.jp/

115 名前:名前は開発中のものです。 mailto:sage [2008/08/20(水) 01:05:24 ID:LURDNrEZ]
もう落ちたスレばっかりだけれども過去に語りつくしたというのが正しいかと
基本的に1.4.1の時点でアクセラレーションがきいてきたりしてるし1.5、1.6とあまりパワーアップはしていない

あ、でもJavaSoundは使いやすくなってると思う

凝ったことをしたりアクセラレーションを最大限にしたいのならJOGLを使う

ジョイパッドを使いたいのならJNIは必須になるのがちょっと厄介かな
ほとんどの場合Windowsさえ対応していればいいのだろうけど

116 名前:名前は開発中のものです。 mailto:sage [2008/08/20(水) 01:13:52 ID:LURDNrEZ]
基本的にJava自体の機能・性能向上と1GHzを超えた今のマシンの性能では大概なんでもできるよ
60fpsでアルファブレンディングばりばりでOgg Vorbisでサウンドもならしたりするのもね

ゲーム自体の作成が初めてなのか、Javaでの作法がわからないのかというところだが、
前者なら今はゲーム開発がわかる雑誌がほぼ全滅してるのでちょっとつらいかもしれない

15年前は大量にあったのにねぇ

後者ならば「15歳からはじめる〜」というのが一番の解かな

ゲームをとにかくすぐに作りたいのならば「ShinGL3」
そこにある2面まであるサンプルSTGがShinGL3つかってるから機能は分かりやすいはず

117 名前:名前は開発中のものです。 mailto:sage [2008/09/07(日) 13:54:34 ID:8xBduqc8]
そもそもVMが糞だから
Sunの技術者って底辺ドカタみたいなのしか居ないんだろうか

118 名前:名前は開発中のものです。 [2008/09/08(月) 11:12:42 ID:xrQK/F8B]
4年目にしてやっと118レスおめ



119 名前:名前は開発中のものです。 mailto:sage [2008/09/08(月) 12:43:48 ID:dLS/wPVc]
記念パピコ

120 名前:名前は開発中のものです。 [2008/09/21(日) 18:46:00 ID:OsH1BNzp]
Javaでアクションゲームつくっても、コントローラーが使えないから遊べないんだよな・・・・

121 名前:名前は開発中のものです。 mailto:sage [2008/09/21(日) 21:24:54 ID:r4b2JGP3]
JNIで実装汁

122 名前:名前は開発中のものです。 mailto:sage [2008/09/23(火) 00:03:29 ID:vRkjT2mF]
JoyToKeyみたいなのをユーザ側で用意してもらうとか

123 名前:名前は開発中のものです。 mailto:sage [2008/09/23(火) 00:29:14 ID:tOuH/n2C]
jmonkeyengine

124 名前:名前は開発中のものです。 [2008/10/03(金) 00:20:58 ID:+ke5of9f]
javaで画面を揺らすにはどうしたらいい?
ドラクエでダメージうけたときみたいに

125 名前:名前は開発中のものです。 mailto:sage [2008/10/03(金) 00:53:13 ID:j+bPhG3o]
Javaだろうがそうでなかろうが、変わらんと思うけど

126 名前:名前は開発中のものです。 mailto:sage [2008/10/04(土) 01:25:42 ID:Ai04tfzT]
仮にJavaAppletで作っているとしたら、JavaScript側にアクセスして
ウィンドウ全体を揺らすとかいうネタを仕込むのも面白いかもね
雑魚戦じゃなくイベント限定にしないとウザイが

127 名前:名前は開発中のものです。 [2008/10/04(土) 04:59:23 ID:wlsIJF4e]
オート戦闘でメッセージ作成と表示の同期をとるにはどうしたらいい?

128 名前:名前は開発中のものです。 mailto:sage [2008/10/04(土) 10:19:46 ID:eBSs+DHR]
Javaだろうがそうでなかろうが、変わらんと思うけど



129 名前:名前は開発中のものです。 mailto:sage [2008/10/04(土) 11:01:12 ID:XU1Q4+7D]
なんかJavaとまったく関係のない質問ばかりくるのはなんでだろう

130 名前:名前は開発中のものです。 mailto:sage [2008/10/04(土) 12:32:07 ID:NE5vtfU1]
つまりJavaでのゲーム制作も一般的になったと言うことですね、分かります

131 名前:名前は開発中のものです。 mailto:sage [2008/10/04(土) 12:34:28 ID:eBSs+DHR]
確かにそういう面はあるのかもしれないな

132 名前:名前は開発中のものです。 [2008/10/04(土) 14:12:05 ID:wlsIJF4e]
お前らスキルがないなら黙ってろよ

133 名前:名前は開発中のものです。 mailto:sage [2008/10/04(土) 17:03:04 ID:XU1Q4+7D]
質問するスレまちがえてるのになんだこいつは


ああ、釣られてしまったか

134 名前:名前は開発中のものです。 [2008/10/04(土) 18:12:06 ID:wlsIJF4e]
アクションゲームでもこういう要素はあると思うんだけどな
ああ、ここは「初級」者しかいないのか・・・・

135 名前:名前は開発中のものです。 mailto:sage [2008/10/04(土) 18:53:47 ID:lCxx5DEZ]
そりゃ上級者さんたちはこんなところに頼らなくても自力で解決なさいますから・・・

136 名前:名前は開発中のものです。 mailto:sage [2008/10/05(日) 02:18:13 ID:cgXuY+W+]
アクションゲームでもない質問だったのかいw

137 名前:名前は開発中のものです。 mailto:sage [2008/10/05(日) 02:55:24 ID:cgXuY+W+]
まあ、1フレーム中でのエフェクトやメッセージ表示や音再生を保持するクラスを作って、
listに突っ込んでいけばいいんでないかい?
んで、frontから再生していく。

1フレーム区切りだとデータ量が多くなると思うなら、もっと長く区切ってもいいし。
その場合、コードが煩雑になるけどね。

138 名前:名前は開発中のものです。 mailto:sage [2008/10/05(日) 10:47:17 ID:esDCMgrI]
スレ間違えて自分で解決も出来ないくせに初級者しかいないとか
わめきちらすID:wlsIJF4eがいるスレはここですか?



139 名前:名前は開発中のものです。 mailto:sage [2008/10/05(日) 11:26:48 ID:k/pYUo2C]
JMonkeyEngineの解説してください
よろしくお願いいたします
JMonkeyEngineは3Dのエンジンみたいですが、2Dもつくれますよね?
ゲームループとかも管理してくれるみたいだから知りたいです
よろしくお願いいたします


140 名前:名前は開発中のものです。 [2008/10/05(日) 14:46:42 ID:vHSrsShI]
動作上2次元かもしれないけど
内訳では4次元配列くらいが必要では?

141 名前:名前は開発中のものです。 mailto:sage [2008/10/05(日) 22:48:03 ID:B28yXkKi]
アプレットとかJWSとかでJOGLやるやつってdll類はどうしてんの?
全部署名つけてオレオレ証明書でダイアログ出す?
それでユーザに「危ないってダイアログ出すけど信用してOK押して」って言うわけ?

142 名前:名前は開発中のものです。 mailto:sage [2008/10/05(日) 22:55:31 ID:Za20XjLJ]
Sunの署名付きのjar(DLL入り)が配布されてるのでそれを使う

143 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 10:06:43 ID:rhB09fqh]

if(isJump == false && jumpKey == ture) { // ジャンプ中でなく、ジャンプキーが押されたら
isJump = true; // ジャンプ中にする
vy = -jumpSpeed; // ジャンプスピード(初速)
}

vy += gravity; // 重力をかける

----------------------------------------

横スクロール(マリオ型)アクションゲームで、上記みたいにジャンプを実装している場合、
「ジャンプキーが押された時間が短い場合は小ジャンプにする」
という風にするには根本的にプログラムを変更しないといけないですか?

144 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 10:44:45 ID:Wn6D0K7q]
物理的にはおかしいけど空中でもボタンが押されてたら上向きにちょっと加速度与えればいいだけ
実際マリオはそうだろ

145 名前:143 mailto:sage [2009/02/23(月) 19:48:11 ID:8ReVmxnp]
>>144
マリオはそうなんですか、知りませんでした。
それでやってみます、ありがとうございました。

146 名前:名前は開発中のものです。 [2009/03/04(水) 20:49:06 ID:BgNcpKU6]
>>51
(´・ω・`)ショボーン
imepita.jp/20090124/089930


147 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 07:24:47 ID:O3SVwcBu]
JOGLのGLCanvasで自前ループ内display()させてるとどうもちらつく
別スレッドでAnimator使ったりしないとまずいのだろうか
垂直同期との明示化がわからん(環境によって自動的にできたりできなかったり?)


148 名前:名前は開発中のものです。 mailto:sage [2009/03/22(日) 12:09:18 ID:t26wnkyW]
displayってコールバックだから自分で呼ばないほうがええんじゃ



149 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 20:58:13 ID:UqizvfMn]
というか、それで例外吐かないんだ。
JOGL使いは占めのころは、OpenGL系のAPIを別スレッドからアクセスしたら
いきなり例外吐いてびっくりしたものだが。

150 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 21:25:56 ID:uzXOwN2A]
TextureIOの初期読み取りロジックを別に抜き出した時は別スレッド扱いの例外吐かれて困まった。
一本道のつもりだったのだけどイベントリスナスレッドとかが影響してるのか。


151 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 22:17:05 ID:dbyr6AlE]
>>150
自分はTextureIOのnewTextureがコンテクスト依存と思っていなくて
半泣きになったことがある。
enableとかbindをしなければ、別スレッドから呼んでも大丈夫だろうと
思っていたんだよなあ…

結局、テクスチャ登録は絵だけ準備してフラグを立てて、
displayメソッドの中からフラグをチェックしてテクスチャオブジェクトを生成するという
めんどうな動きになった。

152 名前:150 mailto:sage [2009/03/23(月) 22:38:48 ID:uzXOwN2A]
>>151

同じ症状だったと思う。とった解決策も同じだ(w
もうちょい綺麗に書くイデオムみたいのはあるのかな。

153 名前:151 mailto:sage [2009/03/23(月) 23:00:18 ID:ZB3pm8mv]
>>152
仲間がいたようなのでついでに聞いてみる。

テクスチャオブジェクトのガベージコレクションってどうしてる?
ファイナライザにdisableを仕込みたいところだけど、
ファイナライザはGLAutoDrawableとは別スレッドから呼ばれるだろうから、
同じ理由で例外吐いて死にそうな気がする。

自分の場合、これはまだ解決してない。
オブジェクトが破棄されるたびにVRAMにゴミが残るわけで、
どうしたものかと思っているんだが…

やっぱり、ゲームエンジン側で管理すべきなのかな。
テクスチャオブジェクトの管理用コレクションとモデルオブジェクト管理用コレクションを見比べて、
「そのテクスチャを利用しているモデルオブジェクトがもはや存在しない」
となった時点で明示的にdisableをかけて、それからremoveする、と。

154 名前:名前は開発中のものです。 mailto:sage [2009/03/23(月) 23:22:49 ID:uzXOwN2A]
>>153
シーン中にインテリジェントに捨てる事に関してはオブジェクトに関してもテクスチャに関しても考えてないや
シーン中は(理論上)無限にプーリングしてシーン終了時の後始末でシーンコンテキストのテクスチャを全disable & 削除っていう方針
テクスチャ画像の重複登録をしないのは当然として、そこまで多種の画像を読み込む事を想定していないってのが正直な所


155 名前:151 mailto:sage [2009/03/23(月) 23:27:33 ID:ZB3pm8mv]
>>154
なるほど。その辺は割り切っちゃうという手もあるな。
自分のゲームエンジンでもテクスチャは共用されるから、
確かに、さほど厳密に管理しなくともVRAMを圧迫しない気はする。

考えてみれば、256x256x32bitなら、たかだか256KBだからなあ。

156 名前:154 mailto:sage [2009/04/02(木) 19:49:00 ID:rnxHGA2h]
過疎っているなぁ。
基本的な方針は同じだけどdisableに関してはテクスチャを使うときに
enable → bind → 表示 → disableを毎回するように変えた。
やっぱりカレントスレッド問題が色々と面倒くさいので。

157 名前:名前は開発中のものです。 mailto:sage [2009/04/09(木) 01:21:53 ID:QVY5xGft]
>>156
総合スレとの区別があいまいだしねえ…

ちなみに、enableしてないテクスチャオブジェクトをdisableすると例外吐くんだっけ?
これを受け付けてくれるなら、いきなりdisableしてもいいような気がする。

逆に、enableを多重にやると、VRAMに同じテクスチャイメージが多重登録されたりしそうで心配だが、
取り越し苦労だろうか。

158 名前:名前は開発中のものです。 mailto:sage [2009/04/14(火) 17:40:52 ID:Wx3DB5EW]
>>144
すげえあたまいい・・・と感動してしまった



159 名前:名前は開発中のものです。 [2009/05/14(木) 21:04:29 ID:jnlC9FY/]
>>146
     オハヨー!!
    ∧∧ ∩
    (`・ω・)/
   ⊂  ノ
    (つノ
     (ノ
 ___/(___
/  (___/
 ̄ ̄ ̄ ̄ ̄ ̄


160 名前:名前は開発中のものです。 [2009/11/04(水) 00:17:42 ID:mdwZ7HUY]
アニメーションの表示ってどうやってます?
俺はコンピュータ内蔵の時計呼び出してその値からやってるんだけど、
そうするとポーズ画面のあと再開したときにアニメーションがずれちゃうんだよ
どうしたらいいかな

161 名前:名前は開発中のものです。 mailto:sage [2009/11/04(水) 10:26:18 ID:MgRdkNpl]
経過時間を算出するようにして
ポーズ中は経過時間が増えないようにするとか

162 名前:名前は開発中のものです。 mailto:sage [2009/11/04(水) 21:22:33 ID:OEwandvL]
ゲームのはなしじゃないの?
フレーム単位で処理するからずれるとかはないとおもうけど

可変フレームのはなし?

163 名前:名前は開発中のものです。 mailto:sage [2009/11/04(水) 21:46:58 ID:wmTV4PxT]
可変フレームでもアニメのコマnからn+1へ描画させるタイミングをフレームを考慮した時間後に書き換えるからずれはしない。
何か忘れてる。

164 名前:名前は開発中のものです。 mailto:sage [2010/03/02(火) 23:08:25 ID:Ex3WWwU3]
test

165 名前:名前は開発中のものです。 mailto:sage [2010/05/07(金) 20:42:20 ID:WillkCAw]
javaはpng画像の表示は重いですか?
マリオ風をつくってるんですがgifで表示させてた時よりカクカクします。
フルカラー+透過を実現したくてpngにしたんですが…。

166 名前:名前は開発中のものです。 mailto:sage [2010/05/07(金) 21:15:05 ID:j/r3kS3U]
ソフトウェア描画だからな
それでなくても透過合成は重い部類だし

167 名前:名前は開発中のものです。 mailto:sage [2010/05/07(金) 23:37:10 ID:KEJO6T7M]
αブレンディング使ってるならハードウェアアクセラレーションがきいていても使っていないときよりは速度は落ちる
スペックにもよるが32*32のスプライト10万個くらいだすと60fps維持できないと思う

168 名前:名前は開発中のものです。 mailto:sage [2010/05/08(土) 20:58:02 ID:2Mve6/zz]
アルファチャンネルじゃなくて、普通の透過なんですけどね…。
別の方法試してみようと思います。ありがとうございました。



169 名前:名前は開発中のものです。 mailto:sage [2010/05/08(土) 22:13:03 ID:+nu9nO6K]
ならコードが悪いだけだな

170 名前:168 mailto:sage [2010/05/09(日) 01:02:49 ID:f5Ph/Aqm]
>>169
drawImageでダブルバッファリングしながら表示させてます。
1000*1000くらいの大きな画像に24*24くらいのマップチップやキャラチップを並べて、
drawImage(img, x1, y1, x2, y2, imgX1, imgY1, imgX2, imgY2, observer);
でimgX1〜imgY2を指定してチップを表示してるんですが、もしかして各チップを
一つずつのファイルに分けた方が高速ですかね?それともdrawImage使うのがそもそもダメですか?;;

171 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 10:10:47 ID:Pu1jTf/z]
転送元と転送先のImageはなに?
あとJavaはJavaSE6update10以上つかってる?

172 名前:168 mailto:sage [2010/05/09(日) 16:51:18 ID:f5Ph/Aqm]
転送元と転送先のImageというのは、描画する画像の型と描画先の画像の型という意味でいいですか?
一応Image型をBufferedImage型に描画してます。
転送元がImage型だからカクカクするのかなと思ってBufferedImage型→BufferedImage型も試してみましたが
あまり改善されませんでした。
JavaバージョンはJavaSE6update18です。

173 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 21:02:07 ID:Pu1jTf/z]
転送元がImageということはどういうフォーマットになっているかわからないってことかな。

描画バッファから画面への転送の方法とかどうしているかも気になる。

あとはピクセルフォーマットを同設定しているかか。

転送もとのフォーマット
描画バッファのフォーマット
画面のフォーマット

これらをどう設定しているかにもよる。

あとImageの分割もやってみた?32bppだと1000*1000で4MBも食うわけで。

174 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 21:14:11 ID:o2jE/Yfm]
もうハードウェアアクセラレーションが効く環境に変えちゃえばいいのに
アホみたいに速いよw

175 名前:名前は開発中のものです。 mailto:sage [2010/05/09(日) 22:56:26 ID:eCAtLDK5]
>>168
カラーが24bitなら透過は8bitになってると思うよ
そして全ての透過値が0xffか0x00しかなくても、8bitのアルファチャネルがあるのと同様のロジックが走る
アクセラレーションが効いてなければ結構描画効率は落ちる

マリオみたいなゲームなら1チップに255色以上使う必要性も少ないだろうし、
リソース合成時かゲーム起動時に減色して透過インデックスを指定するようにしたらどうかな

176 名前:168 mailto:sage [2010/05/10(月) 01:29:54 ID:CH9wxDuw]
皆さんありがとうございます。
javagame.skr.jp/index.php?%A5%A2%A5%AF%A5%C6%A5%A3%A5%D6%A5%EC%A5%F3%A5%C0%A5%EA%A5%F3%A5%B0
に書いてある、repaint()を使わないで描画する方法(アクティブレンダリング)というのをやってみたら大分カクカクが収まりました。

>>173
すいません、勉強不足で仰られていることの意味がわからないんでコード晒します。
>>168からいろいろ変えてみて、今現在、

Image img = Toolkit.getDefaultToolkit().getImage(getClass().getResource(filename));
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(img, 0);

try {
tracker.waitForID(0);
} catch (InterruptedException e) {
e.printStackTrace();
}

BufferedImage bimg= new BufferedImage(img.getWidth(null),img.getHeight(null),BufferedImage.TYPE_4BYTE_ABGR);
Graphics g = bimg.createGraphics();
g.drawImage(img,0,0,null);

でpng画像をbimgに読み込んだ後、drawImageでオフスクリーンバッファに描画してます。
画面への転送方法は先程も書きましたがrepaint()を使わない方法に変えてみました。

あと、画像を最初にBufferedImageで読み込んでいても、チップは分割しておいたほうがいいですか?

>>174 すいません、軽く調べましたがなんか難しそうなので諦めます。
>>175 そうなんですか。うーん、どうしてもフルカラーでいきたいんですよね…。無理そうならgifに戻すことにします。

177 名前:名前は開発中のものです。 mailto:sage [2010/05/10(月) 22:09:49 ID:rdBA97qw]
画像のロードは遅延読み込みやりたいわけじゃないならImageIOつかうとよいよ。転送待ちをする必要ないし。

あとABGRとかARGBとか順番によって大きく速度が変わるからピクセルフォーマットは意識したほうがよい。

転送先はVRAM、もしくはコンパチブルピクセルフォーマットのほうがいいよ。
そして転送元もあわせたほうがよい場合が多い。

あとは特定色の透過をしたい場合TransparencyがBITMASKになってると大概早いはず。

178 名前:名前は開発中のものです。 [2010/05/11(火) 10:35:00 ID:RB0dCl6F]
初級って書いてあるから開いてみたけど
話が難しすぎてさっぱりわからないwww
ダメだ俺orz








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<50KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef