タグ

ブックマーク / javaappletgame.blog34.fc2.com (9)

  • Javaゲーム制作記 木材追加&剛体の衝突

    遅くなりましたがつぶつぶ2に木材を追加しました。 最初の剛体です。よく燃えます。 システムが大きく変わったのでソースを丸コピする訳にもいかず、 なかなか実装に時間がかかりました(特に分裂処理…)。 船 表面温度は最大900度近くまで達する 今更気付いたんですが、Rubberと繋げられるようにしておくの忘れてました。 びよんびよん出来ませんね。 すみませんがまた次回に・・・ ちなみに今回から粒子にアンチエイリアスがかかってます。 四隅に点を追加しただけですが、だいぶ滑らかな印象になりました。 以下おまけ(編?)ですが、剛体の衝突についてもう一度考えてみました。

  • Javaゲーム制作記 多角形(ポリゴン)同士の衝突判定、だいぶ分かって来ました

    前にも苦労していた多角形同士の衝突判定が、 やっとなんとなく分かって来ました。 同じように悩んでいる方の手助けになれば、と思っています。 ちなみに、衝突判定にもいくつかの種類があります。 一つは、衝突しているか、それとも衝突していないか です。 もう一つは、衝突しているか、もし衝突していたらどこで衝突が起こったか です。 前者はシューティングゲームなどに応用できそうです。 後者はブロック崩しなどに応用できそうです。 ・・・・・・。 実はまだあります。 今回説明する部分はこれです。

    sakef
    sakef 2011/12/04
  • Javaゲーム制作記 剛体シミュレーション手法

    ※説明には間違いがあるかもしれません。くれぐれも自己責任でお願いします。 もし見つけたら報告してくださるとうれしいです。 P.S.間違いだらけでした。とりあえず修正しておきました 今日は、2Dの剛体シミュレーションについて書きます。 剛体とは、 形の変形が全く無い物体です。 要するに、 「とてつもなく(無限に)硬い」 と理解していてOKです。 剛体シミュレーションにも拘束ベースやペナルティー法などいろんな手法がありますが、 今回説明するのは、ペナルティー法です。 ペナルティー法とは、剛体間にめり込みが発生したときに、めり込み量に応じて力を与えるという手法です。 (めり込んだら押し戻そう方針) 剛体シミュレーションにおいて、一番重要なのは、 「どう衝突を検出するか」 と、 「どう衝突応答をするか」 の二つです。 これが決まれば(そして正確に計算すれば)、後は物理法則に応じて結果が得られます。

  • Javaゲーム制作記 Stage3Dで地球

    最近FlashのStage3DというAPIGPUでの3D描画に対応したらしいので、 勉強がてらに地球を表示してみました。 ※FlashPlayer 11が必要です The Earth - wonderfl build flash online Stage3DだとAGALという言語で直接シェーダープログラムを書くことができるんですね。 そこで今までやっていなかったバンプマッピングに挑戦してみました。 バンプマッピングというのは平面のポリゴンに擬似的に凹凸を貼り付けるものです。 凹凸の表現に使われるテクスチャには表面の高さを白黒で表したハイトマップ(左)や、 直接法線ベクトルを書き込んだノーマルマップ(右)が使われますが、 最終的にはどちらも内部で法線ベクトルに変換されます。 もちろん実際にシェーダーで使うためには、 法線ベクトルの向きをポリゴンに合わせて変換しなければなりません。 変換後の

    sakef
    sakef 2011/11/28
    バンプマップ
  • Javaゲーム制作記 ミリ秒のsleepで正確にFPSを固定する方法

    いろいろな方法があるようですがどうも問題があったりしたので 自分なりのやり方を書いておきます。 いろいろ省略してありますがこんな感じのメインループを作ったとします。 while(!finished) { update(); // メイン処理 Thread.sleep(16); // 休止 } 休止の部分には、60FPSになるように 1000÷60=16.66666...≠16 ミリ秒休止をしています。 しかしこれではメイン処理に時間がかかったとき遅れてしまいます。 実行・休止全部含めて16ミリ秒でないといけないのです。 そこで、以下のように修正します。 while(!finished) { long oldTime = System.currentTimeMillis(); update(); // メイン処理 long newTime = System.currentTimeMillis

    sakef
    sakef 2011/10/30
    ミリ秒のsleepで正確にFPSを固定する方法
  • Javaゲーム制作記 布シミュレーション

    Flashで布シミュレーションをしてみました。 布シミュレーション / Cloth simulation - wonderfl build flash online 3D表示はこの前のソースを流用しました。 実はAS3の3D表示にはdrawTrianglesという便利な関数があるんですが、 Zソートさえしてくれない(配列の順?)ので 複雑なオブジェクトは表示できませんでした… 布シミュレーション自体は割と簡単です。 縦横の解像度分だけの粒子を用意し、3種類のバネで繋いでいます。 1:隣の粒子を繋ぐバネ 2:斜めの粒子を繋ぐバネ 3:一つ飛ばしで粒子を繋ぐバネ 1だけだと布が平行四辺形につぶれてしまいます。 2も加えると斜めにつぶれる事はなくなりますが、3次元上だと前後に折れ曲がってしまいます。 そこで3のバネを加えることで、布としての弾力を表現しています。 当はもうちょっと解像度上げたか

  • Javaゲーム制作記 マグマと水蒸気

    つぶつぶにマグマ(+水蒸気)を追加しました! ゼラチンをゼリーに変更したり、表示を変えたりなどもしました。 ようやく遊べるようになってきた感じです。 後は木材とか剛体系があればいいかなと。 後ゲームのサムネイルも変更しました。

  • Javaゲーム制作記 ぶよぶよしたもの

    つぶつぶにぶよぶよした物を追加しました!ゼラチンもどきです。 マウスをクリックしている間だけ液体になります。 型を作って流し込んだり、千切ったりといろいろできるので遊んでみてください。 一度千切れたら元には戻りません。 そろそろ気体がほしいなーとか思ってます。

  • Javaゲーム制作記 水面Flash

    Procesingでやった3Dの水面をAS3で作ってみました。 ドラッグでぷにぷにできます。 3D水面 / Water 3D - wonderfl build flash online 重いので30FPSに。 スフィアマップしたら水銀っぽくなってしまった・・・

    sakef
    sakef 2011/04/10
    すごいなー。
  • 1