忍者ブログ

RPG製作ソフト「Role Paint」を作っていくぜ!ツクールのようなRPG製作ソフト「Role Paint」を作っていくブログ。 相互リンク募集中

イベントコマンドをどこまで複雑化すべきか?

延々とビジュアルプログラミングの動きを進めているが、ここで重大な問題が発生している。

それはどこまでビジュアルプログラミングを複雑化すべきか?というもの。
作っていくとイベントコマンドの仕様が普通のプログラミング言語並みに複雑化していっているのである。それをどうするべきか?

・変数

これは別にツクールやウディタでも使われている概念だから問題はないだろう

・配列、For文

プログラミングには欠かせない物だが、ツクールやウディタには搭載されていない。配列とは「変数をエクセル表のように一繋ぎにした物」なので分かりやすいと思うが、For文は結構ややこしい。「1つの変数を操作しながらループする機能」といえば分かるのだろうか?

For文を理解できない人は普通の繰り返しを使えばいいとも言えるが・・・。

・関数の引数と返り値

関数に変数を渡し、結果を返してもらうという事だが、これは初心者に理解できるのだろうか?
引数無し、返り値なしの関数はツクールではコモンイベントという形で実装されている。またウディタでは引数に近い概念は実装されているが・・・。

・構造体

一番の問題はここから。C言語を使える人なら常識だが、構造体というのは、平たく言えば変数の型を幾つか組み合わせて新しい型にした物である。

まず名前を表す変数を電話番号を表す変数、住所を表す変数があったとする。これら三つを一纏めにして個人情報という変数という扱いにする。これが構造体である。

大抵のゲームのキャラのデータはこの構造体によって表される。例えば敵キャラのデータはHP、MP、攻撃力等のパラメータ(変数)を一纏めにした構造体である。

初心者はこれを理解できるのだろうか?例えばツクールでイベントコマンドで主人公のHPを回復させる場合、専用のイベントコマンドを呼んで

HPの増減:[主人公,] +30

とやるが、これは下記のように書き直せる

主人公の中にある変数、HP←主人公の中にある変数、HP+20

通常のプログラミングだとこうなる

主人公.HP=主人公.HP+20

後者二つのほうがわざわざ関数を作る必要もなく、非常に楽なのだが、これは初心者にとって壁となりうるか否か?

・関数ポインタ

これもC言語を扱っている人には常識的だと思うが、関数そのものを変数として扱うという物。
つまり、ツクールのイベントコマンドでいえばコモンイベントを変数として扱うのだ

・・・おそらくツクールやウディタのイベントコマンドしかやってない人はどういうことだ?と思われても仕方がないだろう。が、私の文章力ではこれ以上の説明のしようがない。

・構造体と関数ポインタが理解できたら?

もし関数ポインタと構造体を初心者が理解できると分かった場合、個人的には大分楽になる。

この二つの概念を理解できればオブジェクト指向なんてすぐに理解可能である。早い話、オブジェクト指向とは「後で一定の範囲内ならば改造可能な構造体」であり、「その構造体には関数ポインタが基本的に使用される」ような物である。この二つを理解できればオブジェクト指向はすぐであろう。

拍手[1回]

PR
Comment
name
title
color
mail
URL
comment
pass   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
コメントの修正にはpasswordが必要です。任意の英数字を入力して下さい。