マドノマグラの初心者自作ゲーム制作日誌 迷走モード
プログラミング初心者が自作ゲームを作成してみようとする動きを記す。現在迷走中。
ブログ履歴
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ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
とりあえず壁の移動まで どうくつ探検ゲームを MyGame で作成する作戦
何かゲームを作ろうと考えてみた。すると手元にあったのが、12歳からはじめるHSPわくわくゲームプログラミング教室(ただし私が持っていたのは 3.0)。そこに載っていた、どうくつ探検ゲームを、MyGame を利用して作ってみることにした。
とりあえず、ある決まった高さの上下の壁が右から左にスクロールしていくというところまで作ってみた。
12歳からはじめるHSPわくわくゲームプログラミング教室では、gcopy をつかって、1ドットずつずらしていく手法を使っていた。
でも、MyGame 的にはどうやればいいのかさっぱりわからんので、思い切って、上壁の配列と下壁の配列をそれぞれ、横のドット分(480個!)作って、各配列の位置が、x 座標:0より下になったときに、その配列を、ある高さの壁にして、x 座標:479 から登場させることにした。
多分、これだと処理が遅くなるんだろうけど、そんなの知ったこっちゃない。これをダックタイピングと呼ぶのかどうかは知らんが、もうこれでいいじゃないかと。
MyGame.create_screen 480, 360
は、ウィンドウの大きさ(横幅、縦幅)の指定文
この場合は、480×360のウィンドウを作っちゃえっていうこと。
SDL::WM.set_caption("In The Cave /(c)2008 MDN Lab. ", "")
は、タイトルバーに出る文字とアイコンの指定文
ちなみに、日本語を使おうとしたら、文字化けしたのでとりあえずアルファベットを使うことで茶を濁した。
MyGame.background_color = [0,0,0]
は、そのまんま背景色指定、クロですね。
add_event(:key_down) { go_next_scene }
は、キーが押されたら、go_next_scene の処理をしなさいということ
MyGame::Square.new(479, 259, 0, 100, :color => [255, 255, 255])
は、四角形を作るという指定
この場合は、x=479 y=259 を頂点にして、横幅 0(実質1)、縦幅 100 (多分実質101)の白の四角形を作っちゃいなよということ…だと思う。
@upper[i].render
は、@upper[i] で指定されている図を描いちゃいなよということ。
self.next_scene = TitleScene
は、シーンの切り替えをやってしまえということ。
この場合は、TitleScene というクラスの場面にいっちゃえっていうこと。
ロゴ表示部分を作成 Rubyではじめるゲームプログラミングを読みながら…
とりあえず、初めてのプログラミングで、Ruby の基礎部分はわかったということにして、Rubyではじめるゲームプログラミングを読みながらゲームを作る事にした。
どういうゲームを作るかを考える前に、今後ゲームを作る上で共通部分となるであろう、ロゴ部分の作成を行った。
まず、ホームページ・ビルダー12 [発売記念通常版] バリューパックの(実際、私が使っているのはVer.10だけど…)ウェブアートデザイナーを用いて、ロゴを作成ししかるべきファイルに保存した。
次に、Rubyではじめるゲームプログラミングのp226-230を利用してシーンの雛形を作った。そして、p232-235を利用して、ロゴのフェイドイン、フェイドアウトを行った。
そして、タイトルバーに文字表示させるため、Ruby/SDLのリファレンスマニュアルの SDL::WM.set_caption(title, icon)を参考にした
そして、最初の画面の背景を白にするために p144 を参考にし、同様にp144を参考に、ロゴを画面中央に置くことにした。ただし、ロゴを置くための文が、この本では + になっていたが、- にしないといけないので注意。
工学社
売り上げランキング: 123084




赤ちゃんドラゴンと会話「初めてのプログラミング」13.4追加練習問題2問目
初めてのプログラミングの13.4追加練習問題2問目、赤ちゃんドラゴンと会話を考えてみる。
初めてのプログラミングのp134からのドラゴンクラスをベースに考えることにした。
とりあえず、1文字を入力するとそれに応じたコマンドが実行されるというものにした。さらに、終了コマンドで、すぐこのプログラムを終われるようにした。
オライリー・ジャパン
売り上げランキング: 161616




OrangeTreeクラスの作成「初めてのプログラミング」13.4追加練習問題1問目
初めてのプログラミングの13.4追加練習問題1問目、OrangeTreeクラスの作成を考えてみる。
class 作成。
とりあえず、初期化したときに、高さ1、実の数0、経年0を設定。
木の高さは(経年+1)の2乗
経年の際
実がなるのは4年目からで、その実の数はフィボナッチ数列の2から始まるようにした。
ちなみに、今までに実が1個以上木に付いている場合は、実が落ちたことにして、新たに実がつく。
そして、11年目で木が枯れてプログラムから exit することにした。
また実を獲ってみるときは、0個のときに獲れない表示、1個以上のときは「うまい」表示
とりあえず、全コマンドを入力したものをループさせると、ちゃんと11年目で枯れて終了した。
オライリー・ジャパン
売り上げランキング: 161616




ローマ数字変換メソッド.to_romanの作成「初めてのプログラミング」13.1練習問題3
初めてのプログラミングの13.1練習問題3、ローマ数字変換メソッド.to_romanの作成を考えてみる。
「初めてのプログラミング」練習問題9.4の3問目を考えてみる の newromannumerals0.rb に手を加える形をとった。
数字が1から3999の範囲外のときに、.to_roman が成された場合には、nil を返す仕様にした。
5つの数字についてテストを行い、うまく動作することを確認した。
オライリー・ジャパン
売り上げランキング: 161616




整数階乗メソッド.factionalの作成「初めてのプログラミング」13.1練習問題2
初めてのプログラミングの13.1練習問題2、整数階乗メソッド.factionalの作成を考えてみる。
初めてのプログラミングの p91 に手を加える形で考えた。
5つのパターンについてテストした。
オライリー・ジャパン
売り上げランキング: 161616




配列メソッド.shuffleの作成「初めてのプログラミング」13.1練習問題1
初めてのプログラミングの13.1練習問題1、配列メソッド.shuffleの作成を考えてみる。
配列変化時に連続単語判定の入れ込み「初めてのプログラミング」10.3練習問題1問目リターンズ2の shuffle3.rb に手を加える方針をとった。
いじるところはあまりなかったものの、shuffle3.rb に書いていた shuffleメソッドのままだと、.shuffle を起動させて2回目でエラーを起こした。そこで、shuffling と名称を変えたところ、スムースに進み実行できた。
オライリー・ジャパン
売り上げランキング: 161616




人名誕生日の読み込みと入力表示「初めてのプログラミング」12.6追加練習問題2問目
初めてのプログラミングの12.6追加練習問題2問目、人名誕生日の読み込みと入力表示を考えてみる。
ルール確認
テキストファイルを読み込み
それは each_line で1行ずつ配列格納
さらに、split で1行3個の配列にして、名前をキーにした hash。
その後、名前を入力。
hash で合致したものは誕生日表示。
そうじゃない場合は、データにないよ!と表示。
とりあえずうまくいった。
オライリー・ジャパン
売り上げランキング: 161616




ローマ数字から算用数字へ「初めてのプログラミング」12.6追加練習問題1問目
初めてのプログラミングの12.6追加練習問題1問目、ローマ数字から算用数字への変換を考えてみる。
ルール確認
方針 最大3999まで
nilniiM,MDC,CLX,XVIのレベルを考える。各位の10,5,1要素である。
与えられたローマ数字の文字チェックの開始。
ただし、チェック前に、末尾に改行コードを挿入.
一文字ずつ、疑似的なチェックポインタが動くような感覚で。
5の要素のあるなしチェック
次が10と5要素が来た場合、ローマ数字のルールに反するので不正チェック。以下のチェックは関数呼び出しはあるもののスルー。
そうじゃない場合は、結論の数に数値を追加。
次に1の要素チェックへ移動。
1の要素あるなしチェック
まず、数値に1を追加
あるとき、次の文字の1の要素あるなしチェック
10要素なら、数値は8を追加で、次のレベルへ
5要素なら、数値は3を追加で、次のレベルへ
1要素なら、数値は1を追加。
その次の文字の要素チェック。
10か5要素なら、ローマ数字のルールに反するので不正チェック。
1要素なら、数値は1を追加。
さらにその次の文字チェック
1要素、ローマ数字のルールに反するので、不正チェック。
そうじゃないなら、次のレベルへ
全レベル終了時に、チェックポインタが指す文字が改行コードなら数値表示。
そうじゃないなら、不適正表示。
かなりいきあたりばったりのコードなので、はっきりいってこれがベストなのかはわからん。
オライリー・ジャパン
売り上げランキング: 161616




一人で祝おう誕生日「初めてのプログラミング」12.2練習問題2問目
初めてのプログラミングの12.2練習問題2問目、一人で祝おう誕生日界を考えてみる。
誕生日から10億秒後の世界「初めてのプログラミング」12.2練習問題1問目の入力プログラムをベースに考えることに。
ルール確認
生年月日を入力。その次の年から去年までの誕生日を祝う。
そして、今年の誕生日と現在の日付を比較。今年の分を祝うべきかを決定させる。
なお、今年を入力したときに年齢が出さないための対処法も場当たり的に追加した。
一応、自分の生年月日、自分の生年の大晦日、2007年の2パターン、2008年のパターンをテストして、ちゃんと動いた。
オライリー・ジャパン
売り上げランキング: 161616



