日記

たいとるめんどう [プログラム関係]

自作ゲームのためのスクリプト、まなてんスクリプト(仮)を作ってて
適当にスクリプト言語的なものを作るときに気づいたことを色々。

・敵みたいなオブジェクト指向ならあとでメソッド呼んだりしたいものは
 Rubyのブロックのアイデアを借りてブロック中での命令呼び出しが
 親のオブジェクトへの適応になるみたいなモデルにすると便利
例えば

enemy
  moveTo 20,30
  wait 50
  moveTo 10,20
end

みたいな。
enemyが生成したブロック中でのmoveToやwaitはブロックを生成したenemyへの適応。
これだとわりかし柔軟に敵の生成を行える気がします。
他にも弾を打つbulletやアイテムを設定するitem何かを呼べるようにすると便利。

・ブロックはPythonみたいなインデントで表す形式にするとパースが楽
上の例はendまでがブロックですが、ネストしたブロックだと
たんに次のendまでが自分のブロックとは限らなくなる。
Pythonみたいなインデントでブロックを表すようにすると、インデントの個数で
簡単にブロックの範囲がわかるのでパースがらくちん。
例えば、

for i,5
  enemy
    moveTo 10,10
  wait 50
...

みたいな。
パースが楽ちんだし、記述するときもいちいちend書かなくていいので楽ですね。

何も見ずに一から考えたのですが、結構いろんな発見があって楽しいですね。
例えば上のenemyブロックなんかは最初はenemy.moveToで直前作ったenemyへのみ
アクセスみたいなちょっと柔軟さに欠ける仕様でしたが、
作っててこっちのが便利じゃねと実装しなおしました。

まあこれ作るのが楽しくてゲームは数分で終わるんですけどね!


at 2011-1-22 1:34 | Comment(0)
名前: 削除パス: 非公開
URL:
添付:(jpg,gif,png,200KBまで)

 
required 0.0289 sec