トップページgamedev
1001コメント351KB

【初心者歓迎】スレを立てる前にココで質問を【Part9】

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2005/09/24(土) 09:36:08ID:qEhFu+JA
疑問に思うことがあれば、スレを立てずに、まずはココで質問。
スレッドを立てる前にはローカルルールを読みましょう。
http://pc8.2ch.net/gamedev/

>>980 を踏んだ人は次スレ立てをお願いします。

その他は>>2-10ぐらい
0220名前は開発中のものです。2005/10/19(水) 17:17:45ID:XFexkAHV
>>211
それはOggの問題ではないでしょ?
OggデータをWaveデータに変換できることがわかってるんだから、
もう問題はDirectSoundの問題だけに絞れてるんだから。
02212102005/10/19(水) 17:37:47ID:ct4u9Uqh
>>219
>>196でGameModeのm_statusの使い方がよくわからず
(TitleMode,ConfigModeからはm_statusがいじれないから)
class Mode
 class GameMode
  class TitleMode
  class ConfigMode
かと思ってました
なんか色々激しく勘違いしてたり知識が足り無すぎるので
ちょいと本屋に逝って来ます( ゚∀゚)ノ゛
02222102005/10/19(水) 19:26:07ID:ct4u9Uqh
オブジェクト指向の本が一個もない蔦谷って…orz
面積だけは関東一に近いとかなんとか言うクセに…
0223名前は開発中のものです。2005/10/19(水) 19:30:59ID:Pmf5eBjN
最近はできる〜みたいなやたらと写真入で解説してるような本しか置いてないとこ多いね
0224名前は開発中のものです。2005/10/19(水) 19:33:48ID:XFexkAHV
蔦谷はなさそうだな
専門書が多そうなとことか
秋葉いくとか。
Amazonもいいかもしらんが中身を読めないからな
0225名前は開発中のものです。2005/10/19(水) 19:36:03ID:wXmaUH0S
てかOOPの基本なんてネットでいくらでも読めるだろ。

>>223
技術書は断然ネットで買った方がいいから。
0226名前は開発中のものです。2005/10/19(水) 19:47:24ID:Pmf5eBjN
ネットだと事前に中身を確かめられないのがちょっと怖い。
書評が良くても自分が調べたいことが載ってるかどうかは別問題だし。
まあ、書籍についてはスレ違いですね。すみません。
02272102005/10/19(水) 20:37:01ID:ct4u9Uqh
何度もすいません

>>213のシーン検索とシーン名なんですが
シーン名を列挙型にしてswitchで検索してポインタ返すくらいしか思いつきません
本当に何度もすいませんがもう少しヒントを頂けないでしょうか?
02282122005/10/20(木) 00:23:41ID:0AN5ZXFy
>>227
シーン名(Modeのメンバ変数)は文字列でよくない?
そう頻繁に切り替えるものでもないし、必要とあらば高速化する手段もあるから。
汎用性という面では文字列はダンチでしょう(XMLの中身も文字列だし)
switch文そのものを使わないのが目的。(理由は何れわかる)

シーン管理クラスの検索機能とは、登録された全てのシーンを総ナメして文字列比較を行い、
一致したシーンを返す事。(まんま答えw)
要するに、まず登録が必要という事。当然、削除やらなんやらも追加していく事になる。(必要になる)

各シーンオブジェクトは(Mode*の)コレクションとして保持する。
ポインタ配列なり、STL::vectorなり、ポインタのポインタなり、わかるもので実装すればよろし。

後々、ファクトリとかに対応すれば、ConfigModeの宣言等はアプリ実装のcppだけ知ってればよくなる。
(ヘッダファイルの循環参照とかで悩まなくなるし、簡潔になる)
02292122005/10/20(木) 00:30:58ID:0AN5ZXFy
>>217
こんな感じ

class SceneManager {
 private:
  Mode* pCurrentMode;
vector<Mode*> pModeList; これか、
Mode* pModeList[最大数]; こう。
 public:
  HRESULT Change( const char* sceneName );
  Mode* Seach(const char* sceneName ); // シーン検索関数もよくわからないです…
  HRESULT Exec();
};

シーン切り替えは、リクエストだけしといて、
一定のタイミングで切り替えるべきだけど後でいいか。
、、シーンかモードか統一しないと気持ち悪いなw
0230名前は開発中のものです。2005/10/20(木) 00:39:53ID:MGUMfsBq
文字列から特定の対象を検索するならstd::mapのがいいんじゃないか?
0231& ◆PgquWinh8I 2005/10/20(木) 01:00:29ID:NdIiF/23
Processingに手を出し始めて、
Processing 1.0 (BETA) - Processing (Beta) with Eclipse
http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Integrate;action=display;num=1117133941
を参考にEclipseから利用することには成功したのですが、アプレットを書き出す良い方法が見つかりません。
AntやABAさんのP5Docletも利用してみましたが、上手くいきませんでした(どちらもAlpha時代のモノのようで)。

