見切れ・重なり反応を里々風に¶
概要¶
YAYAで里々スタイルの見切れ・重なりイベント処理を実装する方法を説明します。里々では見切れ・重なり状態でも「多少の間を空けてから」イベントが発生するため、YAYAでもこの自然な動作を再現できます。
タイマー機構を使って5秒の遅延を設けてから反応させることで、即時反応ではなく自然な挙動を実現します。
コード例¶
実装例1(基本版)¶
OnSecondChangeイベント内でタイマー機構を使用します。
OnSecondChange {
// 見切れ処理
if reference1 == 0 {
// メインキャラが見切れている
if mikireflag == 0 {
mikireflag = 1
mikiretimer = 5
}
elseif mikiretimer > 0 {
mikiretimer--
}
else {
// 5秒経過で反応
mikireflag = 0
"\0\s[0]はみ出てます。\e"
}
}
else {
mikireflag = 0
mikiretimer = 0
}
// 重なり処理
if kasanarienable {
if reference2 == 1 {
if kasanaritimer > 0 {
kasanaritimer--
}
else {
kasanarienable = 0
"\0\s[0]重なってます。\e"
}
}
else {
kasanaritimer = 5
}
}
}
実装例2(改良版)¶
配列形式のreference[1]・reference[2]を使用し、ISVAR()関数で変数初期化を確認するより堅牢な構造です。
OnSecondChange {
// 変数の初期化確認
if !ISVAR(mikiretimer) {
mikiretimer = 0
mikireflag = 0
}
if reference[1] == 0 {
if mikireflag == 0 {
mikireflag = 1
mikiretimer = 5
}
elseif mikiretimer > 0 {
mikiretimer--
}
else {
mikireflag = 0
"\0\s[0]はみ出てます。\e"
}
}
else {
mikireflag = 0
mikiretimer = 0
}
}
説明¶
主な変数の役割:
| 変数 | 説明 |
|---|---|
mikiretimer |
見切れ検出までの待機時間(5秒) |
mikireflag |
見切れ状態を追跡するフラグ |
reference1 / reference[1] |
メインキャラの表示状態 |
kasanaritimer |
重なり検出用タイマー |
kasanarienable |
重なり反応の有効フラグ |
改良版ではreference[1]・reference[2]の配列形式を使用し、ISVAR()で変数の初期化チェックを行うことで、より安全な実装が可能です。
作者: 関谷博志 最終更新: 2021年2月27日
関連項目¶
- マニュアル/関数/ISVAR
- Tips/高速化