日記(1173)

<前 次>

無題

「ふにゃふにゃ」で、ロージャンプバグの一つを解消しようとしましたが、駄目でした。

今使っている動作確認用のステージの左上には風が吹いているんですが、今まで弱い風だったのを様々な強さの風にして試してみたところ…

弱い風:ジャンプ中にやや影響を受ける
やや強い風:風下に向かって走ってそれもやめても止まりにくい、空中で操作が効きにくい
強い風:風下に向かって走ってそれをやめても止まれない、空中で操作が効かない
かなり強い風:その場で止まっていられない、空中で風に流される
とても強い風:風上に向かって走れない
さらに強い風:何をやっても同じく吹き飛ばされる

そんなことはともかくとして、ビットマップ表示処理を作らねば!!

「爆ボン」でゴールドパーツ入手。
どきどきモードで1時間57分かかりました。
ゴールドパーツ入手条件が3時間以内に完全クリアだからこれってスゴイ?

無題

今日は「爆ボンバーマン(以下爆ボン)」をやっていました。
「爆ボン」は私の最も好きなゲームの一つです。

昨日日記に書き忘れていたことを今日書きます。
昨日万有引力について勉強していたんですが、その中で全く理解不可能な式が出てきました。
今まで問題の解き方がわからないことはあっても物理の性質や現象について全く理解できないことは無かったのに!
その問題の式は、次のようなものです。

万有引力定数をGとする時、質量M[kg]の地球の中心からr[m]の距離にある質量 m[kg] の物体が持つ万有引力による位置エネルギー U[J] は無限遠の点を基準に取ると、
U=-GMm/r

こんなもん、「こんな公式があるから覚えてね。」なんて言われても自分で全く理解できないことを覚えられますか?
エネルギーが負なんですよ!
一秒当たり Gmm/r[N] の地球から遠ざかる力を受けるんですよ!

私は考えました。
帰宅中歩きながら考えました。
家で宿題をやりながら考えました。
ゲームをやりながら考えました。
風呂に入りながらも考えていました。

そもそもなんで基準点が無限遠なんかにあるの?!
と思いながら、地球上のちっぽけな空間で考えた場合の位置エネルギーを万有引力の公式から求めてみると…
あら不思議、矛盾無く見慣れた E=mgh という公式が出てきたじゃありまえんか。

そこで私はまた考えました。
確かに引力は距離の関数だ。
しかし、その力が地球に向いているからには普通の重力と本質的には代わらないのではないか。

例えば、普通の位置エネルギーの公式 E=mgh は mg[N] の力でh[m] 上に持ち上げたという意味だ。
それと同じように考えれば、U=-GMm/r という公式の意味は平均 GMm/r*r[N] の力を外向きに加えながら、しかし r[m] だけとんでもなく遠い場所から内側に引きずり込まれて、その時に外側から引っ張った力が行った仕事が E=-GMm/r だったのでは?
ちなみに、引きずられる時に行う仕事の符号は負です。

それで最後に万有引力の公式のせいでプログラミングが出来なかったんだと言い訳をしてみたり(ゲームのせいだろ!)。

無題

今まで散々ふにゃふにゃっとしたことばかり書いていて今日突然「MusicPlayer5」をアップしました。
「Windows Media Player」の最新版がやたら重いだけが取り得のような感じだったので「こんなもん使ってられるかーー!!」ということで作ったものです。
…にしてもちっこいですね~。

まあ、そんなもんです(どんなもんなんだ!?)。

無題

「ふにゃふにゃ」のビットマップ読み込み部分をyanePackExに対応させました。
実は昔日記にはビットマップ読み込み部分を自作していたと書いたんですが、それがうまくいかなかったので暫くの間標準APIを使っていました。
そしていつしかその事を忘れ、自作関数を使っているつもりにずっとなっていたんですが、この前プログラムをざっと見直してみたら、標準APIのままになっていたので自作関数に戻したんですが、当然うまくいきませんでした。
しかしその原因がCreateDIBSectionにあることはわかっていました。
でもCreateDIBSectionはDIBから普通のビットマップ(DDB)を作るものだし…
と思いながらインターネットで検索すると、これはDDBからDIBを作るための関数だということがわかりました。
逆じゃん!!
とは思いつつも、もう一つ思い当たる関数、CreateDIBitmapについて調べてみることにしました。
しかしこれはDDBからDIBを作るものだし、と思っていたら…
ハイ、これもまた逆でした。
まあ、そんなわけでめでたく自作関数はうまく動いたわけです。

どこがめでたいんだなんて言わないでくださいよ!

今日は何故かスクロールバーの動きがおかしいです。
使いにくくて仕方がありません。

無題

「ふにゃふにゃ」で使う文字を描いていました。
このゲームでは結構決まりきった文字が使われるのと、グラデーションを施す必要があるのと、環境に依存せずどこでも同じ文字の形にするためにビットマップで描いています。
たいした変化は無いんですけどね。

ちなみに、「ふにゃふにゃ」は二人用アクションゲームですが、内容は格闘ゲームとは限りません。
二人で協力してプレイしたり一定の条件を満たすことで勝敗が決まったりもします。

無題

「ふにゃふにゃ」で、ビットマップの任意の場所を背景として使えるようにしました。
これをうまく使えばアニメーションする背景、なんていうのも作れます。
また、ジャンプの準備動作中には加速関数が無効になるようにしました。
これが有効だと前に低く跳ぼうと思ってもいつのまにか後ろに向かって跳んでいってしまうことがあります。
さて、まだまだロージャンプバグ(低いジャンプの時に起こるバグ)が残っているから早く直さねば。

昔日記に書いたことがありましたが、ホルスト作曲の「木星」はループさせることのできる音楽です。
プログラミングコーナーと同じ書き方をすれば、
A→B→C→A'→B→D
となります。
二番目のBから最初のBにループさせています。

無題

プログラミングコーナーを更新しました。
でも以前にも日記に書いたように、音楽用語には全然自信が無いのです。
音楽は好きですが音学は嫌いなのです。
しかも重要な用語に限って中学や高校の教科書には書いてないし・・・・
だから間違いを見つけたら、一人で「フフフ、ときおのバカめ」なんて思いながら黙って見ていないですぐに報告してください。

「ふにゃふにゃ」には連立方程式が多く使われています。
例えば、線を表示するかどうかを判定するだけで約20個使っています。
殆どコピペだけど。

「Bomber丸World」のBGMの音程がずれているのを発見したのでいつか修正するつもり(今じゃない)。

<前 次>