Alphaバージョンへ逆行するのか、
Eclipseからの利用を諦めてpdeファイルを直接弄るのか、
それとも何か別に良い方法があるのか…どなたかご存じの方がいらしたら、教えてください。
よろしくお願いします。

(Processingって簡単さがウリの一つっぽいのに、エディタのセットアップから躓くなんて…これがBetaクオリティーか)
02322122005/10/20(木) 02:16:41ID:0AN5ZXFy
>>230
その辺はお任せしますw
Modeクラスにキーを持たせるのは、STLの説明を分ける為と、
デバッグ時にちょっと判り易い(SceneGameStageクラス内をステップ実行。名前は"GameStage_001"とか)というだけの話です。
02332102005/10/20(木) 06:53:17ID:4YyIpufE
>>212
何度もありがとうございます!
脳内ではほぼ理解できたと思います
これから仕事なのでスグには書けないのですが
帰ったらスグに組み込んでみます
0234名前は開発中のものです。2005/10/20(木) 09:08:29ID:k4jPaPyS
100レスも空けて申し訳ありません。116です。
リリースビルドすればという助言を受けそのようにやってみましたが
うまくいきませんでした。(リリースでビルドする方法はコンパイラ起動時の
オプションに「-v-」を指定するであってると思います)
開発環境では「d3d8xd.dll」が同一フォルダになくてもきちんと動いたのですが、
他のパソコンで起動しようとすると「d3d8xd.dll」を要求されます。
(「d3d8d.dll」は必要ないようです)

これだけ間が空いた理由は、「今までのプログラムに新機能つけてコンパイルする
ときにやってみればいいや」と思っていたからです。
まさか、バグ取りに10日もかかるとは……
0235名前は開発中のものです。2005/10/20(木) 09:44:11ID:QgJ3c6Th
>>234
コントロールパネルの DirectX。
Direct3D タブの Debug/Retail D3D Runtime。

変更後再起動が必要だったような気がする。
0236名前は開発中のものです。2005/10/20(木) 10:06:17ID:NVBSpIBS
単純にリンクするライブラリを間違えているだけ。
02372102005/10/20(木) 18:06:14ID:4YyIpufE
まだまだ微妙なんですがこんな感じでどーでしょうか
シーンはタイトル・ゲームの2つのみになってます

class SceneManager
{
public:
 SceneManager();
 ~SceneManager();
public:
 HRESULT Exec();
 HRESULT Change(const char* sceneName); // シーンの切り替え
 Scene* Search(const char* sceneName); // 指定されたシーン名のポインタを返す
private:
 Scene*p_CurrentScene;
 std::vector<Scene*>p_SceneList;
};

// コンストラクタ
SceneManager::SceneManager()
{
 // vectorに格納
 Scene* p;
 p = new TitleScene("TitleScene"); // タイトルシーン
 p_SceneList.push_back(p);
 p = new GameScene("GameScene"); // ゲームシーン
 p_SceneList.push_back(p);

}
02382102005/10/20(木) 18:07:21ID:4YyIpufE
Scene* SceneManager::Search(const char *sceneName)
{
std::vector<Scene*>::iterator v;

for(v = p_SceneList.begin(); v != p_SceneList.end(); ++v)
{
if(!strcmp((*v)->sceneName, sceneName))
return *v;
}

ERROR_EXIT();
}

Searchでみつからなかった時の戻り値がないので警告はでます
その辺はどうにか…します
0239名前は開発中のものです。2005/10/20(木) 19:12:58ID:H4ZUft/f
>>237
Scene* Search( const char* ) は public にする必要あるかな?
private で目的は達成できると思う。例えばこんな感じに。

class SceneManager {
public:
   HRESULT Exec();
   HRESULT Change( const char* sceneName ){  p_CurrentScene = Search( sceneName ); }
private:
   Scene* Search( const char* sceneName );
};

あと、クラスにシーンの追加メソッドを加えた方が、
シーンが増える度にクラスの実装コードを修正する必要がなくなるから、多少保守しやすいと思う。
多分、212 は下のような使い方をする前提で、説明してたんじゃないかな。

