三角端。

Δ-sphere管理人三角区也による絵日記/ゲーム開発日記。コメントは右側のweb拍手からどぞー。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

組み込み関数群

はーい、日曜が終わっちゃうよー


今回からタグを導入してみることにします。
pixivとかニコニコのようなアレね。
今まではカテゴリでなんだかんだやっていこうと思っていたのですが、
絵だったりゲームだったりひとつの記事の中に色んなものを混ぜて書くのでタグのほうが後々分別しやすいのかなあ、と。
ブログをはじめてからずいぶんと経ちますが今更ながらの新設定です。
忘れなければ次もやります。


◆絵
東方・村紗船長
d_illust_376.jpg
なんでひしゃくを持ってるのかなあと思ってたら舟幽霊だからなんですね。
なるほどー


◆ゲーム制作
スクリプトエンジンの組み込みスクリプトコマンドクラス作成中。
スクリプトエンジンを作っていてforとかwhileとかの予約語の処理だけではゲームは作れません。
組み込み関数的な何か、たとえばゲームオブジェクトを作る関数CreateGameObjectとか、が必要になってきます。

スクリプトからはCreateGameObjectを呼べばいいのですが、
プログラム側の実装はどうしましょう、というところです。

当然CreateGameObjectがスクリプトから呼ばれた際にプログラム側の所定の関数を呼び出せばいいので単純な話、
if(CreateGameObjectが呼ばれた){
CreateGameObject~~
}

でいいのですが、このようなコマンドがたくさん出てくるとそのたびにif~else ifを繰り返すのかという話になってきて、すごく大変なのです。
それぞれのコマンドをクラス化してテーブルに突っ込めば、
テーブルを検索して取得したコマンドクラスにアクセスできるので楽ですね。

前置きが長くなりましたが、そのコマンドクラスをどうするかというお話。
1.すべて共通のクラスをを使う。処理は関数ポインタを介して行う。
2.基底クラスを継承したコマンドごとのクラスを使う。処理は仮想関数を継承した関数で行う。

どちらにも一長一短があるような気がして少し悩みました。

1は共通クラスを使うためコマンド名や引数の情報をメンバ変数として持たないといけない。そのため実行時のデータサイズが大きくなる。
可変長の引数情報の設定が少し面倒。メンバとして固定長配列は持ちたくないので外で定義した配列へのポインタが妥当か。
プログラム実行時にインスタンスを作ってコマンド名や実行関数、引数情報の設定が必要。

2は仮想関数かによってコマンド名や引数情報は仮想関数によって定数を取得するようになるのでデータサイズは大きくならない? 仮想関数のポインタが含まれるので大して変わらない? ここについてはよく分からんです。
ほぼすべての情報がクラスごとの関数で取得するようになり、実行時に何も考えずにテーブルに突っ込める。
コンパイルするクラスの数がコマンド数に比例するためコンパイルに時間がかかる。コンパイラが悲鳴を上げる。

2のコンパイル問題はクラスの宣言をcppの中に書いてしまえば解決するのかなあ、と思ったり思わなかったり。


可読性が高い気がするので2で行くことにしました。
コマンドが増えていくと1のほうは登録時のコードが2のほうはクラス宣言のコードが増えていきます。多分。
引数情報とかをクラス内部でしかとか使わないのに登録時にグローバル変数で与えないといけないというのも個人的に気持ち悪いので。


続きに実際に実装するとしたら。
続きを読む
スポンサーサイト

鎌倉行ってきた

鎌倉行ってきました。

なんとなーく外に出たかったのでじゃあ行ってみようかと。
去年の奥多摩と同じのりですね。


photo104.jpg

鶴岡八幡宮とかが有名なんでしょうが、
自分はそんなものには目もくれず山道へ。

photo105.jpg

草のトンネルがいい感じ。

photo108.jpg

謎の人工物。そして、くぼみ。

photo107.jpg

地名見てもどっちに行けばいいのかわからないって言うねw

photo106.jpg


結局迷ってしまって予定していたルートを通らずに歩き回った末、
反対側の駅まで無事にたどり着きましたw
よかった、よかった。


帰ってから、くしゃみと頭痛がひどいです・・・
花粉吸いすぎましたかね・・・


◆拍手返答
>>ミク可愛いですー!ミクミクー! そんなわけで、有給って何のために・・・連帯責任ってッ!自分が頑張っても意味がないだと!?お互いお仕事頑張りましょうぜ!ww
みくみっくにしてやんよ!w
有給なんて・・・ ただ消え行く使命にあるのだ・・・

ミクさん

もう春ですね

「月曜有給取ります!」
「ダメ!」
(´・ω・`)

特に仕事が遅れてるわけでもないのに
他の人が遅れてるから連帯責任的なアレ。

連帯責任ってよく分からんよ・・・


◆絵
3/9がミクさんの日だと聞いてミクさん描いたよ
描き始めたのは10日だけどな!
d_illust_375.jpg

文章窓

放置してしまいました

いやね、更新しようとは思っていたんですけどね、
「ここまでできたら更新するぞ」とか思いつつ作業してて、
予想以上に作業が長引いたりしてしまって今日になってしまいました(´・ω・`)


◆ゲーム制作
というわけで久々の制作報告

screen_247.jpg
文章窓はこんな感じ。

フォントは前回作ったツールで吐き出しています。

んで、プログラム周りの改良。
文章を表示するために、
・フォント素材を読み込む必要→
 メモリ確保周りが使いにくかったので改良

・アニメーションセットにイベントコマンド拡張
 表示用座標データセットに個別用途用座標とかアニメーション用のメッセージ機能とか実装しました


前にも書いたかもしれませんが、アニメーションセットというのはアニメーションのキーフレームやテクスチャ転送UVの集合です。
元データはXMLで書いてます。

文章窓は
・非表示状態
・表示へ遷移中
・表示状態
・非表示へ遷移中
の4つのアニメブロックを作ってそれぞれのタイミングで再生する感じ。

これがあるといろいろ便利なんじゃないかなーとか思いつつ作って使っているのですが、
文章窓のフェードインフェードアウトくらいならプログラムに直接動きを書いていった方が早い気しかしないです(苦笑
まあ、動作テスト的なもの兼ねて・・・(言い訳

きっと、今後楽になっていくはず・・・!

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。