マドノマグラの初心者自作ゲーム制作日誌 迷走モード
プログラミング初心者が自作ゲームを作成してみようとする動きを記す。現在迷走中。
ブログ履歴
2009/11/09: Rubyで適当版自分用関連記事リンク作成プログラムを作る
2009/06/04: Visual C++(DXライブラリ使用)の環境を整えてみるも休止状態に
2009/03/17: ActionScript勉強の環境を整えるも結局休止状態に
2006/07/15: とりあえず分岐型ゲームを作る グリーンタワーVer1.2 ダウンロード(zip)
2006/07/02: ブログスタート。NScripterで何かを作ろうとする
[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
難しいことを考えずに、じゃんけんゲーム Ver 1.0を作ってみる
とりあえず構造だとかそういう深いことは考えずに、じゃんけんゲームを作ってみた。
Rubyist Magazine - Ruby ではじめるプログラミング 【第 1 回】 をある程度参考にしつつ適当に作ってみた。ただ、これだと繰り返しになる部分が色々あって無駄が多い。
多分、ここから各パーツ事に分離独立していくのだろうなあ。
ちなみに、Rubyリファレンスマニュアル FAQ::日本語の取り扱いも参考にした。
MyGame と Ruby/SDL のインストールにあたふたする
この間、Amazon にて購入した「Rubyではじめるゲームプログラミング」(*1)という本に書かれていた、MyGame と Ruby/SDL のライブラリを利用すると、楽にゲームが作れるようなので、先にインストールすることにした。
MyGame にて、Windows用のRuby/SDL同梱版の mygame-0.9.1-rubysdl-1.3.0-mswin32-1.8.5-p12.zip をダウンロード、及び解凍。
コマンドプロンプトから、インストール用のinstall_mygame.rb 及び、install_rubysdl.rb を実行。その中で一箇所ずつ、エラーメッセージらしきものが出たが無視して、起動するのかどうかのステップへ。
ruby -r mygame/boot -e ""
と打ちこんでみる。もちろん書いているコマンドに意味は不明。
SDL_app という名の黒画面のウィンドウが出れば合格なのだが、見事にエラーメッセージ。
どうやら、Ruby/SDL がうまくインストールできていない模様。
とはいえどうすりゃいいのかわからんので、Ruby/SDL をインストールする方法を探る。
Ruby/SDLのインストール方法にて、
dllファイルはPATHの通った場所 例えば、C:\ruby\bin に
sdl.rb、rubysdl_aliases.rbというファイルを C:\ruby\lib\ruby\site-ruby\1.8\に
sdl.soとopengl.soを C:\ruby\lib\ruby\site-ruby\1.8\i386-msvcrt\に
コピーするといいらしいことが判明。
(フォルダの名前はインストールした場所に応じて適当に変えることが必要)
RubyForge: Ruby/SDL にて、私が入れないといけないらしい、Windows用のバイナリ rubysdl-win32-bin (私には意味不明)の rubysdl-1.3.1-mswin32-1.8.6-p36.zip をダウンロード。
解凍後、上記のように、解凍された各ファイルを、所定の場所にコピーした。
その後、再び謎のコマンド
ruby -r mygame/boot -e ""
と打ちこんでみると、SDL_app という名の黒画面のウィンドウが出た。おそらく、うまくいったのだろう。
こんな風に、なんだかよくわからないまま、インストールは完了したのだった。
インストールだけでここまであたふたするレベルで、どこまで Ruby を学ぶことができるのか、今後の活躍をご期待ください。
(*1:只今、当サイトはアマゾンアソシエイト申請中、許可され次第、商品リンクに変更)
One-Click Installer を用いて Ruby をインストール そして恒例の "Hello world"
何はともあれ、Ruby をインストールしないと始まらないわけだ。ちなみに私は Windows使いである。
そこで、RubyForge: One-Click Ruby Installer のサイトへ行き、One-Click Installer - Windows 1.8.6-26 Final Release をダウンロード、そして、インストールを行った。
あとは、Rubyist Magazine - Ruby ではじめるプログラミング 【第 1 回】に従って、Hello World をコマンドプロンプトから表示させた。
ちなみに、私が使用したエディタは、TeraPad の Ver.0.92 である。
こんな "Hello World" レベルですでにコマンドを打ち間違えている状況という私(puts を put と打ち間違えた)に、Ruby 習得の日は来るのか?
新たに Ruby を学んでみる事にした
久々の更新、約1年9ヶ月ぶりである。適当に作ったゲーム、グリーンタワー以来、ちっともゲーム制作なんてものは行ってこなかったわけだ。
本家の駄文ブログ、アホ理系青年の主張/窓野マサミ・真 非公式Blog にかかりっきりになっていたからだ。
これじゃいけないなあということで、ゲーム制作を再開しようかなと思ったわけだ。
でも、NScripter でゲーム作りということでは、結局の所、自分の能力はあまり上がりそうにないなあという思いもあるわけだ。
じゃあどうしようかなあということでたどり着いたのは、そうだ Ruby で何か作っちゃえというところだ。
Ruby を学んでいけば、いずれは Ruby on Rails あたりにまで手を出して変なものが作れるかもしれない。そんな密かな野望が芽生えたのである。
ただ、Ruby で本当にゲームが作れるのかどうかはさっぱりわからんので、色々な本・ネット情報を駆使して、なんとかしていこうということなのである。
というわけで、新シリーズ Ruby で何か作れるぐらいにまでなっちゃえプロジェクトスタートである。
一応の完成版 グリーンタワーVer1.2
さらにタイトル画面っぽいものを作り、グリーンタワー ver.1.2 として完成させた
文字列スプライト表示
ボタン定義
文字列スプライトボタン化
ボタン処理
ボタンを押してのメニュー表示
右クリックの無効有効
クリック待ち・改ページ待ちの自動化
デフォルトカーソル読み込み
さらにこれらを取り入れてみたわけだ。
さて、これからは、次のゲームを考えるのと、このゲームを紹介するサイトを作る作業にうつるのである。
グリーンタワーVer1.2 ダウンロード(zip)
デフォルトのカーソルファイルを組み込む。
もう、説明は不要ですな。
デフォルトのカーソルファイル内のbmp6種を実際に作成したゲームの、nscr.exeと同じフォルダにいれると自動的にこれらのファイルが読み込まれるのだ!
(アーカイブの中でもOK)
これで、改行待ちかどうかがわかるようになるわけだ。
クリック待ちや改ページは自動的なんだよ clickstr
クリック待ちや改ページを行うときは、毎回「@」「\」を書かなければいけない。
これでは、非常に面倒である。そんなときに役立つコマンドである。
定義ブロックで扱うコマンドである。
clickstr "文字列",数字
文字列:ここで指定された文字が現れたときに自動的にクリック待ちさせることができる。
数字:画面下端と文章の空白行数が数字より小さくなったときに、指定された文字が現れたら自動的改ページ。
ただ、文字列が連続で出たときはクリック待ちは一回のみ。
例:あんたバカ!?
指定された文字でも、クリック待ちをさせたくないときは、直前に"_"(アンダーバー)を入れればOK。
右クリック機能を無効にしたり有効にしたり rmode
大事なシーンなどで、右クリックを無効にしておきたいということも出てくるわけである。
そんなときのは、このコマンド。
rmode 数字
数字
0:右クリック機能無効
1:右クリック機能有効
これで、それなりの右クリックの使い手になれたわけである。
ボタンを押してのセーブだとかロードだとか。 systemcall
タイトル画面で「続きから」を押したときに、ロード画面を呼び出せないといけないわけだ。
というわけで、呼び出すためのコマンドである。
systemcall 機能
機能:呼び出したい機能(rmenuと同じモノが選べる)
save…セーブメニューを出す。
load…ロードメニューを出す。
lookback…回想モードに行く。
skip…「選択肢まで進む」をクリックするのと同じ。
windowerase…ウィンドウを消す。
reset…プログラムをリセットする。
ただ、このコマンドを使うときは、本来のシステムメニューは一時的に切っておいたほうがいいでしょうということである。
というわけで、次はシステムメニューは一時的に切る方法である。
ボタン処理 btnwait2
ボタンが押されて処理をする=変数に戻り値を代入
というプロセスで、どのボタンが押されたかを認識するわけだ。
btnwait2 数字変数
戻り値は以下のとおり
どのボタンでもないところをクリックした:0
右クリック:-1
ボタン領域が押された:ボタン番号
こうやって、認識されるわけだ。
あと、ボタン処理が終わって、ボタンが要らなくなったら、他の処理がメモリを使えるように、ボタン定義をクリアして、ボタン画像を解放しておくことをお勧めしますとのこと。
さて、次はどうしたのものか……