// 初期化
SceneManager sceneMgr;
sceneMgr.Add( new TitleScene );  // シーンを加える
sceneMgr.Add( new ConfigScene );
// シーンの追加コードが続く ...
sceneMgr.Change( "TitleScene" ); // 最初のシーンを指定

// メインループ
while( 1 ){
   if( !sceneMgr.Exec() ) // シーンの実行
      break;
}

何か勘違いしていたら、ごめんね。
0240あきまさ2005/10/20(木) 19:37:00ID:NdIiF/23
(名前が文字化けしてしまっている)>>231についてですが、
Betaバージョンを諦め、Alphaバージョンを利用することによって解決しました。

その場合についても躓くところが沢山あったので、需要は無いかと思いますが、
日記は私たちに微笑みかける死体 - 今頃?な感じのするProcessing(Alpha) with Eclipseの導入メモ
http://d.hatena.ne.jp/hogeratta/20051020
に纏めておきました。
02412102005/10/20(木) 19:52:45ID:4YyIpufE
>>239
>privateで目的は達成できると思う。
なるほど!確かにそうですね

追加メソッドも追加いたします
ありがとうございました〜
0242名前は開発中のものです。2005/10/21(金) 00:40:23ID:hmjF6JD/
レスありがとうございます。
さて、開発環境では動き、もう一台のパソコンで動かない理由がおそらくですが
分かりました。
開発環境では「c:\WINDOWS\system」に件の「d3d8xd.dll」が存在しますが、
もう一台のパソコンのほうではDirectX関係のファイルが「c:\WINDOWS\system32」
にあるにもかかわらず、当該ファイルは存在しないためだと思われます。

さらに、そのパソコンにはコンパネに「DirectX」という項目がありませんでした。
もうどうしたらいいのか分かりません。
というか、どうしようもないので、開発が完了するまでにこの無料で構築した
開発環境を捨てて、まともな開発環境を金出して買えば解決するのでは
などと考えています。
0243名前は開発中のものです。2005/10/21(金) 00:52:43ID:Pl5M2s/F
>242
>コンパネに「DirectX」
SDKをインストールしたときだけでエンドユーザーランタイムだとないと思う。

>(リリースでビルドする方法はコンパイラ起動時の
>オプションに「-v-」を指定するであってると思います)
漏れBCC使ったことないんだけどさ、グーグルの検索結果を見る限り
つけない場合がリリースビルドじゃね?
0244名前は開発中のものです。2005/10/21(金) 01:31:57ID:9ulD7PqZ
>>239
いや、その通りです。

シーンの追加、マネージャの初期化等は、XXXGameAppクラスの初期化等でやれば良いので、
TitleSceneクラスの宣言等は、XXXGameAppクラスにだけ追加すれば良いと。

シーンの変更リクエストはXXXGameAppクラスのExec()内か、各シーンのExec()内でやると。

シーン管理、Modeクラス等はゲームエンジンに属するものだから、派生クラスとは明確に分ける事を勧めます。
一通りの機能を追加しとけば、色んなゲームで流用出来るし、コード修正もしなくて済みます。
0245名前は開発中のものです。2005/10/21(金) 11:28:51ID:cIVqISTU
>>242
リンクするライブラリを d3dx8d.lib → d3dx8.lib にする。
02462102005/10/21(金) 13:16:41ID:ABtOh/Cc
大変お世話になっています>>210です
皆様のお陰でゲームループは満足の行く状態に出来ました

またひとつ質問なのですが
D3Dオブジェクト類(?)はどういった管理をすれば効率が良いでしょうか
現在はRendererクラスの中で
class Renderer
{
public:
 Renderer();// コンストラクタ
 ~Renderer();// デストラクタ
public:
 HRESULT Initialize(HWND hWnd, BOOL isFullScreen, int clientWidth, int clientHeight);
 LPDIRECT3DDEVICE9 GetDevice();
 void Finalize();
private:
 LPDIRECT3D9m_pD3D;// IDirect3D9インターフェイスへのポインタ
 LPDIRECT3DDEVICE9m_pD3DDevice;// IDirect3DDevice9インターフェイスへのポインタ
 D3DPRESENT_PARAMETERSm_D3DPP;// デバイスのプレゼンテーションパラメータ
};
となっていて宣言はメインループ前です
Renderer render;
render.Initialize(....);
// シーン管理クラス初期化
// メインループ

02472102005/10/21(金) 13:18:04ID:ABtOh/Cc
そして現在各シーンの描画・更新を作ってるのですが
描画で必ずIDirect3DDevice9ポインタが必要になります
現在の状況だとIDirect3DDevice9ポインタをグローバル変数にしてどのcppファイルからも弄れるようにするか
シーン管理クラス.Exec()の引数として渡してまたその中の各シーンのExec()の引数に…しかありません
前者だとコーディングは物凄く楽だと思いますが安全性?に問題がありそうで、
後者は同じ引数を引っ張っていくのは見辛そうです。

Rendererクラスオブジェクトをシーン管理クラスのメンバにする、
またはIDirect3DDevice9などをシーン管理クラスメンバにしてしまいD3D初期化自体をシーン管理クラスで行う
などが考え付いたのですが(それでも渡すのが一段階減っただけなような…)
他はどのような方法があるのでしょうか?
0248名前は開発中のものです。2005/10/21(金) 17:33:03ID:yEVH493I
実は俺はもうめんどくさくてシングルトンにしてグローバルにシーンを置きまくり。
0249名前は開発中のものです。2005/10/21(金) 17:42:53ID:SkWwQYRT
俺もそうよ
その代わり、レンダリングステート等はその都度再チェック再セットという制約
02502102005/10/21(金) 20:43:21ID:ABtOh/Cc
レスありがとうございます
シングルトンとはなんぞや?って感じだったので
調べてみたところ今回の質問にピターリでした

ついでにデザパタの必要度がわかりました…orz 勉強します
0251名前は開発中のものです。2005/10/21(金) 21:38:16ID:yEVH493I
デザパタは必要、ってなんか語弊がある感じがするな。
感覚的には、普通にプログラム組んでたらあのデザパタになってた、ってとこかも。
0252名前は開発中のものです。2005/10/21(金) 22:01:00ID:0BRyU5+0
2chでゲーム作ってますとかメンバー募集とかのスレを纏めてるスレが欲しいのですが、建ててもいいでしょうか?
0253名前は開発中のものです。2005/10/21(金) 22:33:56ID:5xzEEHTf
ネットワークゲームとかのチャット部分ってどうやってるんですかね?
入力できるスペースでカーソル合わせて文字を受け付けるようなのがありますが
文字の変換とかのところってどうやってプログラムでやるんですか?
あとそれに応じた描画なんですがDirectXで再現すると動的なテクスチャの
書き込みで解決するもんですかね?
0254名前は開発中のものです。2005/10/21(金) 23:15:42ID:sDAuO1Jq
>>252
これじゃ駄目?
http://pc8.2ch.net/test/read.cgi/gamedev/1111084681/
0255名前は開発中のものです。2005/10/21(金) 23:20:55ID:cIVqISTU
>>253
TextBox とかが簡単なんじゃないの。
0256名前は開発中のものです。2005/10/21(金) 23:32:20ID:yEVH493I
>>253
あれはWM_IME_なんたら系メッセージをフックして
変換ウィンドウを自力で書く。
詳しくはsdkのcommonフォルダに入ってるguiサンプルを見てみ

かなりめんどくさい。
0257名前は開発中のものです。2005/10/21(金) 23:40:26ID:0BRyU5+0
>>254
そこで十分ですね。
ありがとうございます。
0258名前は開発中のものです。2005/10/22(土) 00:45:17ID:gkJoVPjm
>>252
http://gamdev.org/w/?%5B%5BProjects%5D%5D
0259名前は開発中のものです。2005/10/22(土) 03:09:21ID:IIu4nIrL
>>253
普通にIME制御からゴリゴリと書くだけ。
変換とかの処理はIMEがやってくれるので、描画を全部自分でやる。

一応、X8以外ならエディットコントロールをそのまま使う方法もあるが。
0260名前は開発中のものです。2005/10/22(土) 11:17:03ID:ly1tBT68
>>250
シーン管理のケースでもシングルトンやファクトリ使えば、
似たような実装でキャラ管理、キャラステータス管理が出来るようになるよ。
0261名前は開発中のものです。2005/10/22(土) 12:57:03ID:FPxhi0mR
IDirect3DDevice9やら、ID3DXEffectやらのポインタなのですが、
実際に生成したクラスから、実際に描画する下位のクラスまで、
複数のクラスで包れてる時、どう渡していったらよいのか悩んでいます。

・グローバル変数で持つ。
・毎回引数で渡していく。
・包まれてるクラス内部でコピーを持つ。

思いついたのはこの三つなのですが、定番みたいなものってありますか?
0262名前は開発中のものです。2005/10/22(土) 19:04:20ID:Vm2aXygr
共有される変数?についての質問なのですが
敵キャラのように同じものがいくつも生成される場合
テクスチャなどは使い回しですが
そこでそれはどのように管理したらよろしいのでしょうか?

