忍者ブログ
ゲームを作りながらFamous Writerを開発するブログ
[1]  [2]  [3
×

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

今週もFamous Writerはお休みです。申し訳ありません。
C++は終わったつもりなんですが、どうしてもMac OS 9への夢が捨てられず、悪あがきしておりました。
相変わらずMPWでは#includeに失敗するので、もう仕方ないからREALbasicでプログラムを組んで、ソースを1つのファイル連結してからMPWに渡すという、かなり強引な技に出る事にしました。
スクリーンショット左側のリストボックスが、その謹製プログラムです。MPWにコマンドを投げるAppleScriptを内蔵しておりますので、これでビルドまで操作できます。


C++のソース自体は、Carbon版を元にClassicのAPIへの変更はあっさり終わったのですが、なぜか画像が表示されず、そこで時間を食いました。
単にSIZEリソースを作るのを忘れてて、画像を読み込むだけのメモリがアプリケーションにない、という間抜けな原因でございましたが、その究明だけで一晩半ぐらい潰れました。

サンプルに使った画像は、私の脳内マイラブソースイートであるEurydice A3であります(髪の毛はKoz's Long Hair)。
久々にOS 9で起動したため、Poserを使うことができましたので、レンダリングしてみました。
裸なのは、別にエッチな目論見からではなく(笑)、服を着せるとメモリが足りなくなってMacが死ぬからです! いいMac欲しい!(号泣)
これがBMPファイルでありますので、当然MacではQuickTime経由でないと読み込めません。従って、これが表示されているということは、QuickTime Graphics Importerが正しく動作しているという確認になっております。

これでMac OS X/Mac OS 9/Windowsで動くC++のひな形ができましたので、簡単なゲームエンジンでも作ってみたいですな。
やるとしたら中間言語式にして、コンパイラはREALbasicで作って、ランタイムがC++という形になると思いますけど。
PR
C++のプログラムにQuickTime Graphics Importerを取り付け、Famosus Writerと同様の画像フォーマットが読み込めるようになりました。
直でQuickTimeを叩く分、さすがにC++だと早い。なんでこんなに重いんだろうREALbasic。
なお、市販のゲームをキャプチャした画像で試しておりましたので、スクリーンショットはお出しできません。すみません。

さて、ぼちぼちこのへんで、C++での遊びを終了します。
明日からFamous Writerの開発に戻りますが、マウスイベント等のコードの見直しから始めて、目先は選択ボタンを作ることを目標にいたします。要するに今までの続きです。

後日のこととなりますが、今回C++で遊んだ成果として、Mac版はCarbon/Classicとも、グラフィクス関係を全部C++で書こうかと思っております。
Graphics ImporterからWindowへの転送まで、一通り学習できましたので。
やってみないとわかりませんが、そこそこ速度の向上がみられるかと思います。

それから、どなたかWindowsのREALbasic Pluginの作成方法か、それを解説しているサイトさん(英語可)をご存じでしたら、教えてください。
一応、Plugins SDKのVC++6.0用のサンプルからDLLをビルドするところまではできたのですが、それをMac上のRbで使う方法がわからない状態です。
Windowsもグラフィクス関係をPluginにできると、画像の読み込みから表示まで、速度が10倍ぐらい向上するかと思うのですが。
よろしくお願いいたします。
というわけで、C++のOS Xへの移植が終わりました。
画像表示などの機種依存の部分はクラスにして、それらをMac用に新たに作るだけで行けました。
コンパイラや管理部分はそのままコピーで、同じソースコードで動いております。
Famous Writerに限らずソフトをC++で開発するならば、この方式で行けそうかなという感触を得ました。


とはいえ、Macだと思って油断してたら、Navigation Servicesだけで二晩つぶれたりしましたけれど(笑)。
だって今まで、あんなのREALbasic丸投げで、いじったことなかったんだもん。
あと、ソースとしては、OS 9対応も視野に入れて書いてはおりますが、前回申し上げた通りMPWの問題が解決しないとできません。
NibとかCarbon Eventsとか、ナウイ技術は使ってない模様。Classic版も行けるようになったら、そのあたりをCarbonに特化したものに作り直したいところです。
いやいやいやいや………(以下百万回)。
すっかり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++のプラグインに移してゆくかもしれません。
ドラクエで言うと、スライムに殺されないぐらいのレベルにはなったんじゃないかなあ。ラスボスまでは遠い道のりですが。
最新コメント
[06/07 みずき]
[12/21 Rocco Noble]
[11/05 f]
[03/02 Ming.]
[03/02 Ming.]
最新TB
忍者ブログ [PR]