Visual C++ 2008 EE で SDL + OpenGL その3

なんかいろいろ遊んでたら酷いことになった。


po01_03.zip with extra01


起動するとメカ千早(拾い物)と社長(自筆)の一枚板が表示されるぞ!:
po03_01.png


画面をクリックするとパワーを充填だ! 右のゲージが上がるぞ:
po03_02.png


ゲージが赤になったらパワー充填完了だ!クリックしているボタンを離すと…:
po03_03.png


社長に弾を発射だ!ストレス解消にもってこい!:
po03_04.png



…………。


何がやりたかったかと言うと

今となっては誰も分からない。


アホみたいに見えるけど結構凝っているんです

ちょっと遊ぶだけにしようと思ったのに、性格が災いしてか結構凝ってしまいました。
付加部分は簡単に切り離せるように extra01.cpp の中に全部入っています。
弾の状態遷移を書く場所を変えた方がスッキリ見やすかったかも。


あとパワーを充填しているときと、弾が社長に当たったとき、当たり終わったときの社長の台詞で
wav ファイルを再生しているのですが、せっかくなので SDL_mixer ではなくて OpenAL を使っています。
そのため、OpenAL を使うためのクラスを作成して使用しています。
OpenAL は構造や文法が OpenGL と同じなので、OpenGL を知っていれば書きやすいと思いますが
なにせ情報が少ないので、書き方が分かっていても何を書いたらよいのかを調べるのが大変です。


それで OpenALOpenGL みたいに 3次元で音を聞くことができます。
動かして聞いてみると分かるんですが、ちゃんとステレオして音が音源から発生しているように聞こえます。
RTS みたいに音源が移動すると分かりやすいんですけれど。


OpenAL のとっかかりとしても若干参考になるのではないでしょうか。
というか自分が後で参考にするために書いただけだったり。

Visual C++ 2008 EE で SDL + OpenGL その2

明けましておめでとうございます。本年も宜しくお願い申し上げます。


さて、以前作った自作ライブラリを使用して、Metasequoia 独自形式の
意味不明のモデルを読み込んで表示しました。ちなみに何も動きませんし、動かせません。
po01.png


ソース


まだまだ自作ライブラリはリファクタリングが足りないです。リファクタリングだーいすき!




そんなことはおいておいて、モーションをつけるにあたってはここからが本番なので、
しばらくリバースエンジニアリングにいそしみたいと思います。

Visual C++ 2008 EE で SDL + OpenGL

たまには C++ でも良いじゃない。


ってことで、Visual C++ 2008 EE で SDL OpenGL を記憶を掘り起こしながらやります。
あ、作りかけのものを止めるってことじゃないですよ。ぐるっと回って一週したらまたやります。


po01_01.zip
なんで po かって?そりゃローポリのポです。ro でもいいんだけど。


SDL は C:\devs\sdl の中に include と lib を展開しています。
Escape を押すと終了します。
描画は行っていないので、画面には何も表示されないどころか更新すらしません。


WindowsIDE の開発ってここまでの敷居が高いんですよねえ。
cygwin とかで環境を整えるほうがずっと簡単なんですけど、
ここまで出来ちゃえばあとは cygwin で make する開発環境よりずっと速いし簡単だと思います。

モバイル BSD の夢、潰えたり (OpenBSD/Zaurus)

Planex の GW-CF11H が届いたので早速使ってみたが、

wi0: init failed
wi0: failed to allocate 1594 bytes on NIC
wi0: tx buffer allocation failed
wi0: failed to allocate 1594 byted on NIC
wi0: mgmt. buffer allocation failed
wi0: wi_cmd failed with 60

などというメッセージが表示され、使えなかった。
家の近くにある FON サーバは一回掴んだことがあったが、すぐに切れてしまった。


これが使えなければモバイルサーバとしては実質的に使えない。
サスペンドから復帰できなくなることがある問題も再現したため、常用するのは諦めざるを得ない。

OpenBSD/Zaurus 4.4

Zaurus を遊ばせておくのももったいないなーと思って、また OpenBSD を入れた。今度は 4.4。
サスペンドから復帰できないときがある問題が直っていたら嬉しいなあ。
入れる度に思うんだけど、手のひらに乗る Unix マシン (特に *BSD) は良い。
dmesg


インストールは特に問題なし。前回と同じ方法。
一回失敗して NAND フラッシュを入れ直したら HDD1, HDD2 の中身が吹っ飛んで焦ったけど
ネット上に中身が落ちていたので助かった。
これでどんな状況からでも購入時の状態に戻せる技を身につけた。


ちなみにマイクロドライブコンパクトフラッシュに置き換えた。
駆動部分が無くなったので耐久性がかなり上がった。


前回は無線 LAN が動かず、ネットワークに繋がるのにアンビリカルケーブルが必要だった。
今回はどうかと試してみたところ、GW-CF54G は同じく駄目だったが
USB タイプの WLI-U2-KG54GW-US54Mini2B は動くことを確認できた。


できたというか、こちらをみたら、中段に

ural0: could not read MAC register: IOERROR

という前回失敗したときのメッセージが書いてあって、その原因は電力不足だそうで
同じようにセルフパワーの USB ハブに繋げたら動いたんで、もしかしたら 4.0 のときでも
セルフパワーの USB ハブに繋げたら動いたかもしれない。まさか電力が足りなかったとは…。
zaurus


それでしばらく動かしてみたところ、WLI-U2-KG54 はしばらくすると必ず接続できなくなってしまった。
リンクは切れていないようだがパケットが出ていないような感じがする。
復旧は一回引っこ抜いて差し直すしかなかった。
GW-US54Mini2B のほうは WLI-U2-KG54 の接続が切れる時間になっても切れず、今のところ安定している。


WLI-U2-KG54

  port 2 "Buffalo WLI-U2-KG54" rev 2.00/0.01 addr 3
 ural0: MAC/BBP RT2571 (rev 0x05), RF RT2526, address 00:16:XX:XX:XX:XX


GW-US54Mini2B

  port 2 "Abocom 802.11 bg WLAN" rev 2.00/0.01 addr 3
 rum0: MAC/BBP RT2573 (rev 0x2573a), RF RT2528, address 00:90:XX:XX:XX:XX


しかしながら結局アンビリカルなので、不便さに変わりはない。
結局、動きそうな CF タイプの GW-CF11H を購入した。届き次第検証したい。

追記

GW-US54Mini2B も接続できなくなる現象が発生した。
一回繋がったらずーっと ping していれば回避できそうだが、サーバ用途としては使い物にならないな。


やはり CF タイプのものに希望を託すか。

iPod Touch でもやよいから元気をもらえるかもしれない

腰を据えて頑張ったら動いた。google とヘルプさえあればなんとでもなる!


エミュレータでの動作:
y03.png


ソースは NDA の関係で出せない。
「作った」系のエントリでソースを出さなかったのは初めてかもしれない。


一応ハイタッチの一連の動作は行えた。掴みとしては良い感じだ。

  • ビューの作り方
  • タッチイベントのコールバック
  • リソースの取得
  • タイマ


あとは認証キーが郵送されてきたら実機で動かしてみる。