そうだ、ゲームを作ってみよう1

ゲームを作ってみたい。
でも、プログラミングは多少かじったけどどうすればいいのかわからない、という人は案外多いのではないだろうか。
そんな人を対象に、ゲームの作り方というものを書いてゆこうと思う。

ゲーム制作未経験者にお勧めしたいのが、トランプゲームの作成だ。
その理由は簡単、ルールがすでに決まっているからだ。
そして過去の資産を流用しながらのステップアップが可能だからだ。
例えば最初はソロプレイの「7ならべ」を作成し、次にコンピュータ対戦。そして今度はネットワーク対戦へとステップアップ出来る。あるいは、表示周りを流用し「スピード」のようなアクション性の強いゲームを作るのもありだ。

それでは実際に作ってゆこう。
まずは拙作「スピード」のソースコードをダウンロードしてもらいたい。
その中にTRule.asというファイルがあるので開いて欲しい。
このファイル、Ruleという名前のくせに「スピード」に関する定義は2行だけ。他はすべてトランプというカードの内容に関する定義だ。
それでは説明してゆこう。

このファイルではジョーカを0とし、52までの数でカードを定義した。スペードの1が1、スペードの2が2、と続いてスペードの13が13、以降ハート、ダイヤ、クローバーと続く。クローバーの13が52だ。続く関数では数値↔スート/数札の変換を行う。
※スートとはスペードやハートといったマークのこと

3行目から19行目は画像ファイルに関する定義だ。ここは各自環境に合わせて変更してもらいたい。むろん、「スピード」の中のカード画像をそのまま使ってもらっても構わない。いないだろうけど。
21行から23行ではスート、数札、ジョーカを除いたカードの総数と、種々のMAX値を定義。
25〜28行でスートの定義。
30〜33行は絵札やエースなど、数以外の呼び名の定義。
35〜88行でエラー(−1)とジョーカを含むカードの通番定義。
90〜105行で絵札系の通番定義。

次は関数の説明だ。
TRule.getSuitはcardをスートに変換する。
TRule.getNumberはcardから1〜13の数に変換する。
TRule.getDataはsuitとnumberから通番に変換する。
TRule.setDeckはオマケで、TCard型のカードで構成されたデッキを生成する。assetsはenchant.Game.instance.assetsを指定する。ここは書き換えた方がいいだろう。そしてjokerはジョーカの数を指定する。TCard型は「スピード」用のカードSpriteの定義なので、この関数はごそっと消してしまっても構わない。

以上でTRule.asの説明は終わりだ。
気が付いた方もいるかもしれないが、実はこのファイル、Actionscript用に書いたものをJavascript用(というかenchant.js用)に書き直したものなのだ。拡張子はその名残。

次回から実際のゲーム制作に入ろう。作るゲームは「7ならべ」だ。