2005-07-01から1ヶ月間の記事一覧

リストファイル読み込みクラス

C++

これも、全然なんてことはないですが、あると便利なクラス。 1.enemy # 敵のタイプ,x座標,y座標,z座標, # 一匹目 nomal,-10,0,-5, # 二匹目 nomal,5,0,20, # 三匹目 fly,-2,10,15,こんなファイルをリストに読み込みます。 ListLoader.h #pragma once #includ…

連想配列ファイル読み込みクラス

C++

全然なんてことはないですが、あると便利なクラス。1.area # マップの左上座標 map_lt_x=-50 map_lt_y=0 map_lt_z=-50 # マップの右上座標 map_rb_x=50 map_rb_y=0 map_rb_z=50 # 木の座標 tree_x=5 tree_y=0 tree_z=-10 # プレイヤーの初期座標 player_x=0 …

エレクトロニック・アーツ(EA)の近代的な経営手法

EAというと、日本ではスポーツゲームや映画の版権ゲームばかりだしている、 でも、たまにダメダメゲームを作ってしまう(苦笑)、 そんなイメージしかないと思います。 でも、実はヨーロッパではトップのシェアを持つ一兆円企業です。 日本のユーザーからみ…

ベクトルを使った誘導弾の移動量算出

昨日、クマの頭を飛ばして、自動で戻ってくる処理を作るにはどうすればいいのかな〜、 などと考えていたときに思いついた処理を。 …まあ、ちゃんとベクトルを理解していれば、なんてことはないですが…(´Д`; 自機の座標をP, 弾の座標をQとします。 自機ま…

ブルースクリーン

昨日初めて、Direct3DでOSごと落ちました…(´Д`; 理由はよく分からないのですが、 カメラ座標とカメラの注視点を思いっきり近づけたらかな? もしくは、ビュー座標に初期化していないポインタを突っ込んだから? ということじゃないかと思っています。 …う…

Zバッファの欠点

Zバッファが有効になっていると、アルファブレンドでポリゴンを重ねたときに、 後ろが消えてしまいます。 これを解決するには、Zバッファを無効にして、 描画順を自分で制御します。 ビルボードなどのカラーキー付きテクスチャについても同様です。

3Dゲームの最適化

DirectX9.0 3Dアクションゲーム・プログラミング―DirectXを使った3Dアクション・ゲーム作成のノウハウ (I・O BOOKS)に色々書いてあったので、メモ書き。 カメラ視点に入らないオブジェクトの処理をしない(可視判定) 手前にあるオブジェクトから描画する(…

スクリプト読み込み

ちなみPythonでも作りました。 from string import * def readText(f, line, param, type): key = "dummy" while True: while True: line = line.lstrip() nEq = line.find("=") nList = line.find("[") eList = line.find("]") nMap = line.find("{") eMap …

スクリプト読み込みツール

NekoCannonのスクリプトを読み込む処理を作ってみました。 ただ、独自の実装のため、微妙に動作が異なりますが…。 例えば、 {key1=value1,key2=value2,key3=value3},とすると、key3の値を読み込みません…。 このように、value3の後ろに「,」をつけると読み込…

猫でも分かるタスクシステム2

タスクシステムの特徴 まず、タスクシステムの特徴は、以下の3つあります。 データの定義 データの管理 振る舞いの定義 これらを効率良く扱うことができるのが、タスクシステムです。 さて、ここでは、「タスクシステム進化論」を提唱します。 それは何かと…

猫でも分かるタスクシステム

今日も、初心者向けの内容です。 タスクシステムっていうのは、 市販ゲームのような規模の大きいプロジェクトにおいて、 ゲームを効率良く開発するためのシステムです。 なので、趣味でゲームを作るような場合には必要ありません。 むしろタスクシステムは、…

ゲームプログラム図解

今日は、ゲームプログラム初心者向けの内容です。 ゲームプログラムとは何であるかを図解してみました。 ゲームプログラムという枠の中にあるものが、 作るべきものです。 ゲームプログラムを始めるには、とりあえずは、 「データの入力」と「データの描画」…

スプライト構造体

最近、不真面目な更新が多いので、 今日は真面目路線で、私が使っているタスクシステムもどきの解説をします。 C++でやるなら、本当ならクラスでやるべきなのですが、 モノグサな私は、構造体でスプライトを定義しています。 (…不真面目じゃん) まずはユー…

ゲーム業界面接術

http://www.page.sannet.ne.jp/m-sky/game/ebook/mensetu.html おおお、こんなものがあったのですね…。

丸影

DirectX 9 シェーダプログラミングブックを参考に丸影を作成。 D3DPT_TRIANGLEFANだと、頂点バッファの描き順が大切だということに気がつくのに、3時間かかってしまいました…。

びよーん2

ふう、、、ライトの設定がおかしいことに気がつくのに、 3時間もかかってしまいました…。 やはり、背景は「青」とかにしておくのがいいみたいですね…。

XPのSP2

なんとなくXPのSP2を入れてみたら、自作のDirectXライブラリが動かなくなりました…。 問題なのは、フルスクリーン時にデバイスが取得できないのと、 ウィンドウプロシージャの呼び出しあたりの動きがおかしいみたいです。 そこで、パラメータをいじくり回し…

ビットマップ読み取りクラス公開

CannonCatや3DRPGプログラミング (C magazine)で、 ビットマップをマップデータとして使っているのを見て、 ひょっとしたらあると、便利かと思い公開。 地形パターンが少なければ、きっとビットマップの方が楽なはず。 24bit専用ですが、お好きに使ってくだ…

びよーん

2Dから3Dになるだけで夢が広がるなぁ…。

DirectX再々入門(CD3DMesh)

同じくメモ書きで書きかけ。 SDKサンプルのCD3DMeshを解析。 メンバ変数 TCHAR m_strName[512]; // ファイル名 LPD3DXMESH m_pSysMemMesh; // SysMem mesh, lives through resize LPD3DXMESH m_pLocalMesh; // Local mesh, rebuilt on resize DWORD m_dwNumM…

DirectX再々入門(ユーティリティ)

D3DXMATERIAL構造体 メンバ MatD3D:マテリアルのプロパティを記述する D3DMATERIAL9 構造体。 pTextureFilename:テクスチャのファイル名を指定する文字列へのポインタ。 LPD3DXBUFFER pMtrlBuffer = NULL; D3DXLoadMeshFromX( strPath, D3DXMESH_SYSTEMMEM, …

DirectX再々入門(View-Projection-World)

Direct3Dがよく分からなくなったので、 自分のためのメモ書き。 メンバ変数 // マトリクス struct View // カメラの配置 { D3DXVECTOR3 pos; // カメラ座標 D3DXVECTOR3 lookat; // 注視点 D3DXVECTOR3 up; // 傾き }; View m_viewP; D3DXMATRIX m_view; str…

Pygameで弾幕(超入門編)

タスクシステムをPythonで実験しようとしていたら、 知らない間に弾幕を作っていました…。 そこで気がついたことをメモ。 util.py class Vec2D: def __init__(self, x, y): self.x = x self.y = y def __add__(self, pos): return Vec2D(self.x + pos.x, sel…

シーン内の状態遷移

実際にゲームを作ってみると、 シーン内の状態遷移が意外に難しいことに気がつきました。 キー入力、タイマー更新、状態遷移をまたがるオブジェクトなど、 グローバルなフラグや変数が増えるにつれ、だんだんぐちゃぐちゃな作りに…。 まあ、簡単にゲームを作…

はてな日付

6:00を過ぎると、今日の日記の日付になるみたい。

テクスチャのサイズが2^xでなければならない理由

ミップマップチェーンのサイズを2^xで作るから。 勘ですが…(´Д`;

NekoCannon

うわさのNekoCannonをやってみました。 http://ishi.blog2.fc2.com/ マウスを使ってお手軽に遊べますね。 動きも面白いので、操作しているだけでも楽しいです。 せっかくなので、中でどんな処理をしているかを勝手に推理してみます。 シーン遷移 タイトル ↓ …

色々とリンク

オブジェクト指向の再定義 http://www.objectclub.jp/technicaldoc/object-orientation/OO_redefine/ なるほど…。 単体テストが容易かどうかも、 正しいオブジェクト指向による設計かどうか目安になりますね…。 DarkBASIC Professional日本語版 http://shop.…

DirectXFramework0.2

前とあまり変わらないけれども…。 DirectMusicだけで、BGMと効果音再生を担当できることが分かったので、 (いまさら?) DirectSoundクラスは消滅。 CTextureやCOggの管理は、STLのmapでDirectGraphicsとDirectMusicクラスが管理。 mapのkeyはenumでグロー…

映像技術の専門用語辞典

http://cinema-magazine.com/new_tokubetsu/semmonfolder/framesemmon.htm おおお、勉強になりますね。