class Cube {
public:
 static LPDIRECT3DVERTEXBUFFER9 m_pVB[6];
private:
 // 座標とかその他各インスタンスによって違うもの類
};
vector<Cube*> cube; // 管理はベクトルで

と、自分ではstaticクラスメンバを使う方法が思いつきました
ゲーム開始前の初期化処理でm_pVB[6]を初期化するわけですが
それだとCube::m_pVB[6]となり正直見づらい?気がします
何か綺麗な方法とかってありますか?

0263名前は開発中のものです。2005/10/22(土) 19:10:23ID:uSckOX9o
最近色んなスレで同じような内容を見かけるのだが

>>262
何か共有データを持つリソース管理クラスでも作ればいいっしょ。
そいつをシングルトンにしてしまう。

class ResourceManager
{
private:
 map<string,IDirect3DTexture9*> m_textures;

public:
 IDirect3DTexture9* GetTexture( string& str );
};

例えばの話だけれど。
テクスチャみたいに何度も参照するような奴はID制にしてもいいし、その辺はお好みで。
上手く作れば、必要なときにだけ必要なテクスチャをロードできるようなクラスも作れるよ。
0264名前は開発中のものです。2005/10/22(土) 19:14:05ID:Vm2aXygr
即レスありがとうございます
シングルトンについてはあまり詳しくないのですが
色々試して見たいと思います

>最近色んなスレで同じような内容を見かけるのだが
すいません。他のスレもみて回ってきます
0265名前は開発中のものです。2005/10/22(土) 19:57:41ID:z7DLcweh
シングルトンにする必要の無いところは無理にしなくてもいいのでは。
テクスチャ管理クラスだって種類別に分けることも考えられるし
どちらかというとFlyweightを調べれ。
0266名前は開発中のものです。2005/10/22(土) 21:47:32ID:Vm2aXygr
Flyweightをネットで調べてみたのですが
どのようにゲームに使えばいいのかわかりません…orz

現在作ろうとしてるのは
LPDIRECT3DVERTEXVUFFER9 m_pVB[6]: // 立方体
LPDIRECT3DTEXTURE9 m_pTex; // テクスチャ
くらいしか共有するものがありませんが
実際ゲームに組み込むにはどのようにやればいいか
ヒントだけでもお願いできないでしょうか?
共有しないものは今は座標くらいです
0267名前は開発中のものです。2005/10/23(日) 04:51:57ID:ndzheBND
>>266
適当に答えるけど、LPDIRECT3DVERTEXVUFFER9って共有化出来るの?
ちょっと疑問。
あるCube?のUV変更したら他のCubeのUVも変わると思うけど?
これって3D?2D?

俺の2Dゲーの実装だと、プリミティブグループというクラスに1つテクスチャ持たせてる。
で、任意の数だけグループがある。(テクスチャ数やレイヤー分けに依存)

で、グループ内には頂点バッファが任意のキャラ数X6頂点分ある。と。(3角形2個で1スプライト)
描画はグループ(頂点バッファ)毎に1度。
テクスチャ切り替えはグループ描画前に。(直前と同じものならスルー。手抜き実装w)
ややこしいと思うので、素直にD3DXのスプライト使えば良いと思うけど。
02682652005/10/23(日) 05:11:22ID:465Fxa31
>>263のようにCubeも管理じゃだめなの?
俺は別に >>263 を否定しているわけではないので。

class Cube : public Model{
private:
  LPDIRECT3DVERTEXBUFFER9 m_pVB[6];
  LPDIRECT3DTEXTURE9 m_pTex;
  std::string m_strName;
};

class ModelManager{
private:
 map<string,Model*> m_Models;
public:
 Model* GetModel( string& str );
};
02692622005/10/23(日) 11:29:43ID:grZLuuOc
>>267
>LPDIRECT3DVERTEXVUFFER9って共有化出来るの?
今のところCubeの大きさや色を変えるつもりはなかったので
UV座標は座標などと一緒に各インスタンスに持たせて描画前にm_pVB[]->LockでUV変更するつもりでした
(今思うと毎回Lockってどうなんだろう…)

>>268
>>263氏を参考に作ってましたが
Flyweightなるものを知って試してみようと…
まだまだ知識不足なので頂いたアドバイスは片っ端から調べたいので。
説明には細かいオブジェクト(ゲームなどでは敵・爆発などに)に向くあり、
ちょうどイイのかなと思いました

>class Cube : public Model
Cubeが継承してるModelはDrawなどの純粋仮想変数を持つ抽象クラスでしょうか
それで他の敵にも継承するようなイメージですか?
Model
 Cube
 Ball
 Triangle
