2013-01-01から1年間の記事一覧

XFileをやっつけで読み込む

まとめリンクOpenGLで作るiPhone SDKゲームプログラミング - 6章レースゲーム(3D) 6-6 仕上げ ここから先は、「EXERCISE」となっており、「あとは各自サンプルソース見てね」ってことになってます。いよいよ1ヶ月に渡って読み進めてきたこの本も完走間近で…

もっと大量のポリゴンを

まとめリンクOpenGLで作るiPhone SDKゲームプログラミング - 6章レースゲーム(3D) 6-5 車の描画 車のタイヤ部分は、前回のタイヤバリアと全く同じ要領で、VBOを使って実装しました。車のボディ部の座標は、サンプルをダウンロードしたときについてたCSVフ…

(あかん)

まとめリンクOpenGLで作るiPhone SDKゲームプログラミング - 6章レースゲーム(3D) 6-4 頂点バッファオブジェクト ここはちょっと酷い。 執筆者はもう疲れきってしまっています。 一刻も早く本を書き終えたくてしょうがない様子です。 VBOはOpenGLにおいて…

厚みゼロの世界

まとめリンクOpenGLで作るiPhone SDKゲームプログラミング - 6章レースゲーム(3D)そもそも6章自体30ページ程しかないわけだが。 6-3までは3Dの基本的な説明と、今までの2Dゲームの見た目を3Dっぽくするところまで実践しました。 6-1 3Dの基礎 ・正射影 glO…

ゴールは近いぞ

まとめリンクOpenGLで作るiPhone SDKゲームプログラミング - 5章衝突判定と衝突応答第5章では、第4章で作成したレースゲームの基盤を改良して、衝突ロジックを組み込みました。また、マトリクス変換を使って、ユーザー視点を車の向きに合わせて、画面全体を…

rvalue reference

