日記(1027)

<前 次>

クラスの実体

パネルγの遊び方9と自己紹介とゲーム記のゲームボーイと同じくロクヨン、それぞれ更新しました。
昨日書き忘れていたところと、たくさんの質問への回答と、標準語化をしてみました。

レゴ、昔買ったものを5つほど復元しました。
ずっと前に作ってばらさずに置いたものを数には入れてないので全体としてはもう少し多くなります。

Java、とりあえずサンプルを落として見てみました。
eclipseが異常に重いのが気になったけど、クラスの扱いについては大体わかりました。
Class1 c = new Class1();

昨日断念した音楽、今日何とかMIDI化に成功しました。
なんに使うかはまだ検討中。
メテオスでこんな惑星があったらいいなと思っていたときに妄想中の惑星のBGMとして思いついたものだったのです。
うちってMIDI化するときにどうしても半音を使ってしまう悪い癖があるのね。
しかし今までMIDIだからいいやとPiccoloを使いまくってたけど結構無茶な奏法だったのね…。

1119625040.mid

風の影響

ふにゃさん、走るときのグラフィックを出せるようにしてみました。
今回は移動や当たり判定の処理と描画の処理を分けて作っているので、動作から先に作って、直立姿勢のまま走ったり跳んだりするようにしてから、動作が安定するころにグラフィックの変更を行ったりしています。
スピードの減速方法、地面に立っているときは速度0に向かって一定加速度+風の抵抗をかける。
走っているときは最高速+風速を超えているときには最高速+風速に向かって減速。
跳び上がり・しゃがみ・歩き中は減速処理はせず。
落下中は風の抵抗のみによって減速。

パネルγのページを更新しました。
ルールの同時消しのところです。
う~ん、LARGE以上のどでかい同時消しボーナスについては書き忘れてたけど、まあいいや。

同じくパネルγ、ランキングへの得点の送信には公開鍵暗号を使ってみようかと思ったのですが、これは第三者が解読できないようにということで、送信者本人によるデータ捏造への対応ができなさそうなので、見送ることにします。

なんとなくメロディが思いついたのでMIDIにでもしてみようかと思ったのですが思ったとおりの音が出せずに断念。
それはそうと、音源を変えてMIDIを聞くと同じ曲でもなんだか新鮮ですね。

動けるぞ!

ゲーム記、プレステのとこ、更新しちゃいました。
標準語にしたのと、ドラクエ5の話を少々。