0270名前は開発中のものです。2005/10/23(日) 11:49:27ID:2eSW8adf
皆さんが一番最初に作ったアプリケーションはどんな物でプログラミング言語は何を使いましたか?
0271名前は開発中のものです。2005/10/23(日) 11:59:49ID:I0F4r0w2
PONGもどきをN88BASICで
・・・懐かしいなぁ
0272名前は開発中のものです。2005/10/23(日) 13:17:08ID:VVGhVNv4
>>270
アンケートはやめれ
0273名前は開発中のものです。2005/10/23(日) 13:19:23ID:0pIQSLBL
242です。

>>243さん
ヘルプを読んで「-v」オプションでリリースビルド、「-v-」オプションで
デバッグビルドと解釈しましたが……

>>245さん
やってみましたが、d3dx8bor.dllを要求されました。
0274名前は開発中のものです。2005/10/23(日) 14:22:44ID:grZLuuOc
>>268
連レスすいません
そのやり方は全ての描画パターン?をmapに格納という捕らえ方でいいですか?

例えば同じ形で模様だけが違うキューブの場合
// 水模様のキューブ
LPDIRECT3DVERTEXBUFFER9 m_pVB[6];
LPDIRECT3DTEXTURE9 m_pTex = tex.tga;
std::string m_strName = "WaterCube";

// 空模様のキューブ
LPDIRECT3DVERTEXBUFFER9 m_pVB[6]; // uvだけが違う
LPDIRECT3DTEXTURE9 m_pTex = tex.tga;// 上と同じ
std::string m_strName = "SkyCube";

座標などは
class Item
{
 D3DXVECTOR3 position;
 // 拡大縮小・回転とか
}
std::vector<Item*> ItemList;
で管理して描画の時に
Model* mod = GetMode("WaterCube");
mod->Draw();
な風でよろしいでしょうか?
0275名前は開発中のものです。2005/10/23(日) 14:26:53ID:grZLuuOc
あ、管理クラスにどのモデルか入れないとですね…

class Item{
 D3DXVECTOR3 position;
 std::string m_type = "WaterCube";
 // その他の情報
}
Model* mod = GetModel(m_type);
0276名前は開発中のものです。2005/10/23(日) 14:43:21ID:465Fxa31
>>274-275
大体そんな感じでいいんじゃない。
細かいところは好みが分かれるだろうから
自分なりに色々試すといいんじゃないかな。
02772622005/10/23(日) 19:59:05ID:grZLuuOc
uv座標の初期化は
素直にコンストラクタまたは初期化関数の引数に
12個D3DXVECTOR2を指定するしかないでしょうか?
0278名前は開発中のものです。2005/10/23(日) 20:05:40ID:kQywssPE
>>277
形状から計算できるなら計算すればいい。
Cubeなら可能じゃない?
02792622005/10/23(日) 20:08:28ID:grZLuuOc
どのような計算でしょうか?
対角線上の2座標から求める方法くらいしか…orzそれだと12個必要で…
0280名前は開発中のものです。2005/10/23(日) 20:10:33ID:grZLuuOc
あ…D3DXVECTOR3を使えばできそう?ですか?
0281名前は開発中のものです。2005/10/23(日) 22:14:28ID:N/8aW5iP
別に12個書いとけばいいじゃん
0282名前は開発中のものです。2005/10/23(日) 22:21:17ID:IY91J/m0
>>273
> やってみましたが、d3dx8bor.dllを要求されました。

それで正しいような気がする。
Borland は DirectX7 までしか普通にサポートしてないので、
DirectX8 〜 DirectX9 dec 2004 までのはラッパーDLL が必要。
だから d3dx8bor.dll も配布時に添付しなくちゃいけない。

Visual C++ toolkit 2003 でも入れてそっちでコンパイルし直すという手もあるが。
0283名前は開発中のものです。2005/10/24(月) 00:22:53ID:GKX+mPbp
>>だから d3dx8bor.dll も配布時に添付しなくちゃいけない。
何も知らないためおろかな質問かもしれませんが、
権利関係なんかはどうなっているのでしょうか?

ぶっちゃけた話、ゲームが完成したらコミケででも販売できればなぁ
と思っているのですが。
0284名前は開発中のものです。2005/10/24(月) 07:37:56ID:tr/C7RrK
>>283

> You are free to use the LIBs and DLLs in the archive (borland_dx8_libs.zip) to create your DirectX applications.
> You may redistribute the archive as long as you do not modify its contents or provide misleading information about its origin.

自由に使うことが出来て、制作元やら内容を改変しない限りは自由に再配布可能
0285名前は開発中のものです。2005/10/25(火) 23:25:12ID:cEhx0fLX
C++で回転に関する関数を作っています
float形で初期角度A、目的角度B、角速度Cを与えて、変位後の角度を求めようとしています。
つまり、A+CがBを通り過ぎた場合は、Bを返す関数です。
A,B,Cがfloat形の範囲すべてを許して、戻り値をーπ〜πの範囲で求めているのですが、
どんなやり方があるのでしょうか?
0286名前は開発中のものです。2005/10/25(火) 23:42:36ID:y+WOvieh
擬似コードで

A = A mod 2PI;
B = B mod 2PI;

if( C > 0 )
{
 if( B < A )
  B += 2PI;

 if( A+C > B )
  return B mod 2PI;

 return A+C;
}
else { 逆方向の場合 }

こんな感じ? 変な動作したらスマネw
0287名前は開発中のものです。2005/10/26(水) 01:00:24ID:2wKtRiC0
>286
うーん、正しいはずなんだけど、微妙に変な動きをする。
0288名前は開発中のものです。2005/10/26(水) 01:19:55ID:0x/QRLdP
変な動きって、どういう動きなの?
具体的に言われないと分からん。
あとこれだとホーミングの動きはできないよ?
0289名前は開発中のものです。2005/10/26(水) 07:44:31ID:lKULf0+e
昨今のPCゲームって、複製防止に
どういう対策してんのですか?
0290名前は開発中のものです。2005/10/26(水) 08:23:47ID:e5qNZct1
nyにうpされてたら訴訟。
0291名前は開発中のものです。2005/10/26(水) 08:24:35ID:e5qNZct1
レーベル印刷で付加価値
0292名前は開発中のものです。2005/10/26(水) 08:41:25ID:lKULf0+e
そうなんですか。ではお礼に
http://www.4gamer.net/news.php?url=/patch/demo/landofthedead/landofthedead.shtml
デモ版だけど面白いよ
0293名前は開発中のものです。2005/10/26(水) 09:39:50ID:AQofpRHU
>>290
うpされてから半年以内なら、警察に被害届を出すのがデフォかと。
訴訟に関しては、うpされてから半年以上経過してる場合にやるべし。
0294名前は開発中のものです。2005/10/26(水) 09:48:40ID:S+icyYda
自作の物が、nyにうpされてた場合、被害届けだせば、警察は捜査してくれるん?
0295名前は開発中のものです。2005/10/26(水) 10:19:14ID:0x/QRLdP
するわけないな
0296名前は開発中のものです。2005/10/26(水) 10:43:09ID:gCW6PKCl
>>289
複製防止とは全く関係ないが
某エロゲのCGは割れPhotoshopで作ったらしく
ヘッダにwarezzzzと入っている
普通はヘッダを削除して1つのファイルにまとめるが
プログラマの嫌がらせなのか割れ暴露なのか
ヘッダそのままになってる

画像抽出ツールとか使ってファイルを展開させてから
バイナリエディタで見てみよう
0297名前は開発中のものです。2005/10/26(水) 11:21:45ID:Q3+qboh+
ネットゲー作成の環境についてだけど、
ケーブル(ぐろーばるIPなし)環境じゃテストって無理?

後、VS.netって複数の実行ファイルを同時にデバッグて出来る?(サーバー/クライアントを同時にデバッグしたい)
0298名前は開発中のものです。2005/10/26(水) 11:37:13ID:r12CZNBb
>>297
> ケーブル(ぐろーばるIPなし)環境じゃテストって無理?
ローカルに鯖と蔵置けば可能。
1台のマシンで鯖と蔵を同時に動かせばいい。

> 後、VS.netって複数の実行ファイルを同時にデバッグて出来る?(サーバー/クライアントを同時にデバッグしたい)
VS.netを二つ起動しる。
ただ同期を取る必要がある時にブレークポイントで片方が止まってたりすると
もう片方も必然的にブロッキングするから、あまり意味がないような・・?
素直にデバッグログを吐くようにした方がいいかと。
0299名前は開発中のものです。2005/10/26(水) 11:48:26ID:Q3+qboh+
>>298
即回答サンクス!

>ローカルに鯖と蔵置けば可能。

今はそうやってソケット関連のサンプル動かしてます。
で、実際に公開したり、友人とテストしたいけど、出来るのかなー、と。

>素直にデバッグログを吐くようにした方がいいかと。

