投稿
nyannzi CornedBeef
格闘ゲームのようなコマンドやタメってどうゆう仕組みでつくっているのですか?
1そうだね
プレイ済み
返信[1]
親投稿
ねこはち neko80001
溜める方向の入力が連続で続いたら、変数に数値を足していきます 入力が変わったらその変数をクリアするのですが、変化したと同時にクリアすると、人間の入力では溜めが上手く機能しないので、途切れてからnフレーム後にクリアする仕組みを作ります ←で貯めて→とボタンで技を出す場合には、→とボタン入力があったら、さらに溜め用の変数をみて通常技か必殺技かに分岐させるのです
0そうだね
プレイ済み
返信[2]
親投稿
ねこはち neko80001
コマンド技の場合はキー入力を一定フレーム分だけ配列に記憶していきます、その範囲内でたとえば↓入力があったらその先に→入力はあるかと順番に調べていってコマンドが成立しているかどうかを決定します ポイントは一定フレーム内だけってところで、本当に↓→が連続している判定をすると、これも人間の誤入力というか、一瞬でも違う入力が雑じると成立しなくなってしまうので、フレームの特定地点(↓を見つけた場所)の先に次の判定(→)があるかを調べるだけでいいのです
0そうだね
プレイ済み
返信[3]
親投稿
ゲームで例えると「R-TYPE」というシューティングの波動砲という考え方ですね。 ボタンを押している間はゲージが溜まり、話すと溜めた分に応じた弾が出る、と。それを十字キー(溜める)とキー+ボタン(発射)に置き換えれば概念として分かると思います。
0そうだね
プレイ済み
返信[4]
親投稿
だんす RP2C33
大きく分けて2種類。 1.過去のボタン入力を数秒分、配列にためておきます。それを毎フレーム、「過去にこのコマンドは成立したかな?」と調べます。タメコマンドなら、例えば「過去100フレーム中に、60フレーム連続でタメたことはあるかな?」などを調べます。 2.コマンドの入力状態を変数に持っておきます。タメコマンドなら、例えば「タメてません」「タメている途中です。今10フレームタメました」「タメおわりました」「タメ終わったけど、10フレームボタンが押されなかったのでタメを解除しました」といったように、状態を変えていきます。 最初は1.が作りやすいかも。2.は、1.で実現できないことが2.で実現できる場合があれば使うといいかも。
0そうだね
プレイ済み
返信[5]
親投稿
nyannzi CornedBeef
なるほどそういう仕組みだったんですね。挑戦して見たいと思います! 皆さんありがとうございます。
0そうだね
プレイ済み
返信[6]
親投稿
nyannzi CornedBeef
タメってこんな感じでしょうか?
0そうだね
プレイ済み