忍者ブログ
ゲームを作りながらFamous Writerを開発するブログ
[2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [10]  [11]  [12
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

というわけで、C++のOS Xへの移植が終わりました。
画像表示などの機種依存の部分はクラスにして、それらをMac用に新たに作るだけで行けました。
コンパイラや管理部分はそのままコピーで、同じソースコードで動いております。
Famous Writerに限らずソフトをC++で開発するならば、この方式で行けそうかなという感触を得ました。


とはいえ、Macだと思って油断してたら、Navigation Servicesだけで二晩つぶれたりしましたけれど(笑)。
だって今まで、あんなのREALbasic丸投げで、いじったことなかったんだもん。
あと、ソースとしては、OS 9対応も視野に入れて書いてはおりますが、前回申し上げた通りMPWの問題が解決しないとできません。
NibとかCarbon Eventsとか、ナウイ技術は使ってない模様。Classic版も行けるようになったら、そのあたりをCarbonに特化したものに作り直したいところです。
PR
いやいやいやいや………(以下百万回)。
すっかりFamous Writerの開発をさぼっております。

何をやっておったかと申しますと、Visual C++ ExpressとProject Builderに手を出しておりました。
どうもCは敷居が高いなと思って食わず嫌いしてたんですが、やってみたらはまりまして、先週は毎晩サルのようにいじっておりました。
昨日も、ブログだけは更新しようと思ってたんですが、気づいたら夜中の二時という体たらくです。

きっかけと申しますか、ネットサーフィンしておりましたら、山亀本舗さん(http://www.yamagame.com/)の「Windowsゲーム作成入門(http://www.yamagame.com/MyWeb/Heart/heart05.html)」を発見いたしまして、思いっきり触発されました。
シンプルなゲーム用のソースを公開なさっておるのですが、設計が私の理解の範囲内で、なるほどこういう風に関数を配置すればいいのかと。
この場をお借りして、素晴らしいソースに感謝いたします。

ということで、まだWindowsのみですが、作ってみました。
なお、設計は参考にいたしましたが、ソースはパクっておりませんので、念のため。
Windowsから始めたのは、単にProject BuilderよりもVisual C++ Expressのほうが使いやすかったからです。
あと、Cのchar型の扱い方がわかってないため、エラー処理やバッファオーバーラン対策などが織り込まれていないので、公開に耐えうるレベルではございません。従って、今のところexeは公開はいたしませんのでご理解お願いいたします。
VC++

機能としては、テキストを読み込んで(freadですけど)、簡単な中間言語を作り、32bit DIBのオフスクリーン経由で描画します。
仕組みとしてはFamous Writerと同じですが、C初心者のくせにそこを目標にするなよ私、という気もしないでもなく。
ちなみに、お約束通りポインタの使い方がよくわかってないレベルです(笑)。
これをこれからProject Builderに移植して、Mac OS Xでも動作するようにいたします。
Mac ClassicのMPWにも移植したいんですけど、私が#includeするとリンカがmain()を見失って対処方法がわからないレベルの初心者なので、困ったなあという感じです。

もう少しC++で遊んだら、Famous Writerの開発に戻ります。
Mac版はUB化の問題とかありますので、Famous WriterはC++で書いた方がいいのかもしれませんけれども、まあ私がそんなレベルなので、当分REALbasicで開発いたします。
とはいえ、この一週間で少しはC言語のレベルがアップしたので、Mac版は徐々に処理をC++のプラグインに移してゆくかもしれません。
ドラクエで言うと、スライムに殺されないぐらいのレベルにはなったんじゃないかなあ。ラスボスまでは遠い道のりですが。
申し上げてきたとおり、組み込み関数が数式と入れ子に対応したのと、音声機能が使えるようになりました。
v4開発途上版ダウンロード

数式は、論理演算とand/orが使えるようになりました。andは&、orは|の演算子にしました。
具体例は、命令マニュアルの「変数と条件文」のページをご覧いただきますようお願い申し上げます。
音声機能は、まだFamous Writer自体に時間軸の概念が実装されていないので、現段階ではフェード関係の命令は使えません。
そのへんはまた、時間軸を作ったときにという事で。

それから、QuickTimeインストール下では、オーディオなら環境設定のイコライザーが使えると思います(MIDIは不可)。
なお、モロにQuickTime丸投げで処理してるんで、私に詳細を質問されてもお答えできません(笑)。
普通の音声ファイルなら大丈夫だと思いますが、QuickTimeが'soun'として扱っているトラックに対し、再生前にEQするようにしてあります。

あと、最近気づいて検証したことのご報告ですが、v4ではアンカー名に日本語の使用が可能になっております。
v4の文字列処理は、あらかじめUTF-8を織り込んで作っておりますので、考えてみれば当たり前です(v3はv1の名残で、Shift-JISとUTFが混在している箇所があるかもしれないので、半角英数字を使ってください)。
なお、アンカーのみで、ファイルは半角英数字を強く奨励していることに変わりありません。
プログラムの仕組み上、ファイル入出力はOSに依存せざるを得ませんが、Famous Writerは対応OSがマイナーバージョンも含めると多岐にわたるため、ちょっと追い切れません。すいません。

というのを踏まえて、&call命令のエイリアスに&@をつけてみました。
さっそく本日公開のdataフォルダに反映されております。ぜひ中身をご覧下さい。

それから、メニューボタンのEnabledが正しく動作しておりません。
原因はわかっておりますが、場当たり的に直すのではなく、後で楽ができるよう作っておきたいので、2,3日仕事になる想定です。ので、今回は間に合わなかったと言うことで。
今週はそこから始めます。
今後のゲームの方針ですが、背景は素材をお借りすることにいたします。
Poserと六角大王Superで作ろうと思ってたんですが、諦めます(立ち絵をPoserで作るのは変わらず)。
Poserは重い上に、軽い六角を使うにしても、作ってる時間がかなりかかるので。
現段階では、その時間でFamous Writerのクラスの1つでも書いた方がいいかなと判断いたしました。

今回のdataフォルダのものは、いつもお世話になっている白城るたさんの所からお借りしております。
るたさんには、この場を借りて御礼申し上げます。
ちなみに、るたさんの所が充実しているというのも、背景を素材で行くことにした判断材料の一つであります。
同人ゲーム背景用写真素材の部屋
なお、ご存じの方も多いかと思いますが、るたさんにはFamous Writer製ゲームも作っていただいております。
未プレイの方はぜひプレイしていただければと思います。
--白城るた&六本木曜のHP・RUTA--

また、今回のdataから、音楽も入れてみました。
MPEG-4 AACなので、QuickTime 6以上のインストールが必要です。
なお、dataフォルダからの音楽の二次利用は禁止ということにさせていただきます。
なぜなら、作りかけだからです(笑)。半日で二曲でっち上げただけという段階で、仕上げ等しておりませんので。
完成したら、音楽素材のページにて全曲公開のつもりでおります。
ゲーム作成中は、雰囲気ものとして、楽しんでいただければ幸いです。
組み込み関数に併せて、RPNLexerも拡張いたしましたので、差し替えました。
v4開発途上版ダウンロード

それから、音声機能にバーチャルトラックを内蔵し、内部仕様が大きく変わっておりますので、開発者ガイド用のページを作り始めました。
本体のダウンロードの直下にございますので、参考にご覧下さい。
何やら複雑なことを書いてありますが、新設の&BGM.No命令などを使わない限り、他の命令はv3までと変わりなく使えます。

本体はもうしばらくお待ち下さい。不測の事態がない限り、連休中には必ず。
昨日書いた所は一通りできておるのですが、CDから抜いた曲でテストしていたため、さすがにそれはお出しできません。
仮に当てられるような曲を、この連休で捏造して、dataフォルダと共にアップしたいと思っております。
<< 前のページ 次のページ >>
最新コメント
[06/07 みずき]
[12/21 Rocco Noble]
[11/05 f]
[03/02 Ming.]
[03/02 Ming.]
最新TB
忍者ブログ [PR]