主にウディタを使ってのゲーム製作についてのブログです ※更新は不定期
[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
キュー操作解説
前回の記事にてキューの説明は省いていたので
今回はキューについての解説を行いたいと思います。
■キュー
キューによって実現できる処理について解説していきます。
例えば、リプレイ処理を実装するときに有効です。
←↑↓→キーで自機が移動するとして
ステージが終了した時点で今回のリプレイを保存する処理を考えます。
毎フレーム、入力されたキー情報をキューに入れていきます。
例えば 『←』が押された場合
『←』に該当する値をキューに入れます。
これを続けていくことにより、毎フレームの操作履歴がキューの中に格納
されます。
リプレイを再生するときは
キューから値を取り出すことによって
操作された順にキー情報を取得できます。
あとは取得した情報をもとに自動でキーを入力する
ようにすれば、リプレイ再生の完成です。
他にも例を挙げると
以下のような文字列が記述された
スクリプトファイルがあるとします。
@message
あいうえお
@wait 2
@message
かきくけこ
上記は
@messageで文章を表示
@waitでウェイトを実行する処理とします。
この場合、『あいうえお』と表示されてから
次に2ウェイトおいてから
『かきくけこ』と表示される処理です。
このファイルを処理するときに逐一読み込んで処理するのも
方法の1つですが、あらかじめ全てデータを読み込む方法も
あります。
後者の場合キューを用います。
まずは@messageを命令格納用のキューに入れます。
そして次の『あいうえお』を別の文字列用のキューに入れます。
次は@waitを命令格納用のキューに入れます。
その後、更に別の数値用のキューに『2』を入れます。
↓
@message を命令格納用に入れる
↓
『かきくけこ』を文字列用に入れる
とすることによって
全てのスクリプトデータを読み込むことができます。
あとは命令格納用キューから順に命令を読み出して
命令の種類によって処理していくようにすれば
順番に命令を実行していくことが可能になります。
あらかじめ読み込んでおくことによって
残りの実行命令数なども管理できるので
管理性が高まります。
以上がキューの使用例の一例です。
このほかにもキューには
環状キュー(リングバッファとも言う)というものもあります。
これはデータの先頭と末尾がつながっているデータ構造に
なりますが、これを使うことで
ログの管理なども行えます。
末尾にどんどんデータが追加され、データがいっぱいになった場合
先頭のデータに上書きされていくため古いデータが自動的に削除
されていき、最新のデータだけが保存されるようになります。
今回はキューについての解説を行いたいと思います。
■キュー
キューによって実現できる処理について解説していきます。
例えば、リプレイ処理を実装するときに有効です。
←↑↓→キーで自機が移動するとして
ステージが終了した時点で今回のリプレイを保存する処理を考えます。
毎フレーム、入力されたキー情報をキューに入れていきます。
例えば 『←』が押された場合
『←』に該当する値をキューに入れます。
これを続けていくことにより、毎フレームの操作履歴がキューの中に格納
されます。
リプレイを再生するときは
キューから値を取り出すことによって
操作された順にキー情報を取得できます。
あとは取得した情報をもとに自動でキーを入力する
ようにすれば、リプレイ再生の完成です。
他にも例を挙げると
以下のような文字列が記述された
スクリプトファイルがあるとします。
@message
あいうえお
@wait 2
@message
かきくけこ
上記は
@messageで文章を表示
@waitでウェイトを実行する処理とします。
この場合、『あいうえお』と表示されてから
次に2ウェイトおいてから
『かきくけこ』と表示される処理です。
このファイルを処理するときに逐一読み込んで処理するのも
方法の1つですが、あらかじめ全てデータを読み込む方法も
あります。
後者の場合キューを用います。
まずは@messageを命令格納用のキューに入れます。
そして次の『あいうえお』を別の文字列用のキューに入れます。
次は@waitを命令格納用のキューに入れます。
その後、更に別の数値用のキューに『2』を入れます。
↓
@message を命令格納用に入れる
↓
『かきくけこ』を文字列用に入れる
とすることによって
全てのスクリプトデータを読み込むことができます。
あとは命令格納用キューから順に命令を読み出して
命令の種類によって処理していくようにすれば
順番に命令を実行していくことが可能になります。
あらかじめ読み込んでおくことによって
残りの実行命令数なども管理できるので
管理性が高まります。
以上がキューの使用例の一例です。
このほかにもキューには
環状キュー(リングバッファとも言う)というものもあります。
これはデータの先頭と末尾がつながっているデータ構造に
なりますが、これを使うことで
ログの管理なども行えます。
末尾にどんどんデータが追加され、データがいっぱいになった場合
先頭のデータに上書きされていくため古いデータが自動的に削除
されていき、最新のデータだけが保存されるようになります。
PR
COMMENT
- 無題
- from: たかねぇ
グッジョブ!(  ̄▽ ̄)b☆
- 2015/02/26 07:29 |
- 編集 |
- *Res
■ Woditoride - April Fool's Day Edition
┗最新版公開日 : 2018/04/01
■ WoditorOptimizer - Ver2.0.1
┗最新版公開日 : 2017/08/31
■ WoditorOptimizer - Ver1.00 -
┗旧バージョン : 2015/04/18
■ WECDeletor - Ver1.01 -
┗最新版公開日 : 2012/11/03
HN:
K-Shin07
性別:
男性
趣味:
ゲーム製作
自己紹介:
趣味でゲームを作っています
プログラマーです
開発ツール・使用言語等
・WOLF RPG エディター
・HSP
・C
・VB
・Java
・C++
・C++/CLI
・C#
・アセンブラ
・Haskell
・PHP
・Ruby
・WPF
・DirectX( 9.0c )
・PhysX( 3.X系 )
Mail
k07.alpha.stella[あっとマーク]gmail.com
プログラマーです
開発ツール・使用言語等
・WOLF RPG エディター
・HSP
・C
・VB
・Java
・C++
・C++/CLI
・C#
・アセンブラ
・Haskell
・PHP
・Ruby
・WPF
・DirectX( 9.0c )
・PhysX( 3.X系 )
k07.alpha.stella[あっとマーク]gmail.com
(2018/08/07)
(2018/07/21)
(2018/04/01)
(2017/08/27)
(2016/10/16)
(2016/10/14)