1 名前:ヤンス mailto:sage [04/09/08 09:17 ID:Qk2n0ep6] JAVAアプレットでファミコンのゲームにありそうな2Dアクション物を作ろうと思い 二ヶ月くらい前から勉強を始めて最近やっと、ショボイながらも記念すべき 人生初の自作ゲームを作って今、第二作目を作っている所なのですが、やり方の 分からない処理が多すぎて困っております。 勿論ネットや本等で調べまわった上でスレを立てました、何でこんな処理が 分からないんだよと思われるでしょうけれど指導の方お願いします。 上級者の方達と質問のやり取りをしたいのです。 当面の目標は倉庫番、ロードランナー、ドンキーコング等の1画面固定タイプの やつを作ろうと思います、とりあえず現段階で二次元配列を使っての マップと自機の表示まで出来てます、二次元配列を使って表示した マップの壁などに、どうやって当たり判定を付けるかで躓いてます 当たり判定の付け方の考え方など教えて貰えたら、ありがたいです。 ちょっと爪垢が溜まってきたので、また後ほど書きたいと思います。
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