プログラム開発メモ

メモ

ノベルエンジンについて


 10/27

 スクリプトを一文字ずつ読み込んで、描画を繰り返す。
 メッセージを一度に表示しようとすると、その間にキャラや背景を動かすことができなくてつまらない。
 ただし、画面全体のクリア時に、描画していた文字が消えてしまうため、メッセージ配列に保存して
 おき、再度描画してやる必要がある。(最新の一文字だけ表示される状態になってしまうため)
 だが、その際改行のタイミングが不明となる。
 そこで、メッセージは2次元配列に保存するようにし、改行は1次元目配列の番号を進めることで
 表現する。つまり改行タグ(@r)が来たときに、1次元目配列を一つ進める。
 1行につき、1配列を使う感じ message[行番号][文字列]

 また、メッセージスピードによる待ちのためにWaitTimer()を使うと、
 ゲーム自体が止まってしまうために、結局そこで待っている間は何も動かせない。
 なので、メッセージを一文字表示後、現在時間を取得しておき、次回そこに来たときに、
 前回の時間取得時から30ms経っていたら文字を表示する、などという処理をする。
 つまり以下のようになる

 if( (現在の時間 - 前回の時間) > 30 ) then 文字表示するよん

 これにより非同期処理が可能になる、はずである。気がする。
 ちなみに時間計測は、Windowsが起動した次点からのms精度のタイマーを使う。
 戻り値はInt型のため、2147483647msを超えた次点でマイナス値になる。
 大体1月以上PCつけっぱにしてると超える。まあ考えてみたら超えても問題なかった。

 立ち絵は逐次スクリプト文が来た次点での読み込みとする。
 コントローラで読み込みしちゃっていいのかな? まあいっか。しらんわ。

 キャラクターレイヤ番号を指定し、そこに当てはめる画像を読み込む、という仕様の予定。






過去ログ

■進捗
日付 作業内容 進み具合
10/11 キャラクターレイヤークラスの作成 30%ぐらい。まだちょっとこれでいいのか悩み中……。
10/13 キャラクターレイヤークラスの作成 概ね完成。まあとりあえずいいんじゃないでしょうか。
10/16 メモリ管理バグ修正        しばらくやってみたが原因わからず。知り合いにも調査依頼中。
10/22 メモリ管理バグ修正        やっと修正完了……。デストラクタをvirtualにするとか知らんわw
10/23 マップチップ配置テスト      とりあえずSimSceneの表面実装完了。マップチップ配置テスト中
10/24 マップ配置及びスクロールテスト 画面スクロール実装。なかなか調子良さげ
10/25 ノベルエンジン作成 基本機能実装したものの、イマイチなのでやり直し濃厚
10/26 ノベルエンジン作成 やり直しし、順調に進む。ただしメイン部分と組み合わせにくくなった
10/27 ノベルエンジン作成 なんというか予想通り問題発生
10/29 ノベルエンジン作成 逐次画面クリアに対応
10/30 シーン設計の見直し 大幅に変更する可能性が大
10/31 シーン設計の見直し コントローラボックスを用意する方向で考え中。
日付 作業内容 コメント
11/01 シーン設計の見直し /^o^\フッジサーン
11/03 シーン設計の見直し 突破口がやっと見えてきた。ゴールしてもいいよね…。
11/05 シーン設計の見直し ゴー…ル……
11/06 ソースコード整理 そろそろごちゃごちゃなので纏める
11/07 シーン設計 コントローラの有効無効の設定
11/08 移動処理作成 算数できない(^q^)
11/10 ソースコード整理 これだけで10時間かかるだろ……
11/13 移動処理作成 移動処理の前にやることたくさんあった/^o^\
11/17 ノベルシーン作成 移動処理が進まずこっちをやってしもうた
11/23 移動処理作成 まあ大体できた
11/30 コレクションシーン作成 あとちょっとでいけそう

   ・SRPGの移動処理を作成する
     →ユニットクラスの作成する OK
     →カーソル座標とユニット座標を実装 OK
     →マス座標からピクセル座標に変換し描画 OK
     →重なっていたときにキーが押されたら移動処理をする。OK
     →移動力に従って移動範囲を作成 OK
       →その前にマップクラスの作成 OK
        →マップ地形クラスの配列、マップステージ配列を持たせる OK
        →マップ地形クラスには、地形の画像及び移動コスト、特殊効果等を持たせる OK
     →移動経路の作成 OK
     →移動処理 OK
   ・CVSからのマップ読み込みに対応する
     →配列からの読み込みには対応。
     →CVSファイルから読み込み、配列に入れればOK
   ・命令タグのリソース指定に対応する。
     →検索用関数をつくればOK


 ■課題・問題点
   ・マップ全体の形が菱形でなく長方形と予想されるため、ベストな方法を模索中。
   ・マップチップの配置ってX座標+1したほうがいいのかなぁ……。
   ・マップチップ等を上から順に描画しなければいけない。
   ・ノベルエンジンのスクリプト仕様を考案中。
   ・メイン部分にどうやって実装しようか考え中。
     →メッセージスピードの変更や、非同期の処理(メッセージ表示しながらキャラクタを
      動かす等)は可能になったと思われる。
   ・逐次画面クリアするのでメッセージ配列は全て保存しておかなくて
    はいけないという問題発生。うーん、どっちがいいんだか。

 ■その他・予定変更など

   ・ドット絵素材のサイズは、基本的に8の倍数が良いかと思います。
    理由は色々ありますが、主な理由は、「すべて8の倍数のサイズで」という風に決めておかないと、
    マップチップ上に配置したときにわずかにずれてしまいます。後々そのズレが大きくなる可能性
    もあるので、基本は8の倍数で描かれることが多くなっています。
最終更新:2011年12月07日 08:47
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。