ふにゃさん、走る・跳ぶ・止まるの基本的な動作ができて、狭いステージの中を駆け回れるようになりました。
当たり判定の基準位置を間違えていたりして、なかなかうまく動いてくれなかったりもしましたが、現状の動作としてはまあまあよくできているといった感じではあります。
今回はいろいろな部分を関数化させて多分後から見てもそれなりにわかりそうなコードにしています。
コードを一部抜粋。

	if (m_State==STANDING) {	// 立ってるとき
if (f3Input.GetKeyPressed(F3KEY_UP)) StartJump();
if (f3Input.GetKeyPressed(F3KEY_LEFT)) Run(DIR_LEFT);
if (f3Input.GetKeyPressed(F3KEY_RIGHT)) Run(DIR_RIGHT);
if (m_DX>0) m_DX = (m_DX>STANDFRICT?m_DX-STANDFRICT:0);
if (m_DX<0) m_DX = (-m_DX>STANDFRICT?m_DX+STANDFRICT:0);
if (m_DX==0) m_Direction = DIR_FRONT;
if (!m_HitBottom) {
Fall();
}
ジャンプの処理を呼び出すのにStartJumpを呼び出しているのは、立っているときの上キーがジャンプの予備動作をさせるためのものだから。
Jumpは上キーを離したときに発動されて、実際に上向きの速度を与えてジャンプさせています。

1119449256.png

素早い実験

先週うまくいかなかった実験は今日終わらせました。
実験項目が事実上増えたことになるのでかなり遅くなることを覚悟していたのですが、最後の実験が電光石火で終わったのでまあまあ普通の時間に終了。

あとは、レゴで昔作ったのを復元するだけ復元しようかと。

前作からのパワーアップとか

昔からずっと思っていたんだけど…
レゴの幽霊パーツがほしい。
それで、情報を集めるため公式サイト含めいくつかのサイトを回ってみたんだけど、自作の作品やミニフィグ(人形)やレアパーツのこととかばかりで目的の情報には近寄ることすらできず。
せめて写真だけでも拝みたかったですよぉ。
レゴ自体はもう飽きちゃったのですが、嫌いになったわけじゃないし、むしろ今も大好きなので、「サイズ」の観点からレゴを語るサイトでも作ろうかと思ったのですが、自分ちのレゴで頑張って作った完成品だけがなくなっているのを見つけてげんなりしたので見つかるまでしばらくは手をつけなさそうです。

ふにゃさん、ジャンプの処理を作り始めました。
例によってジャンプ力係数も浮動小数型で。
ちなみに、ジャンプ力そのものは第一作に対して特に増やすようなことはしません。
普通ならばゲームの遊べる幅を増やすためパワーアップなどさせるべきものなのでしょうが、ジャンプ力アップに関してはギヤバネが補ってくれるので、他では不用意に増やさないようにという判断です。
キー入力周りの挙動がどうも怪しいようです。見直さねば。

レポート、痛恨のミスを犯していました。
グラフが・・・・逆さま。

天界へ

ふにゃさんの当たり判定を作ったりしてました。
昨日書いたとおりに少数と整数を混在させたデータにしてます。
一応キーで上下左右に飛ばして確認できるようになったので、今度は本格的に動きの作成に取り掛かるつもりです。
しかし代表位置として足元の位置を選んだのは当たり判定の観点からは少々面倒なことになっていて、また改めて体の中心を代表位置にしようかと考えていたりしてます。

久々にエアツェー2プレイ。
ボスの強さに面食らってアイテムで準備を万全にして改めて行ったらアイテムを一切使わずに楽勝ってのは意図されたバランスなのかな。
それともRPGは自然にそうなるようにできているんだろうか…。
途中の負けボスは1ターン目に気付いておしょくじとかスロースターとかでボケをかましつつ潔く全滅。
しっかし、ラストのこの装備の異常な強さ、これはあんまりだと思うなぁ…。

再提出のレポートなんかもやってます。

へたっぴ

パネルγの遊び方のページを更新しました。
基本中の基本なのでやった人が見てもなんともないのですが。
そういうこともあってしばらくぶりにプレイしてみると思ったようにクリックできない。
初めて触る人はきっとこんな感覚なんだろうなと思いました。
こういうのは開発中にはどう頑張っても頑張らなくてもわからないのでこういうことは貴重なのかなと思ったりも、しかしなんだか複雑な気分。

ふにゃさん、今ちょっと考えていることがあります。
それは、主人公の位置の変数の型をどうするか。
現在はCGameObjectに倣ってint型にしているのですが、そうすると加速度や抵抗やいろいろな物理量を使う以上それなりの精度を設ける必要があって、それはそれでスケーリングで何とかなる範囲ではあると思うのですが、今回は多くのオブジェクトを扱う可能性があるということで、スケーリングの倍率はできるだけ一定、あわよくば1にしたいので、それなら小数点以下も結構な精度のあるfloatやdoubleなどの小数型を使いたいのですが、そうすると処理速度の点で不利に、とはいっても近頃のコンピュータではそんなの気になるほどではないと思うけど、処理数はオブジェクト数の2乗のオーダーで増えることを考えるとやっぱりオブジェクトが増えたとき無視できないかと思ったりもするけど、それならば相手オブジェクトとの関係を持つ部分では整数型を使って、その整数型による位置を割り出すのに内部で使う変数だけを小数型にしたらどうかと考えて、つまり以下のようになったわけです。

  • 内部で使用する正確な位置などの情報(小数型)
  • 外部に公開する実用上問題ない精度の情報(整数型)

他には、当たり判定データを作ったりもしていました。
とはいっても、今はデフォルト値を作っただけで、実際にどのチップがどの当たり判定に対応するかを作るために機能を作ったわけではないのですが。
デフォルトでは第一作と同じく、一番左のチップが通行可能、二番目が壁、三番目から左が危険地帯となっています。
今回はすり抜けはありません。

<前 次>