ブログ

  • Quaternion

    http://www015.upp.so-net.ne.jp/notgeld/quaternion.html

    http://www.arakin.dyndns.org/gl_torusquat.php

    3次元物体の回転には,四元数(しげんすう、quaternion;クオータニオン)を使う。

    静止軌道にいるスパイ衛星を考える。スパイ衛星は,カメラを常に地球に向けていなければならない。つまり,ふつうに静止軌道にいるだけでは,カメラはあさっての方向を向いてしまうので,公転周期と同じ周期で自転していなければならない。すなわち,物体には,瞬間の絶対的な回転角度だけでなく,単位時間あたりの回転速度(角速度)ももたせなければならない。面倒。

    OpenGL上での回転の話は, http://wisdom.sakura.ne.jp/system/opengl/gl11.html を参考にする。

  • BEEP Core protocol central

    BEEP Core protocol central

    Project BHはクライアント・サーバ型システムとして作る予定なので,プロトコルをどうしようかあれこれ考えていたのだが,BEEPというものを発見したので使ってみようと思う。

    BEEPは,Block Extensible Exchange Protocolの略。Peer-to-peer通信の下回りを面倒みてくれるようだ。

    Cでの実装に,Vortex Libraryがある。中を見たところ,結局はアプリケーションレイヤーは自分で設計して作らなければならなさそうだ。当たり前といえば当たり前。ぱっと思いつくのは,ログイン処理や自機の移動など。自機近傍に他機が近づいた時も,通信が必要だろう。

    Voltex Libraryをビルドしてみた。Axl Libraryが必要なので先にビルド。特に問題なし。python-devが必要なので,apt-get install。makeすると,

    cc1: warnings being treated as errors
    vortex_tls.c: In function ‘vortex_tls_invoke_tls_activation’:
    vortex_tls.c:617: error: assignment discards qualifiers from pointer target type
    vortex_tls.c: In function ‘vortex_tls_prepare_listener’:
    vortex_tls.c:1377: error: assignment discards qualifiers from pointer target type
    

    とエラー発生。仕方ないのでBH用のリモートブランチを作成して修正する。

    --- a/tls/vortex_tls.c
    +++ b/tls/vortex_tls.c
    @@ -586,7 +586,7 @@ int      vortex_tls_invoke_tls_activation (VortexConnection * connection)
            /* get current context */
            VortexCtx            * ctx = vortex_connection_get_ctx (connection);
            SSL_CTX              * ssl_ctx;
    -       SSL_METHOD           * meth;
    +       const SSL_METHOD     * meth;
            SSL                  * ssl;
            X509                 * server_cert;
            VortexTlsCtxCreation   ctx_creation;
    @@ -1344,7 +1344,7 @@ void vortex_tls_prepare_listener (VortexConnection * connection)
     {
            /* get current context */
            VortexCtx            * ctx = vortex_connection_get_ctx (connection);
    -       SSL_METHOD           * meth;
    +       const SSL_METHOD     * meth;
            SSL_CTX              * ssl_ctx;
            SSL                  * ssl;
            char                 * certificate_file;
    

    const修飾が足りないので追加。コンパイルエラーはとれた。ドキュメントの生成でエラーが出るがよく分からないのでmake install。とりあえず作業終了。

  • Test

    本日天気晴朗なれども波高し。

    編集編集。

  • 10月19日(水)20:16

     ボス内突入時シールドが画面に残るのを直した,と思う。

  • 10月12日(水)17:36

     三角プリズムのレーザーと自機の当り判定をちゃんとした。甘すぎるかもしれない。

     7面や最終面で,途中で死んで面の最初からやり直しのとき,背景絵を消して星スクロールも再開するようにした。

     中ボス1の弾を壊すとハングるのを直した。

     全体的に弾の量を増やした。

     ハッチ2から出る敵の楕円回転開始点を決定してほしい。(x1,y1)と(x2,y1)か。ハッチ2から2回出るから。

     ハッチ2はスクロールしてるから,編隊2の各機の出現位置がずれる。そこから各機固定軌道で運動したのでは,各機の軌道がX方向にそれぞれ平行移動したものとなり,実際と異なって見える。

     そこで,編隊2各機出現後,同一点(x1,y1) (および2回目の出現時は(x2,y1) )に移動し,そこから楕円回転運動を始める。そうすることにより,各機は同一楕円軌道上を運動するようになる。

     ということでよろしく。

  • 10月11日(火)2:08

     LASER および EXTEND LASER がピラミッドに当たると,反射されるようにした。絵はどちらも LASER。 EXTEND LASER が反射した場合の絵はどうなる?

    19:37

    >・1面等の飛び上がる奴の弾の速度は、6つとも同じだ。
    > o o o o
    > o o o o
    >  o @ o =>o @ o じゃなくて o @ o=>o @ o ね。
    > o o o o
    > o o o o

     した。

    >・アイテムの効果は、最後のサイレンがなっている時には、すでに消えていなければなら
    >
    > ない。

     した。

     草野郎死亡時の消し残りが出ないようにしたと思うが,まだ出るかもしれない。

  • 10月6日(木)22:46

     一番悪い奴死亡時,雷・敵弾が消えるようにした。自機とオプションのプライオリティを上げた。

     自機と一番悪い奴のX座標の差が32以下の時,一番悪い奴は弾を撃たないようにした。

     Ichiban-warui-yatu doesn’t attack when there are less than 32 dots difference between metalion and him. イミフメー

  • 10月5日(水)13:23

     一番悪い奴がダメージを受けるとコア及びその周辺部が点滅するようにした。

     ガンガンガンをやった。フェードアウトはまだ。

     昨夜22時23分に大きな地震があった。震源は北海道東方で深さ20km。M7.9。津波警報および注意報が発令。

     揺れが大きく,長かったので,「ついに小惑星が地球に激突したんじゃないか?」と疑った。

     NHKを見ながら,不謹慎だがワクワクしていた。第2次大戦中も皆そうだったにちがいない。戦争の始めのうちは。そして何ともいえない一体感に包まれていたのだろう。

     退屈な日常が崩れ去り,世界が急にリアルな輝きをもって立ち現れてくる。ハルマゲドンの日はそんな風になるのだろう。

     そういえば,ポピュラスを思い出して笑ったのだった。

    18:24

     一番悪い奴が出てスクロールストップしたら背景絵のスクロールも止まるようにした。

     ときたま弾を撃つようにした。まだ,自機が近くにいるとき撃たないようにしていない。

     フェードアウトをやった。雷・敵弾・自機攻撃兵器が残るのと,自機とオプションのプライオリティを上げるのをやっていない。

     「極移動」現象の物理的根拠は何だろう。運動エネルギーとかモーメントとか微積分が駆使された,納得のいく説明はないだろうか。

     果たして極移動はあるのかないのか。あるとしたらいつ起こるのか。さほど難しい計算ではなさそうだが,僕には出来ないや(;_;)。

  • 10月4日(火)16:12

      P_TOTAL に手を加えて, ODEMO でカーソルキーでも操作できるよう
    にした。

    18:18

     一番悪い奴を死亡後のガンガンガン(笑)にそなえて BG 化した。

  • 10月3日(月)15:47

     7面の中ボスの壊せる水平弾をエネミースローに対応させた。

    16:50

     エクソダス。$28。

    22:04

     7面の中ボス2の弾を水平ではないように直した。絵はどうする?

     4面の噴火口の耐久度を4発にした。

     帰りの5面のピラミッドが爆発すると赤カプセルが出るようにした。