最近になってrvalue referenceというものを知りました。 まだきちんと理解できていない可能性もありますが、一応メモ書き。私は今まで以下のようなオブジェクトそのものを値返却する関数の作成を避けていました。 class A { public: A() : v(1000000) {} std…

衝突応答

まとめリンク難解だった・・・。 たった4行のコードの意味を理解するのにずいぶんと時間をかけてしまいました。OpenGLで作るiPhone SDKゲームプログラミング 第5章 衝突判定と衝突応答 P285衝突応答理論の説明箇所です。 2次元空間において、静止している円o…

EVERNOTEはいいよ

本当にhttp://evernote.com/intl/jp/・なにができるの? 電子版の個人ノートみたいなものです。 高度なリマインダーのクラウドサービスとでも言うべきでしょうか。 ちょっとしたことを何でも書き留めておけます。 複数人で共有するノートを作ることもできま…

そうだ、Rubyをやろう(2回目)

そう言えば、ずいぶん前に・・・あえてリンクは貼らないが、具体的には2012年の10月末頃、 過去の私「そうだ、Rubyを勉強しよう」 ああ、そんなこと言ってたな。あれから3ヶ月以上の月日を経たわけだが、さて・・・。いや、実は・・・そう、Rubyの勉強はして…

C++ではprivateな仮想関数をオーバーライドすることができる

バッドノウハウかもしれないので注意。 一瞬「あれ、おかしい」と思ったのでメモ。 Javaとは違うところ。 派生クラスでのオーバーライドが必要、かつ、派生クラスから直接呼び出す必要のない仮想関数を定義するのには便利かもしれない。 class Parent { publ…

templateクラスのfriend指定は前方参照が必要

通常は、クラスのfriend指定時に、フレンドクラスの実体が存在する必要はない。 class A { friend class B; // OK }; class B {}; templateクラスをfriend指定する場合は前方宣言をしないとコンパイルエラーになる。 class A { friend class B<int>; // Explicit </int>…

あいいーいーいー1394

IEEE1394 アイトリプルイーいちさんきゅうよんと読むそうですよ。コンピュータ用語は難しい。 いや、難しくはないか。 単純に用語が多すぎて覚えるのが大変。 ・Core i7(コアアイセブン) 「こああいなな」じゃないんですね。 だとしたら、IEEE1394は「アイ…

ぶーーーーん

まとめリンクOpenGLで作るiPhone SDKゲームプログラミング - 4章レースゲーム(2D)この第4章では、前のハエたたきと違って、ユーザー操作を主体としたゲームアプリの基盤を作りました。 左下の左右ボタンがハンドル操作、右下のアクセルボタンで加速し、慣…

今はこれが精一杯-5

まとめリンク前回の続きです。長々とリファクタリングを続けてきましたが、だいぶ満足したので、これで最後にして先に進めることにします。せっかくここまでやったので、最後にパーティクルシステムも同じ形式で実装してみたいと思います。パーティクルの細…

今はこれが精一杯-4

まとめリンク前回の続きです。ついに数字テクスチャクラスをリファクタリングする時が来ました。 基盤は既に出来上がっているので、あとは新しい設計に合わせて実装するだけです。 数字描画の基本的な仕様は、以前と同じにします。ただし、せっかくC++で作り…

今はこれが精一杯-3

まとめリンク前回の続きです。ここからが本番。 今度は同じテクスチャで表現可能な複数のオブジェクトをまとめて描画するように設計します。 プログラムの設計 登場人物を3人とします。 Renderer 画面にグラフィックスを描画する部門の責任者。テクスチャを…

今はこれが精一杯-2

まとめリンク前回の続きです。 1枚のテクスチャを使って表示されるオブジェクトが1つだけの場合 例えば、背景とか、レースゲームでユーザーが操作する車とか、そういう単純なパターンも割と多いです。 こういう場合は、前回のTextureDrawerとほぼ同じことを…

今はこれが精一杯-1

まとめリンク私・・・もっとGLくんのこと、わかってあげたいの 前にこんな日記つけました。下手なクラスを作ったために、処理効率が悪くなった話でした。そこで、今回はあの時の失敗を乗り越えるべく、新しく、テクスチャで描画するオブジェクト(座標などの…

高精度時間取得関数メモ

ミリ秒以下の精度が不要な場合 → time関数 ミリ秒、マイクロ秒までの精度が必要な場合 → gettimeofday関数 ナノ秒までの精度が必要な場合 → clock_gettime関数 システム時刻ではなく、CPUクロック使用時間を知りたい場合 → clock関数 ※sys/timeb.hのftime関…

template派生クラスから基底クラスへのメンバアクセスは明示的に指定する

完全に忘れていた 【コンパイルエラー】 template <class T> class Parent { int m; }; template <class T> class Child : public Parent<T> { void method() { printf("%d", m); // undeclared identifier } }; 【修正版】 template <class T> class Parent { int m; }; template <class T> class C</class></class></t></class></class>…

配列とポリモーフィズム

C++はちゃんと理解すれば面白いけど、 ちゃんと理解するのが大変だから、 ちゃんと使うのが難しい言語だと思います。標題についてちょっと気になったことがあったのでメモ書き。 私がちゃんと理解できていなかっただけで、ごくごく当たり前のことかもしれま…

まぁ!きれい!(感涙)

まとめリンクOpenGLで作るiPhone SDKゲームプログラミング - 3章パーティクルシステム 第2章で作成したプロジェクトにパーティクルシステムを追加しました。 パーティクルとは粒子のこと。 細かいテクスチャを大量に描画することによって、煙や雪などの不定…

愚か者は経験に学び、賢者は歴史に学ぶ

まとめリンク私は愚か者なのでしょうか、よく経験に学びます。今回得た教訓は、「OpenGLアプリをうまく設計するのは難しい」抽象化と処理効率のバランスについてです。以前、数字をテクスチャで描画するためのクラスを作りました。簡単に説明しておくと、以…

いつものホーム

「8番降車終了。準備できましたらドア○○○願いま〜す」 いつものアナウンス。私が毎日利用している通勤電車は、当駅止まり、折り返し始発です。 つまり、乗車、降車駅が終点なので、到着後、少しの間、車内整備、清掃と点検が行われるので、到着後すぐには乗…

いつの間にかshouldAutorotateToInterfaceOrientationがdeprecatedされていたでござる

iOS6から、 -(BOOL)shouldAutorotate で自動ビュー回転するかしないかを返し、 -(NSUInteger)supportedInterfaceOrientationsでサポートするUIInterfaceOrientationのフラグの組み合わせを返すようになったらしいUIInterfaceOrientationPortrait UIInterface…

このゲーム面白れえ!

まとめリンクOpenGLで作るiPhone SDKゲームプログラミング - 2章ハエたたき 2章まで読み終えました。 2章は、OpenGLを使って、実際に動いて遊べる2Dゲームを作るという構成になっています。 このゲーム、なかなかどうして面白い。 面白いものを作るのは、や…

基礎が大事

基本・・・何より基本が大事! 以下の整数配列を昇順に並べ替えなさい。int[] numbers = {8, 4, 3, 7, 6, 5, 2, 1};①選択ソートで並べ替えるプログラムを作成しなさい。 ②バブルソートで並べ替えるプログラムを作成しなさい。 言語はJavaで書いてみます。 【…

数字のテクスチャを操る

まとめリンク先日の書籍でOpenGL学習中です。まだ最初の方しか読んでいませんが、「1-7 数字の描画関数の作成」が個人的に興味深かったです。要は、こんな感じのテクスチャ画像を用意しておいて、こんな感じに画面に表示するつうことですな。 プログラムのイ…

OpenGL始めるよ〜^^

まとめリンク色々な事情により、OpenGLを学ぶことにしました。少し参考書を探したけれども、なかなか良さそうなのがない。 というか、どれも出版が古いものしか書店に並んでいない。 そもそもOpenGLの書籍の数が少ない。新しく、自分が知らない技術を学ぶと…