なるほど、確かに同期取る場合は意味ないかもですね。
0300名前は開発中のものです。2005/10/26(水) 13:44:56ID:fc7w0ZfG
>>294
売り物であればな。うpして逮捕されたケースならいくつかあるぞ。
まあ、問題があるとすれば、被害届の書類を書くのが面倒な点だな。
0301名前は開発中のものです。2005/10/26(水) 17:39:01ID:baE+a5FB

【笠間ゆかり】新ブログ発覚!!【仏ヲタきんもーっ☆】
http://travel2.2ch.net/test/read.cgi/kyoto/1122274328/


笠間ゆかり、イムイ象ヲタを「きんもーっ☆」
http://academy4.2ch.net/test/read.cgi/gallery/1122274058/
0302名前は開発中のものです。2005/10/26(水) 17:54:21ID:kCz0uExZ
>>300
フリーウェアの著作権が無視されがちなのは、
被害金額が0円だからだという噂がある罠。
0303名前は開発中のものです。2005/10/26(水) 18:49:47ID:isn/vw4G
>>294-295
著作権法が何のために存在すると思ってるんだ?
0304名前は開発中のものです。2005/10/26(水) 18:54:06ID:NoXU8zJN
警察がお仕事をサボる時代だからなあ
0305名前は開発中のものです。2005/10/26(水) 19:17:38ID:Pzc32/li
県警が勤勉でない県には住みたくないなぁ・・・
治安が無茶苦茶悪そうだぁ・・・
0306名前は開発中のものです。2005/10/26(水) 19:38:03ID:IDcc23f2
むしろ、安全かもしれんぞ。それだけ事件が起きないという事だからな。
けどまあ、人の多い県で県警が勤勉でないケースは、かなりヤバいけどな。
不祥事で有名な埼○県警とか・・・
0307名前は開発中のものです。2005/10/26(水) 21:31:57ID:77Yg+bdO
一番は神○川だろ
0308名前は開発中のものです。2005/10/26(水) 22:08:03ID:0x/QRLdP
大御所の京都府警に通報。
0309名前は開発中のものです。2005/10/26(水) 23:23:26ID:NoXU8zJN
京都府警に通報したら逆にダウンロード&アップロードされちゃいそう
0310名前は開発中のものです。2005/10/27(木) 00:01:26ID:RnvbVIfF
無断うpは犯罪だが、DLは犯罪じゃないよ。困ったことにね。
個人的にはny系のソフトは、使用するだけでも犯罪にして欲しい。
0311名前は開発中のものです。2005/10/27(木) 00:03:28ID:RnvbVIfF
DLするヤシがいるから、無断うpするヤシが出てくる。
著作権擁護派としては、nyの存在自体が許せない。
0312名前は開発中のものです。2005/10/27(木) 00:54:03ID:aQ3jmn+K
ny系のソフトを使う事自体は、犯罪でも何でもない。
ただし、著作権所有者には嫌われる。まあ、当然の話だよな。
著作権所有者には、得られる物が何も無いんだから。
0313名前は開発中のものです。2005/10/27(木) 01:17:41ID:Hnh/eoBV
>得られる物が何も無い

知名度が得られるぞ。
まあ、見返りが得られる可能性があるのは数年以上先の話だが・・・
0314名前は開発中のものです。2005/10/27(木) 01:30:00ID:dxgWBGRE
>>313
見返りを得られる前に潰れたら、意味が無いのだが・・・
そもそも知名度が上がると、厨ユーザーにからまれる可能性も増えるから、
潰れる可能性も増えるし・・・
0315名前は開発中のものです。2005/10/27(木) 05:39:21ID:tm30zmtE
DL出来るってことはULしてる奴が必ずいるわけだからね。
0316名前は開発中のものです。2005/10/27(木) 06:28:23ID:QRJTaOJz
いいかげんスレ違い
0317名前は開発中のものです。2005/10/27(木) 11:18:56ID:mBydvmTs
フリーソフトやGPLってパクられて実際に裁判までいったことないよね
0318名前は開発中のものです。2005/10/27(木) 11:46:45ID:GkChRdfJ
GPLのソースを使ってソース公開をせずに裁判沙汰になった例は2002年以降から存在している。
頭の悪い発言はやめろ。
0319名前は開発中のものです。2005/10/27(木) 12:26:06ID:HN21Jhck
>>317
俺が知ってるだけでこれだけあるんだが。

・家電屋の添付ソフト事件
・ギャルゲのWINアクセサリ事件
・某フリーウェアCGソフト事件
■ このスレッドは過去ログ倉庫に格納されています