[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 01/30 14:46 / Filesize : 373 KB / Number-of Response : 1041
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

WOLF RPGエディター 質問スレ 其の11



259 名前:名前は開発中のものです。 mailto:sage [2018/04/09(月) 20:56:10.12 ID:ApWY4it3.net]
>>251
ウディタの仕様からの予想と俺なりの解釈なんで、間違っていたらすまん。と最初に言っておく
間違ってたら誰か修正してくれ

ウディタの動作指定の仕様は、【一次予約】と【二次予約】から成り立っているんや。

(A) キャラクターが動いていない(チップの間にいない)状況の場合(移動中?の変数が0の場合)
 1. 移動処理が当たるまで処理を実行する
 2. 移動処理が入っていた場合は移動先のマスが空いているかの確認
 3. 移動先のマスが空いていた場合、Evの座標をそこへ移して、Evの移動処理を【一次予約】に書き込む。変数操作+の、対象Evの移動中?の変数を1にする
 4. まだ行が残っていた場合、【二次予約】へ書き込む
 ※これはコモンEvの場合の処理。マップEvの場合、移動以外の処理にも頻度が影響するため、一番最初の行以外は【二次予約】行き(のハズ)

(B) キャラクターが動いている(チップの間にいる)状況の場合(移動中?の変数が1の場合)
 1. 既に【二次予約】が存在していた場合は、全て消去
 2. 全ての新しい動作指定を【二次予約】へ書き込む

んでウディタの処理順番は大雑把に言うと

マップ並列実行→自動実行→コモン並列実行→ウディタ側の処理→画面更新

って感じ。んでキャラクターを実際に画面上で移動させたりしているのが、このウディタ側の処理なのよ。
このウディタ側の処理がどんな感じで動いているかと言うと

1. 【一次予約】が残っていた場合は処理を行う
2. 【一次予約】の処理分が、この処理で終わった場合、【二次予約】から(A)の処理を行う
3. 既に何も残っていない場合、対象Evの移動中?の変数を0にする

ここで【二次予約】から【一次予約】への移し替えがあるわけ。しかも動作完了と同時に行われる。この処理が、全ての処理が終わった後に行われるっていうのがミソでな。
並列実行や自動実行、呼び出しなんかでは、【一次予約】は書き換えられないんだけど、【二次予約】は書き換えられるので、
キャラクターが動いていない場合は、最初の動作は一次予約に書き込まれるので、「先に実行された処理が優先」されて、キャラクターが動いている場合には「後に実行された処理が優先」される
ように見えるんや






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<373KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef