ゲームや日記を公開中。 --- a blog about games, life. my handle is 'd_of_i'.
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
完成はとりあえずしそうなくらい順調に作成中なワケですが、問題が2点。

・面白くない。
・Rubyを使っていない。


カテゴリ名はこっそり変更するかも。

いや、もー面倒だからしないかも。
スポンサーサイト
ゲーム画面を連続保存して、GIFアニメを作る機能を実装してみました。


それで保存してみたのがこちら。
test2.gif



フルカラーを256色にしてるわけですが、予想以上に汚いですねぇ。
とても使えたものではない。無駄なことをしてしまいました。
なのに全然手をつけてませんでした。
ちょっと時間的に間に合うか微妙かも…。
DirectX9を使ってゲームを作っていた訳ですが、
考え直してOpenGLで行く事にしました。

なぜかというと、
以前DirectXで作ったソフトが特定の環境で
OSごと落ちたことがあって、その時の嫌な記憶が蘇えりまして。

それはビデオカードのドライバ更新で直ったので、
恐らくドライバの不具合だと思われるんですが、
それの対応に追われたりするのはやはり嫌ですし。

作り直しー。
今日は休みなので少し製作を進めました。

基礎部分がだんだん出来てきて、次のようなことが出来るようになりました。


# プログラム最初に一回呼ばれる
def setup

# 画面の大きさを設定
size 200,200,0

end

# 毎フレーム呼ばれる
def draw

# ポリゴン描画開始
shape(TRIANGLES){
vertex 100,10,0
vertex 10,190,0
vertex 190,190,0
}

end




上のようなRubyプログラムを書くと

test1.jpg

このように表示されるようになりました。



今日は主人公の絵も頑張って描いたので公表します。
bneko.png


あー色々微妙!
全然進んでいませんよ。


3分ゲーコンテストに出すゲームは、
割とちゃんとしたアクションゲーム作る予定なんですが、
こりゃ絵とか描いてる暇無いかもす。

これまで素材屋さんは一切利用したこと無かったのですが、
今回は頼っちゃうかもしれません。

素材屋さんは全然知らないんで、
どう探したらいいのかわからないのが難点。
役立つブログにしようと思い立ち始めた、
「Rubyで作るWindowsげー」日記は、
なんと一週間で途絶えてしまいました。
我ながらこの飽きっぽさはなかなかのモノだと思います。


需要もあまり無いだろうし、このまま何事も無かったかのように
カテゴリごと消去しようと思いましたが、もうちょっと頑張ってみます。


とりあえず目標があった方がやる気が出るので、
次回の「3分ゲーコンテスト」に応募できるよう、
つまり、あと一ヶ月半以内に完成するよう頑張ります。
先日のコメント欄にて、「そもそもrubyって何が便利なのさ」という疑問に、私は「記述が楽」と答えました。

じゃーどれくらい楽なのか。

試しにこんなプログラムをC++とRubyで書き比べてみました。


5 9 8 7 5 6 7 8 2 1 6
という感じに、空白区切りの数字が書かれた"test.txt"というファイルがある。
これを読み込み、数字を降順にソートし、空白区切りの数字として、"out.txt"というファイル名で出力せよ。




// C++

#include <vector>
#include <fstream>
#include <algorithm>
#include <functional>

main(){
std::vector<int> values;
std::ifstream is("test.txt");
std::copy(std::istream_iterator<int>(is),std::istream_iterator<int>(),std::back_inserter(values));
std::sort(values.begin(),values.end(),std::greater<int>());
std::ofstream os("out.txt");
std::copy(values.begin(),values.end(),std::ostream_iterator<int>(os," "));
return 0;
}





# Ruby

File.open("out.txt","w"){ |out|
out.print IO.read("test.txt").split(" ").sort{|a,b|b<=>a}.join(" ")
}





さてどうでしょう。
私はC++は好きなのですが、何から何までC++で書くととても疲れます。

C/C++等の静的言語しか知らない人は、
試しに動的言語と言われる類の言語も勉強することをオススメします。

ではまた次回。
今日はC/C++からRubyスクリプトを実行させてみましょう。

前回落としたRubyソースがあるディレクトリにインクルードファイルの探索パスを。
前回コンパイルされて出来た生成物があるディレクトリにライブラリ探索パスを通しましょう。

テキトーにプロジェクトを作って以下のように記述します。




#include <ruby.h>
#include <version.h>

#pragma comment(lib, "msvcrt-ruby18.lib")

void test();

main(){
ruby_init();
ruby_init_loadpath();

test();

ruby_finalize();

return 0;
}


void test(){
rb_eval_string("p 'test' * 2");
}




はいRubyの組み込みできました。実行すると
testtest
と表示されます。



次回に続く。



//びっくりするほど説明ヘタですな。
//これで理解できる人は、多分読まなくても出来るでしょうな。
//まぁ連載続ければ多分上手くなるんじゃないでしょうか。
//今後に期待ですね。
Windows + 統合環境育ちの人はRubyのソースをホイと渡されても、コンパイルすらできない人が結構います。

なので本日は「砂肝でも分かるVCでRubyをコンパイルする方法」をおおくりすることにしました。


・まずRubyの最新版のソースをココからダウンロードしましょう。

・圧縮ファイルになっているので、展開しましょう。

・そうするとruby-1.8.2というフォルダが現れるはずです。
 これをc:\に置いたモノとして話を進めます。

・C:\ruby-1.8.2\win32 のフォルダの中に configure.bat というのがありますから、これを実行してください。
 Makefile というファイルが出来るはずです。

・次にVCを立ち上げます。VCは.NETを想定してますが、VC6でも多分あまり変わらない感じでできます。

・メニューから ファイル→新規作成→プロジェクトと選びます。
 すると次のような画面になります。

rbc1.jpg


・このように、プロジェクト名は「win32」、場所は「c:\ruby-1.8.2」とし、「メイクファイルプロジェクト」を選んだら「OK」をクリックしましょう。



rbc2.jpg


・次の画面で、「アプリケーションの設定」を選び、ビルドコマンドラインに「nmake」と記述しましょう。
 出来たら「完了」をクリックしてください。

・後はビルド(F7)を押せばコンパイルが始まり、exeやlibやdllなどをホイホイ吐き出されてきます。

・おしまい




追記

環境変数にいくつか設定してないと、nmake.exeが見つからなかったりしてconfigure.batの実行で失敗するようです。

というか、↑これを読むより

VisualuRuby強化計画(仮称 コンパイルして動作環境の構築を読んだ方がいいと思いました。

このエントリのことは忘れてください。私は忘れました。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。