操縦型でボタンの2度押しを処理するルーチンを作った。
ボタンひとつだけならいくらでもやり方はあるのだけど。
十字キーの2度押しで急速移動をする場合、8方向それぞれにローカルなカウンタやループを作っていてはおぼつかない。
そこでカウンタ取得のボタン状態値を使って一括処理する方法が考えられる。
前回のボタン状態値をA、今回のボタン状態値をBとすると
B=B-(AandB)が今回新たに「押された」ボタンだ。
前回「押された」ボタンをCが保持しているとすればさらに、
D=CandBは2回以上連続で押されたボタンの値になる。
ここに0.3秒経過でCを0クリアする操作を含める。
以上で、ボタンが押されている→Dがそのボタンの値か?
で移動と急速移動に1チップで分岐できるようになる。
チップ数を食う十字キーの組み合わせ判断をジャンプ、移動、急速移動で共有できることになる。
実際に試してみると操作感は良好で、斜め急速移動はボタンを2つ同時に押すので入力がやや難しいが十分使っていける。
上記のボタン状態値の計算は、対象とするボタンが増えても一定で、時間にすると9チップ分かかっている。
以前書いたように操縦型は最低限の反応性を保証してやらないと扱いにくいので、この9チップは非常に高コストと言える。
この方法に限らず、操縦型ではCPU性能がまったく追いついていない。
次回作ではCPU速度をさらに上げてもバチは当たらないんじゃないだろうか。
ボタンひとつだけならいくらでもやり方はあるのだけど。
十字キーの2度押しで急速移動をする場合、8方向それぞれにローカルなカウンタやループを作っていてはおぼつかない。
そこでカウンタ取得のボタン状態値を使って一括処理する方法が考えられる。
前回のボタン状態値をA、今回のボタン状態値をBとすると
B=B-(AandB)が今回新たに「押された」ボタンだ。
前回「押された」ボタンをCが保持しているとすればさらに、
D=CandBは2回以上連続で押されたボタンの値になる。
ここに0.3秒経過でCを0クリアする操作を含める。
以上で、ボタンが押されている→Dがそのボタンの値か?
で移動と急速移動に1チップで分岐できるようになる。
チップ数を食う十字キーの組み合わせ判断をジャンプ、移動、急速移動で共有できることになる。
実際に試してみると操作感は良好で、斜め急速移動はボタンを2つ同時に押すので入力がやや難しいが十分使っていける。
上記のボタン状態値の計算は、対象とするボタンが増えても一定で、時間にすると9チップ分かかっている。
以前書いたように操縦型は最低限の反応性を保証してやらないと扱いにくいので、この9チップは非常に高コストと言える。
この方法に限らず、操縦型ではCPU性能がまったく追いついていない。
次回作ではCPU速度をさらに上げてもバチは当たらないんじゃないだろうか。
PR
[ 続きを読む ]
改良型ができました。
だいぶ使いやすくなったと思います。
前回からの変更点
・ボタン状態に変化がない場合に移動ルーチンを無視してルート短縮
・ジャンプと遠距離格闘の着地動作中に先行入力受付
・急速移動を連続可能に
・急速旋回の追加
・ガードと伏せの追加
・ロック解除機能の追加
・通信機能の追加
ダウンロードはこちら
ボタン配置
【移動】
上下左右 …… 通常移動8方向
× …… ジャンプ9方向
上下左右x2 …… 急速移動4方向
R+左右x2 …… 急速旋回
【攻撃】
○ …… 格闘
□ …… 主射(5連射)
△ …… グレネード
R+□ …… 主射(反転した射撃モード)
R+△ …… ソニック
【防御】
R+○ …… ガード
R+× …… 伏せ
【索敵】
L …… ロック+自動旋回正面
R+L …… 自動旋回解除/起動
Lx2 …… ロック解除
【通信】
L+□ …… Ch1にターゲット識別番号送信
L+△ …… Ch1に-1を送信
L+○ …… Ch1に-2を送信
L+× …… Ch1に-3を送信
自律機能
・ターゲットが車両または飛行のとき主射は狙撃モード
・修復装置の使用
・ミサイル接近時にソニックまたはECMの使用
・伏せ中にミサイルが隣接したら自動でジャンプするかもしれない
だいぶ使いやすくなったと思います。
前回からの変更点
・ボタン状態に変化がない場合に移動ルーチンを無視してルート短縮
・ジャンプと遠距離格闘の着地動作中に先行入力受付
・急速移動を連続可能に
・急速旋回の追加
・ガードと伏せの追加
・ロック解除機能の追加
・通信機能の追加
ダウンロードはこちら
ボタン配置
【移動】
上下左右 …… 通常移動8方向
× …… ジャンプ9方向
上下左右x2 …… 急速移動4方向
R+左右x2 …… 急速旋回
【攻撃】
○ …… 格闘
□ …… 主射(5連射)
△ …… グレネード
R+□ …… 主射(反転した射撃モード)
R+△ …… ソニック
【防御】
R+○ …… ガード
R+× …… 伏せ
【索敵】
L …… ロック+自動旋回正面
R+L …… 自動旋回解除/起動
Lx2 …… ロック解除
【通信】
L+□ …… Ch1にターゲット識別番号送信
L+△ …… Ch1に-1を送信
L+○ …… Ch1に-2を送信
L+× …… Ch1に-3を送信
自律機能
・ターゲットが車両または飛行のとき主射は狙撃モード
・修復装置の使用
・ミサイル接近時にソニックまたはECMの使用
・伏せ中にミサイルが隣接したら自動でジャンプするかもしれない
未開封のUMD版エクサどうしよう。
konozamaにいても立ってもいられずDL版を購入して以来ずっとDL版で遊んでいたので、届いたUMDのほうはサントラを聞いた以外はまったく手をつけずに残してあります。
konozamaにいても立ってもいられずDL版を購入して以来ずっとDL版で遊んでいたので、届いたUMDのほうはサントラを聞いた以外はまったく手をつけずに残してあります。
[ 続きを読む ]