- 2008-04-14 (月) 0:01
- 成長期
エレベーターの中で、扉と扉の隙間が涼しい8月下旬。
突然開いたら驚きます。
というのも、うちの会社のエレベーターは、
何の音も無く、階で止まったりするので、
ボーッとしていると、止まった事に気付かないんですね。
今のところ、自分の目的の階でしか止まっていないので、
誰にも見付かっていませんが、そこに人が居て、
張り付いている姿を見たら、
変態にしか見えないでしょうね。
上司と一緒にエレベーターに乗ると、
宣言して張り付いている人が居ますが、
どう見ても変態でした。
でも涼しいのはわかる。
プレイヤーの動きをしっかり作っておけば、
そんなに難しいCPUじゃない限り、わりと簡単に作れます。
そんなわけで、今回はわりと簡単に作れるCPUの1つである、
敵がジャンプするというCPUなのですが、
同時に飛んだ時点で、
キー入力を見ているのがバレバレです。
たぶん、だいたいの方はプレイヤーの処理は
敵CPUの処理よりも前に作っているでしょうから、
キー入力、もしくはジャンプ関係のフラグが見れます。
まあ、座標か上への加速度で見ればいいんですが、
1フレームとか、あまり変わりないですね。
格闘ゲームなら、自分が飛んだ瞬間に、
昇竜拳で打ち落とせます。
プログラムを組まない方は知らないと思いますが、
格闘ゲームで無敵のCPUを作るのって、
結構簡単なんですよ。
このCPUバカだなあと思われるCPUを
作る方が実は難しいんです。
なので、格闘ゲームで、最初にある程度の
CPUが完成した時の強さは
異常!!
飛んだら打ち落とされるし、
近づいたら投げられるし、
投げようと思ったらパンチくらうし、
攻撃したら反撃くらうしと、
隙がないです。
一番難しいと言われる難易度でも、
ある程度、弱くしているというわけですね。
どう見ても機械的な動きですが。
話が脱線しましたが、今回(というか今もですが)、
作っているのは、対象の物体が飛んだのと同時に飛ぶのではなく、
自分の真上を通る時に、タイミング飛んで、
よくその物体に自分の身体を合わせると言った動きなので、
あまり不自然に見えません。
それが不自然に見えるのは、
あきらかに届かないぐらいに高いのに飛んだ時や、
物体が自分を超えていった後に飛んだ時や、
逆にCPUが物体を飛び越える時ぐらいでしょうか。
全然違う場所で飛んでいるのに、
自分も飛んでいるとかは不自然どころか論外です。
バグなので至急直しましょう。
無駄にピョンピョン飛んでいるとうっとしいです。
これの処理方法は、飛んでいる物体が自分の位置に来る時間と、
その時の高さを求めれば何とかできます。
来る時間はスピードで求め、その時の時間から高さを求める。
何の問題もありません。
ミナミみたいにCPUがその高さまでに到達する時間を忘れていて、
頭上に来た瞬間に飛んだりしない限りは・・・・・・。
それって時間とかスピードとか関係ないですよね。
もう座標だけ。
割り出した時間と高さを使っているのに、
やっている事は自分の座標と同じになったら飛ぶという処理と同じ。
作っている時に気付けよ。
作ってみて、実行しないとわからないのが、
ダメゲームプログラマーと呼ばれる所以です。
いつも通りで問題なし。
というわけで、そのCPU物体自らが、
ジャンプしてその高さに達する時間を、
飛んで来る物体の時間から引けば、
ちょうどその物体と重なる時間になります。
たまに取れないとかの処理をするならば、
引く時間をランダムにするだけで、
CPUが「頑張ったが合わせれない」みたいに見えますよ。
物体がCPUを超えてから飛んでも、
バグにしか見えないので注意。
あと、速めに飛んでしまって、
物体が通過する前に着地してしまうのも論外です。
バカCPUを作るのは大変ですが、
それはやり過ぎです。
バカ過ぎて、かなりの不自然です。
今回も前回と同じように簡単なCPUの処理でした。
次回は少しだけCPUとは違いますが、
物を投げるという処理のお話。
つまり放物線とかいう奴ですよ。
これもそんなに難しくないですが、
重力でミスをすると、
落ちた来る時に見えません。
重力はいい感じにしましょう。
(綺麗な放物線は好きですか?編)
- Newer: 子供参観日
- Older: 仕事以外の事も覚えていかないとダメですね
Comments:2
- 達也 08-04-14 (月) 21:28
-
今日、初授業でした。初日からハンドンです。ていうか毎日ハンドンです。(2年制なのに)
まあ専門学校なんてこんなもんかな。自習時間が取れていいや。ぐらいに考えていますが、朝起きなくていいと思うと、ダメっぷりが露呈した気分になります。そしてその授業の中で、なかなか興味深い話を聞けました。
プログラムの言語の種類を問わず、最初に組むプログラムって「Hello world!」を表示するプログラムですよね?
なんでHello world!なのかっていうと、C言語を作った人たちが初めて組んだプログラムだからだそうです。そう考えると、こんな単純な作業でも楽しく思えるから不思議です。
余談ですが、自分のプログラムはcmd.exeにエラーが発生したとかでビルドできませんでした。ウボアー - 大阪ミナミ 08-04-14 (月) 23:45
-
>>達也さん
Hello Worldなつかしいですね。
うちの学校も一番最初にそれをやりました。最初なんで、ビルドエラーでも、なんでもOKですよ。
プログラムはやって失敗して、覚えていくものだと思っています。
失敗せずにいける人は、自分とは違って凄いんだと思って、
やっていましたからね。
自分は最初、ビルドのやり方がわからなくて、
隣の席の奴に聞きましたから。
いや、最初の授業が聞いていなかったのが、本当にバレバレです。自分は1年目の学校は夕方からだったので、
2年目になって朝から学校があった時に苦しみました。
そりゃ、出席日数もギリギリになる(笑)
![プログラムランキング [人気blogランキング]](http://humanfactory.net/dame/images/r01.gif)
