検索結果 58 件

by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: ■ 新年の挨拶トピック~2013~ ■ 今年の抱負 ■ [雑談]
返信数: 25
閲覧数: 11584

Re: ■ 新年の挨拶トピック~2013~ ■ 今年の抱負 ■ [雑談]

明けましておめでとう御座います。
3Dのライブラリの試作も出来たのでサクッと簡単な3Dゲームを作れたらと思います。
また、HSLSが弄れる様になったらその内OpenGLを弄ってみようかと思います。
皆様にとっても良い一年でありますように。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二点を結ぶ線の中点から垂直にある程度離れた点
返信数: 6
閲覧数: 3877

Re: 二点を結ぶ線の中点から垂直にある程度離れた点

ベクトルは概念的な物でやってることは一緒です。
ただ、オーバーロードとクラスを用意すれば見掛け上簡素で綺麗なコードが書けるので最初に書きました。
(最適化が無ければちょっと無駄な処理が増えますけど)
しかし、座標がx,yで表示されていたのでベクトルじゃない方法の方がいいかと思いまして消しただけです。

他には自キャラと敵キャラのベクトルと、自キャラと目的の点とのベクトルの内積から+か-かで判断して法線ベクトルに-掛けるとかはどうでしょうか?
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二点を結ぶ線の中点から垂直にある程度離れた点
返信数: 6
閲覧数: 3877

Re: 二点を結ぶ線の中点から垂直にある程度離れた点

回転の式は
ある点P(x,y)にたいしてθの角度分動かしたい場合

コード:

x=x*cos(θ)-y*sin(θ);
y=y*cos(θ)+x*sin(θ);
で求められます。(加法定理ですね)
ですので90度動かしたいなら

コード:

x=x*cos(π/2)-y*sin(π/2);
y=y*cos(π/2)+x*sin(π/2);
となります。
さらに言えば

コード:

x=-y;
y=x;
こうなります。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: スマートポインタでのポリモーフィズムについて
返信数: 2
閲覧数: 4154

Re: スマートポインタでのポリモーフィズムについて

そもそもこのコードではコンパイルが通りません。 インターフェースクラスが実体化されている時点でおかしなコードです。 std::list<ICharaBase> ICB; MChara* mchar=new MChara(); //UPキャストだから、気にしないでOK ICB.push_back(reintepret_cast<ICharaBase>(mchar)); そして、クラスポインタのアップキャストにreinterpret_castを使うべきではありません。 reinterpret_castは関係の無い型のポインタ同士を無理やりキャストするためのもので、 ダウンキャストや継承関係にない...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: スマートポインタでのポリモーフィズムについて
返信数: 2
閲覧数: 4154

スマートポインタでのポリモーフィズムについて

スマートポインタでポリモーフィズムを実現する際にふと壁に当たりました。 ///インターフェイスクラス class ICharaBase{ public: virtual ~ICharaBase(){} public: virtual void Load()=0; virtual void Ini()=0; virtual void Calc()=0; virtual void Draw()=0; }; //自キャラ class MChara:public ICharaBase{ //インターフェイスのオーバーライド void Load(); void Ini(); void Calc(); v...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: ランダムに関して
返信数: 2
閲覧数: 1895

Re: ランダムに関して

いつも、お世話になっています。 さっそく申し訳ありませんが、今回の質問です。 配列の要素数に対して要素数を超えないように扱うために、 CPUがランダムでプレイヤーの持つ動的配列の要素数から上手く選ばせるには どうすればいいでしょうか? トランプなどのカードゲームで、 自分のカードを相手に取らせるのはいいのですが、 現在のカード数を動的配列で扱っているため、 ランダムで自分のカードを取らせる場合に上手く配列の要素を超えないように、 選ばせることができません。 つまり、 playerCard[20] の場合は、0~19の数で、 playerCard[3] の場合は、0~2の数で相手にランダムで選...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 画像ファイルの読み込みについて
返信数: 11
閲覧数: 7782

Re: 画像ファイルの読み込みについて

ISLe さんが書きました:ディレクトリを走査すると順番を把握するのが面倒になるのでは?
ああっ、そうでした!すみません。
ISleさんのコードの方が遥にいいですね。オーバーフロー対策的にも。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: マップエディタ等で作ったマップを反映させるには
返信数: 4
閲覧数: 2465

Re: マップエディタ等で作ったマップを反映させるには

2Dアクションゲームを作るときに、プログラムでマップの数値を打ち込んで行くよりも自分でマップエディタを作ったほうが良いと聞いたので 簡単なマップエディタを作りたいのですが、 マウスでクリックしてマスのマップを変更したりした後に、作ったマップデータをどうやって反映させればよいのでしょうか? とあるjavaのサイトで、マップデータをテキストとして出力してそれを自分でコピーしてプログラムに貼りつけるという方法を見たことがあって それでもいいのですが、普通はどうやってマップデータを反映させるのでしょうか? 普通かどうかは知りませんが、自分はマップ情報を持つ自作のファイル形式を作ります。 ヘッダにはマ...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: WaitKey()が待ってくれない
返信数: 9
閲覧数: 6699

Re: WaitKey()が待ってくれない

せち さんが書きました: 追伸
上記のようなことが起きた当時、インターネットブラウザやインターネット電話サービス、アンチウイルスソフトやファイアウォール等様々なソフトを起動させていたのでそれの影響もあるかもしれません。
vistaは使ったことが無いのでよくわかりませんが。
ディバイスの取得までは成功しているみたいなので、もしかしたら権限の関係かもしれません。
programファイルとかOSの管理下の場所でアクセスしていませんか?
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 画像ファイルの読み込みについて
返信数: 11
閲覧数: 7782

Re: 画像ファイルの読み込みについて

画像ファイルの読み込みをLoadGraph関数を使って、ひとつずつ行っていますが、ファイルの数が増えてくるといちいち入力するのが面倒くさくて、大変です。「このフォルダ内のpngファイルを読み込む」といった具合に自動化できませんか? #include "DxLib.h" #include <math.h> ~省略~ GTable[0] = LoadGraph( "画像/いぬ.png" ) ; GTable[1] = LoadGraph( "画像/うさぎ.png" ) ; GTable[2] = LoadGraph( "画像/うし.png" ) ; GTable[3] = LoadGraph( ...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: WaitKey()が待ってくれない
返信数: 9
閲覧数: 6699

Re: WaitKey()が待ってくれない

せち さんが書きました:赤鬼様、返信ありがとう御座います。

回答をヒントに調べてみるとどうやらElecomマウスはVisual C++と相性が良くないようですね。
一応、デバイスの更新やデバイスツールの終了などを試してみます。

ちなみに、赤鬼様はどちらの企業のマウスを使用していますか?
宜しければ参考までにお聞きしたいのですが。
さ、様!?
'さん'でいいです。

私もElecomのを使っていますよ。
型はM-FGURBKですが問題なく機能しています。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: WaitKey()が待ってくれない
返信数: 9
閲覧数: 6699

Re: WaitKey()が待ってくれない

DxLib_Initの内部でマウスディバイスの設定に失敗しています。
原因は不明です。
が、常駐ソフトなど他に起動していませんか?
メモリ容量に対して、空きメモリが少ないように感じました。
もしかしたら、起動している常駐ソフトが何らかの悪さをしているかもしれません。
再度リビルドしなおしてみてはいかがでしょう?

追記
それと、入力関係のディバイスのドライバを更新してください。
キーボードやマウスなど。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列でつくったMAPをスクロールさせたい
返信数: 50
閲覧数: 19359

Re: 二次元配列でつくったMAPをスクロールさせたい

EKISUKE さんが書きました:2行飛ばしたときには正常に動いたのは初期化が配列があふれるまで行われなかったということでしょうか・・・?
試していないので憶測ですがそうだと思います。
もしくは、ただエラーが起きなかっただけかもしれません。
配列溢れで気づかないところでバグなんて気をつけないとしょっちゅう起こってしまうかと。
EKISUKE さんが書きました:ここの中の動きがどう変わるのかがまだ理解できていないです。
見てトレースが難しいのなら、デバッガで一つ一つ追いかけて行くしか無いかと思います。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列でつくったMAPをスクロールさせたい
返信数: 50
閲覧数: 19359

Re: 二次元配列でつくったMAPをスクロールさせたい

EKISUKE さんが書きました: これで一応解決したのですが、なぜかいまいちわかっていません。
おそらく24行目まで読み込もうとして入れ子の配列を越えてしまったのでしょうが、描画が終わった後にアクセス違反が起こるのが納得がいかないです。
なにか、たまたま解決しただけで根本的な解決になっていなような気がするので、質問しました。
解決方法はこれであっているでしょうか・・・・
すみません見間違えました。

追記
多分大丈夫だと思います。
先ほどまでのコードは配列溢れの対策が全くなっていなかったので。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 子ウィンドウって…
返信数: 4
閲覧数: 2579

Re: 子ウィンドウって…

Windows系のプログラムを最近興味持ってやってみたんですが、ちょっと気になったことがあってトピックを立てさせてもらいました。 Windowsのプログラムで親ウィンドウは大体常に表示されますが、子ウィンドウなど何かのイベントで表示させたい場合、ShowWindow?みたいなので表示しますが、それをプログラム上から閉じた場合、再度ウィンドウを表示するのはどうやってるんでしょうか? 初めは完全に閉じずに、まるで閉じたかのようにウィンドウを消し、またイベントが起きた時に表示してるのかなと思ったのですが、これであってるのですか? 普通に考えてこうだろ…とか、何言ってるんだ?…とか思うかもしれません...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: プログラムの評価依頼
返信数: 18
閲覧数: 7227

Re: プログラムの評価依頼

人様のコードを評価出来るほど熟練した訳では無いですが少しだけ個人的に気になった事を。

テクスチャを動的確保しているのになぜオーディオや、その他多数動的確保しなかったのか気になりました。
また余計なところで必要の無いヘッダのincludeが多々見受けられました。
これではビルドの際時間が余計に掛かるかと思われます。
(ヘッダファイルの解析はそれほど早くありません。また、プリコンパイルも視野に入れて見てはどうでしょうか?)
後は他の方のを参考にしてください。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列でつくったMAPをスクロールさせたい
返信数: 50
閲覧数: 19359

Re: 二次元配列でつくったMAPをスクロールさせたい

ブレークポイントで追うと、途中まではうまく読み込まれるみたいですが、最終的(おそらくgoto EXFILEに行ったとき)に不定値が配列に入れられているみたいです。 goto EXFILEの判定の中にブレークポイントを置いて試すとgoto EXFILEにいった瞬間配列の中のデータが不定値に切り替わっているようです。 if(input[i]=='\n'){// 改行なら inputc[i]='\0';// そこまでを文字列とし break; } if(input[i]=='\n'||inputc[i]==','){// 改行とカンマなら inputc[i]='\0';// そこまでを文字列とし ...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列でつくったMAPをスクロールさせたい
返信数: 50
閲覧数: 19359

Re: 二次元配列でつくったMAPをスクロールさせたい

ということは int x = 0; int y = 0; while(1){ for( i=0; i<MAP_SIZE; i++ ){ inputc[i] = input[i] = fgetc(fp); // 1文字取得 if(inputc[i]=='/'){ // スラッシュがあったら while(fgetc(fp)!='\n'); //改行までループ i=-1; // カウンタを最初に戻して continue; } if(input[i]=='\n'){// 改行なら inputc[i]='\0';// そこまでを文字列とし break; } if(input[i]==EOF){// フ...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列でつくったMAPをスクロールさせたい
返信数: 50
閲覧数: 19359

Re: 二次元配列でつくったMAPをスクロールさせたい

load.cpp //============================================================== //! @file load.cpp //! @brief csvファイルのロード //! @author YukiIshigaki //============================================================== #include "../../HeaderMain/HeaderMain.h" #include<stdio.h> //--------------------------------...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列でつくったMAPをスクロールさせたい
返信数: 50
閲覧数: 19359

Re: 二次元配列でつくったMAPをスクロールさせたい

回答有難うございます。 MapDataは次のような形で作っています。   // ポインタのポインタに配列を入れる MapData = new int* [MAP_HEIGHT]; // それに列の分だけ配列を入れて2次元配列をつくる for(int i=0; i<MAP_HEIGHT; i++){ MapData[i] = new int[MAP_WIDTH]; } これだとエラーはでないのですが、2次元配列を引数としては渡せないのでしょうか? 先ほど書いてくださったように直してみました。 でも、まだ0で全部値が直されているということは読み込みに問題があるんですね。 goto EXFILEの...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 終端文字 ¥0 とは・・・
返信数: 13
閲覧数: 36334

Re: 終端文字 ¥0 とは・・・

解決押し忘れてます?

コード:

int main(){
	char str[2][6]={
		"MARIO",
		"LUIGI"
	};
	printf("%s\n",str);
	str[0][5]='&';
	printf("%s\n",str);
	getchar();
	return 0;
}
環境依存無しのコードだと思います。
両方供同一の先頭ポインタを渡していますが、結果は違います。
試して見て下さい。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列でつくったMAPをスクロールさせたい
返信数: 50
閲覧数: 19359

Re: 二次元配列でつくったMAPをスクロールさせたい

説明不足ですみません。 ファイルの正しいパスを渡しているはずなのにファイルが開けないときの処理が行われるのです(コマンドプロンプトに「ファイルが開けません」)。 なので、その処理のところまで実行したら、fpにカーソルを合わせると???がptr_などに入っており、式が評価できないとエラーが出ていました。 そこで、csvへのパスが正しくなかったのかと思いパスを変えたり、slnと同じ階層に保存して開けるかどうか試したのですが、 それでも「ファイルが開けません」とでるので、なぜなのかと思い質問しました。 質問したいこと以外のことを書いてしまい混乱させてすみません。ほかのプログラムも影響してるのかと思...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列でつくったMAPをスクロールさせたい
返信数: 50
閲覧数: 19359

Re: 二次元配列でつくったMAPをスクロールさせたい

11章のを見ながらいろいろ変えていったのですが、どうもcsvのパスがおかしいのかうまくファイルが開けないようです。 load.cpp void Load::Load_csv( char* name, int** Matrix, MATRIX mode ) { int n = 0; int num = 0; int i; // for文で使う変数宣言 FILE* fp; // ファイルを格納 int input[64]; char inputc[64];// ファイルの中の値を格納 fp = fopen( name, "r" );// ファイルを開く if(fp == NULL) // もしフ...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: タイトル画面
返信数: 11
閲覧数: 4251

Re: タイトル画面

そういうお考えで私と違うヒントを出されるのは良いと思います。 私のコメントに対して異論があるという書き方をされたので私も意図を説明させていただきましたが、ぜんぜん違う考えでヒントを出すことは問題ありません。 ただ、私が思うのは既にコメントしましたが赤鬼さんのヒントも初心者には難しすぎるのではないだろうかと思った次第です。関東西人さんのコメントがないのでコメント待ちなんですけどね。 そ、そうですね。始めて触るって言ってましたしね。 実際にプログラムを書かずに、流れだけ示せば良かったかもしれません。 それと、誤解を与えたかもしれませんが自分もsoftyaさんの意見にも賛成です、自分も同じ用な考え...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: タイトル画面
返信数: 11
閲覧数: 4251

Re: タイトル画面

ゲームプログラミングの館や龍神録の内容がほぼ理解できるぐらいソースコードを眺めて、コードを改造しまくり、自力で同じようなコード自分で書いてみるなど行為を繰り返した末にならタイトルの作りかたぐらいは自分で考えれるようになっているはずです。と最初から書いているつもりなんですが。 私の持論ですがプログラミングってそういうものではないかと思います。 そう言う意味でしたか。 その位理解しているなら作れると思いますね。 まあ、その位の人なら、作ってから分からないところを掲示板に持ってくるかと思います。 また、同じようなソースを書くだけなら、考えなくても覚えてしまえば書けてしまいます。 一番最初の文面を見...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: [雑談]プログラミングで一番嫌な経験は?
返信数: 24
閲覧数: 9359

Re: [雑談]プログラミングで一番嫌な経験は?

私は、VS2010のインテリセンスフリーズ+ブルーバックをデバッグ前にやられた事ですかね。
修復したはずが、滅茶苦茶なソースコードになっててその部分を一からの組み直しになった事は言うまでも無い・・・・・。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: タイトル画面
返信数: 11
閲覧数: 4251

Re: タイトル画面

ゲームプログラミングの館にmain制御の仕方と選択メニューの作りかたがあるのはご存知でしょうか? それと【メインループで呼ぶ関数を制御してみよう】にはこう書かれています。 http://dixq.net/rp/6.html メインループで呼ぶ関数はその時の状況によって様々になるでしょう。 つまりメインループで呼ぶ関数を制御する必要があります。 そこで、func_stateなる変数を用意し、それに状態を示す値を代入し、それを元に条件分岐させてやりましょう。 func_state変数をグローバル変数として用意したいので、まずGV.hに追加します。 いかがでしょうか?ヒントはちゃんと書かれていると...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: タイトル画面
返信数: 11
閲覧数: 4251

Re: タイトル画面

ここのサイトの2つのページ 「新・C言語 ~ゲームプログラミングの館~ [DXライブラリ]」 http://dixq.net/g/ 「龍神録プログラミングの館」 http://dixq.net/rp/ を全部勉強し見なくても同じぐらいのプログラムのソースコードが書けるぐらい理解すれば、タイトル画面がどうやって作れるかは自ずと理解できますよ。 龍神録の講座にタイトルがないのも、そうなってほしいと言う意味も込められています。 ちなみにちょっとしたヒントぐらいは書かれています。 → 【メインループで呼ぶ関数を制御してみよう】 うーん、どうでしょうか。 ゲームのメイン部分はアクションなど別種になって...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列でつくったMAPをスクロールさせたい
返信数: 50
閲覧数: 19359

Re: 二次元配列でつくったMAPをスクロールさせたい

このコードは11章のswitch文のところでしょうか? だとすれば、atoiを使わなくてよくなったのはなぜでしょうか? それとも、別のところでしょうか? まだ11章の読み込みがどこなのかよくわかっておらず、すみません。 もしかして、この11章全体が↑のコードでまとめれるということですか? まずatoiを使う理由を良く考えて下さい。 char型の文字数字をint型に直す為の関数です。そして%dは文字列を10進数、整数型で出力します。 要するにint型で出てきます。つまり、もともと直す必要が無いのです。 11章全体はまとめられません。ファイルのオープンなど敵の処理やらをすっ飛ばしてますから。 し...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 二次元配列でつくったMAPをスクロールさせたい
返信数: 50
閲覧数: 19359

Re: 二次元配列でつくったMAPをスクロールさせたい

http://dixq.net/rp/11.html 今11章の読み込みプログラムを読んでいて質問があるのですが、 char fname[32]={"../dat/csv/11章/storyH0.csv"}; int input[64]; char inputc[64]; これのそれぞれの役割はなんなのでしょうか?fnameはファイルデータの参照先をcharに入れているようなのですが、要素が32なのはなぜですか? input と inputcについてはわからないです。 for(i=0;i<2;i++)//最初の2行読み飛ばす while(FileRead_getc(fp)!='\n'); こ...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: XAudioでのループ再生時のノイズについて
返信数: 4
閲覧数: 3487

Re: XAudioでのループ再生時のノイズについて

追加なのですが、いきなり停止してもプツっと言うノイズが出ます。 一時停止なら問題ないのですが、いきなり無音状態に移行すると同じようなノイズが出ました。 そこで暫く自分で探してみて、同じような症状が。 //2ch DirectX初心者スレ30より 停止→再構築→再生でノイズが入るわけじゃなくて 再生中のを停止する時点でノイズ入ってるな これは多分何やっても駄目だと思う 停止ではなく段階的にボリューム落として無音にしていきつつ 別バッファで新しく再生とやれば大丈夫だと思うが、多分これでは求めてる物にはならないだろう 良く考えるとこの状態でした。 音が鳴ってる状態 ↓ 直後、無音になるとプツっという...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: XAudioでのループ再生時のノイズについて
返信数: 4
閲覧数: 3487

Re: XAudioでのループ再生時のノイズについて

Data は std::vector ですか? もしそうだとすると、 buffer.AudioBytes = Data[flip].size(); の部分が怪しいです。 ちゃんと読み取ったサイズに合わせて resize していますか? もしくは、buffer.AudioBytes には Read() で読み取ることのできたバイト数を直接設定するべきかと思います。 はい、std::vectorです。 //CWaveFile::Read関数 HRESULT CWaveFile::Read(DWORD size,std::vector<BYTE> &Data){ if(hmmio==NULL){ ...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: エラーがよくわかりません
返信数: 11
閲覧数: 4639

Re: エラーがよくわかりません

メニューバーになかったので困ってしまいましたが、キーでできました! リビルドをしたところ、エラーが発生しなくなりました。 ありがとうございます。 質問が多くなってしまうのですが、こういうのはなにに注意すればいいのでしょう? そう言う場ですから余り気にしなくて良いかと思います(笑)。私も良く逸れますし(おぃ 話題が変わるようなら、別に立てれば良いと思います。 コンパイラの不調は予期出来ない場合が多いので、あれ?おっかしいなぁ・・・って思ったときはリビルドするのが良いと思います。 2~3やっても駄目な場合は、コードが間違ってると思って下さい。 あと、出来るだけ不要な常駐ソフトを切ったり、メモリに...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: エラーがよくわかりません
返信数: 11
閲覧数: 4639

Re: エラーがよくわかりません

弾丸オネエ さんが書きました:申し訳ないのですが、リビルドの仕方を教えていただけませんか?
環境によりますがVC2010なら上の方に有るメニューバーの"ビルド"の中に"ソリューションのリビルド"と言うのを選択して出来ます。
CTRL+ALT+F7キーでも出来ます。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: エラーがよくわかりません
返信数: 11
閲覧数: 4639

Re: エラーがよくわかりません

よく、この掲示板を見て思うのですが、コンパイルエラーやリンクエラーならエラーコードをちゃんと張りましょう。
エラーコード無しで分かるのはエスパー位です。

コード:

typedef struct{
	double x,y;
	int flag;
}SHOT_t;
SHOT_t PlayerShot[PLAYER_MAX_SHOT1][PLAYER_MAX_SHOT2];
がないか、コンパイル時のコンパイラの最適化の際に問題があった可能性があります。
上記のがグローバル空間に定義されているなら(extern.h だと思いますが)もう一度リビルドされてみてはどうでしょうか?
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: XAudioでのループ再生時のノイズについて
返信数: 4
閲覧数: 3487

Re: XAudioでのループ再生時のノイズについて

コードを乗せた方が分かりやすいと思うので void WaitEvent(){ //イベントハンドルの取得 call_backを包含し、ファンクタでイベントハンドルを取得出来るようにしてます。 HANDLE handle[2]={call_back(STREAM_END_EV),call_back(BUFFER_END_EV)}; //イベント用フラグ DWORD flag; while(loop==TRUE){ flag=WaitForMultipleObjects(2,handle,FALSE,loop_end_pos); if(flag==WAIT_OBJECT_0){ //ループ処理 L...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: XAudioでのループ再生時のノイズについて
返信数: 4
閲覧数: 3487

XAudioでのループ再生時のノイズについて

ストリーミング且つループ再生そのものは問題なく出来たのですが、プツッ、っといったノイズが混じります。 多分ハードウェア的な問題だろうかと思い調べてみたのですが、どうやらループ箇所の波形データの不規則な変化によるノイズじゃないかと思いました。 終端ループ位置→ノイズ→開始ループ→終端ループ位置→ノイズ→・・・・・ となっているので終端のループ位置の波形データと開始位置の波形データの大きな相違が原因ではと思うのですが、いかんせん音を鳴らす仕組みがハードウェアレベルで理解出来て居ないので良く分かりません。 どこかのスレッドにあったシーク前に source_voice->SetVolume(0.0f)...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: Direct系でのmp3ファイルの再生について
返信数: 13
閲覧数: 8177

Re: Direct系でのmp3ファイルの再生について

ISLe さんが書きました:XAudioの話をするなら新しくスレを立てたほうが良い気がします。
分かりました!
では、取敢えずこっちは解決ということで。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: Direct系でのmp3ファイルの再生について
返信数: 13
閲覧数: 8177

Re: Direct系でのmp3ファイルの再生について

一通り目を通しました。(音鳴らしたり、全体ループ位はしました。それと両方供のMSDNまちがってましたね。xaudio2.lib無くてXAPOBase.libでした、ファイルが無いのかと思って検索掛けても見つからず、しぶしぶ検索したらインターネットで違うわかり、結局2時間無駄にしましたよ。) で、違うところと言うと、一時停止しか存在しない。(停止で最初に戻らない。) これはフラッシュして、再セットで出来るとおもいますが。 問題はDirectSoundにあったイベントやSetCurrentPositionとかが無いと思うのですが、シークそのもの操作が出来無いのでしょうか?たぶんcall_backが...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: Direct系でのmp3ファイルの再生について
返信数: 13
閲覧数: 8177

Re: Direct系でのmp3ファイルの再生について

DirectShowはDirectX SDKにあったものがWindows SDKに移りましたからSDKのバージョンによってはサンプルが見付からないかもしれないですね。 最新のWindows SDK 8.0に至ってはDirectX SDKが統合されましたし、ドキュメントもサンプルも同梱されなくなりました。 MSDNライブラリのサイトを見ろということなんですが、日本語サイトは追い付いてないので英語サイト見るしかないですし。 なる程そうでしたか。 でも、英語の場合探し方が分からないんですよね。 streaming bufferで検索すると何故かストリームデータフォーマットが出てくるしorz なんか...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: Direct系でのmp3ファイルの再生について
返信数: 13
閲覧数: 8177

Re: Direct系でのmp3ファイルの再生について

libogg,libvorbisを使うのはダメなんですか? DirectShowフィルタ使えばコーデックを変更しても再生処理のコードを変更しなくても済みますが。 libogg,libvorbisでPCMへの変換なら分かるんですが、DirectShowは拙いのでさっぱりです。 取り敢えず、色々弄ってみます。 この手の処理は、SDKのサンプルコードからコピペして自分の使いやすいようにインターフェース組む作業を一回やれば終いですよ。 サンプルコードなんですがサウンドのだけすっぽり抜けてて、多分インストールの際のミスか、操作を過って別のフォルダに移ってるかだと思います(汗)。 なので、サイトを参考に...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: Direct系でのmp3ファイルの再生について
返信数: 13
閲覧数: 8177

Re: Direct系でのmp3ファイルの再生について

DirectShowはオンメモリでも再生できますけど。 そうなんですか。有難うございます。 やり方さっぱり分かりませんがDirectShowは覚えなくてはならないことが山ほどありそうなのでまた後ほど質問させて頂くかもしれません。 製品(?)、パッケージ(?)、どういう表現をしたら良いかわかりませんが、ゲームならゲームとして遊べるように配布するひとまとまりを5000個までということです。 "MP3 ライセンス"で検索すれば日本語で解説されたサイトが見付かりますよ。 そこには5000コピーと書いてありますが。 なるほど。作品5000コピー分というわけですね! 有難うございます。 調べてみたところ...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: Direct系でのmp3ファイルの再生について
返信数: 13
閲覧数: 8177

Re: Direct系でのmp3ファイルの再生について

わたしの個人的な認識では、DirectSoundは即時性が要求される場合(ゲームの効果音など)、DirectShowはそうでもない場合(音楽プレイヤーなど)に使うという感じです。 MP3かどうかではなく使用目的で決めます。 ゲームなどMP3のデータを含むアプリケーションソフトを制作する場合、既存のライセンス済みライブラリを使用する場合でも、ライセンスを要求されます。 フリーソフトの場合は5000セットまではライセンス料が免除されます。 非営利目的の場合なので、フリーの体験版などは含まれないと思われます(未確認)。 就活が営利目的とみなされるかどうかは分からないのでライセンサーと相談するのが良...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: Direct系でのmp3ファイルの再生について
返信数: 13
閲覧数: 8177

Direct系でのmp3ファイルの再生について

mp3を扱いたい場合、DirectSoundで扱う場合とDirectShowで扱う場合どちらが良いのでしょう?
DirectShowを使わない場合(ACMライブラリ辺りを使って変換してやるという方法位しか分からないのですが)、自作での変換のプログラムに権利関係の問題が絡んでくるとか聞きました。就活用の作品的なプログラムなのですが、そこら辺ってどうなるんでしょうか?
もしくはエンコードのみをDirectShowでコンバートしてそのデータをDirectSoundに流すという方式の方が良いのでしょうか?
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXのビルボードについて
返信数: 36
閲覧数: 15726

Re: DirectXのビルボードについて

アルファテストするだけでいいような気がしますけどどうでしょう。 (何かテクスチャにフィルタリングかけてる場合は難しいですけど・・・) ああ、そうか、すみません、有難うございます。 見直してみたらD3DCMP_NOTEQUALじゃなくてD3DCMP_GREATER使ってました。 そういえば、フィルタリング掛けるとまずいことがあるんでしょうか? あまり、凄いの使ったこと無いので分かりません。 シャギを消すミップマップのフィルタリングくらいしかないので。 Zバッファを使わないようにすると今度は二つのポリゴンが十字に重なった時に問題がでてきますよ。 あ、そうか、メッシュとか共存できませんね。 斜めの...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXのビルボードについて
返信数: 36
閲覧数: 15726

Re: DirectXのビルボードについて

あー、すっかり忘れてた問題がありました! Zバッファリング有効にするので、一括描画も分割しなくてはなりませんでした。 例えば二つのテクスチャ貼り付けのポリゴンの場合 ポリゴン1のZ値(射影前) 0.0f;(手前) ポリゴン2 1.0f;(奥) だとして、テクスチャに透過情報が存在する場合 ポリゴン1を先に描画した場合Zバッファリングによってテクスチャの上下に付いては問題はありませんが 透過情報もちのポリゴンは深度テストを飛ばされるのか、ポリゴン2の透過が上手く反映されません。 つまり ポリ1(手前) [ 0 ][0xff] [0xff][0xff] ポリ2(奥) [0xff][0xff] [0...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXのビルボードについて
返信数: 36
閲覧数: 15726

Re: DirectXのビルボードについて

「オブジェクトを生成」とは一時オブジェクトのことですかね。 一時オブジェクトが生成されるのはそれが必要なときだけだと思いますが。 全部ヘッダで定義しているので基本的にインライン展開されます。 最適化ありでコンパイルすればたいていほとんどただの整数型の演算だけが残ると思います。 一時オブジェクトです。 あー、そうかヘッダでしたね。 インライン展開されれば、無駄なコピー等は殆どなくなりますよね。 整数部と小数部に共用体使ってアクセスするのはふつうのことだと思ってましたけど。 自分は、実装の仕方だけ見て組んだので、普通とはかけ離れていると思います。 (見本コード無かったし、其処まで深く勉強していな...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXのビルボードについて
返信数: 36
閲覧数: 15726

Re: DirectXのビルボードについて

そういえば四角の1,2ってクリックできたんですね。 気がつかなかった。 角度については純粋な整数にしてますけどね。 ソースを見させていただきました。 固定小数点を整数型で表すのは作ったことあるんですが、これってそれの応用どころの話じゃないですね。凄い目から鱗なんですが!! なるほど、共用体を使っての分割ですか、凄いですね。 自分じゃ絶対こんなの思いつきませんよ。 それと、一寸気になったのはfixedmath13.cの SIN_TABLE_LENGTH ((1<<13)/4) 1<<11 で良いと思うのですが。 同様にfixedmath1312.cも 1<<10 のように出来ますよね。 何でわざ...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列
返信数: 11
閲覧数: 4114

Re: 構造体配列

softya(ソフト屋) さんが書きました: これも誤解を招くので、
グローバル領域に保持 → staticを付けてファイルスコープで保持
動的確保 → staticを付けたポインタで保持だと思うので動的であるか無いかは関係無さそうです。
じゃないでしょうか?
訂正有難うございます!!
やはりまだまだ勉強しなくてはいけませんね。
設計に付いてもしっかりと勉強する必要がありそうです。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列
返信数: 11
閲覧数: 4114

Re: 構造体配列

>>へにっくすさん
確かに出来ます。
わざわざ訂正有難うございます。
が、ゲームのように頻繁に必要になるので何度も関数を呼ぶ場合、速度に影響が出てくるかと思われますので前述の方が良いかなと思いました。
と言うよりこの場合staticで関数内に保持する時点で間違ってると思いますが。
外部からのアクセスを考慮する場合グローバル領域に保持か、動的確保かの方が一般的になるとおもいますし(何らかの理由で隠蔽したい場合は別ですが、そんな事普通は無いような)。
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列
返信数: 11
閲覧数: 4114

Re: 構造体配列

補足です。 自分の上の奴と、softyaさんのを見れば答えは分かると思います。 ポインタを学習していないと訳が分からないと思うので、その場合は流し読み程度で。 それと 赤鬼 さんが書いているstaticは変数に使うと関数外に変数を書いてもファイル内にスコープが限定されるのでextern参照時は使ってはいけません。 ※ 誤解されそうなので補足させていただきました。 補足感謝します、softyaさんの仰るとおりstaticの場合スコープが限定されます。 ですからポインタ経由で扱う必要があります。 この場合externでは参照できません。 変わりにポインタを取得する必要があります。 //mon_da...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体配列
返信数: 11
閲覧数: 4114

Re: 構造体配列

//mon_dat.h #ifndef MON_DEF_H #define MON_DEF_H typedef struct { int num; //効果を呼び出すときのナンバー char numb[4]; //図鑑などで表示するときのナンバー char name[20]; //名前 int atr; //属性 int cost; //コスト int pow; //攻撃力 int life; //体力 }Mon_t; extern Mon_t mon[40]; #endif //mon_dat.cpp #include "../h/mon_dat.h" void mod_dat() { M...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXのビルボードについて
返信数: 36
閲覧数: 15726

Re: DirectXのビルボードについて

浮動小数点数をまったく使わない三角関数の話です。 例えば、わたしが ブログ で公開しているようなものとか。 固定少数点ですね。 ただ、整数といわれてもぱっと浮かんで来ませんでした。 経験不足ですね。すみません。 わたしと赤鬼さんとは、基本的な部分で、前提から大きく異なっている気がします。 単純に私の知識と経験量の差から来る勘が足りないだけだと思います。 つまり、自分の勉強不足です。申し訳ありません。 『Game Programming Gems』に載っているようなキャストを使わず直接内部表現を書き換える変換(環境依存ですが)を使えばけっして小さくはないキャストのコストを減らすことができます。...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXのビルボードについて
返信数: 36
閲覧数: 15726

Re: DirectXのビルボードについて

どんなテーブルを使ったのか分からないですが。 ビルボードの回転・拡大縮小のような演出レベルなら精度が低くても構わないと思うので、整数型を使って処理すれば速くできるんじゃないですか? 単純に三角関数のテーブルですcosのみの(分割数は1000です。速度に関しては分割数は殆ど関係ありません10000でも1000でも顕著な違いはありませんでした。分岐数は変わりませんから当然ですね。)。 整数型と言うのは回転済みの頂点を確保したテーブルの話ですか? (一般的に整数型の方が速いって言われてますが基本的に処理系依存ですよね。 PCだと整数型のほうが速いのでしょうか。 更に言うならCPUでの小数点の計算の...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXのビルボードについて
返信数: 36
閲覧数: 15726

Re: DirectXのビルボードについて

テーブル参照は回転や拡大縮小の計算を軽くするという話です。 もし分からなければ無視してください。詳細説明するとたいへん長くなるので。 “三角関数テーブル”とかで検索すると良いかもしれません。 えっと? 前の書き込みで三角関数テーブルを使った場合で計測したと思うんですけど。 しかし、アルゴリズムが駄目だったので修正しました。 変換の際に一々呼んでいたのを修正して (sin,cos変数を用意すれば2回で出来る、関数呼び出し回数が非常にネックになるので。) 計測してみたところ、行列を自前で変換する場合と大差ありませんでした。 三角関数テーブルを用意してやるのも、行列を変換するのも速度的には同じなよ...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXのビルボードについて
返信数: 36
閲覧数: 15726

Re: DirectXのビルボードについて

30本分しか確保できなくても、50は30と20に分けて、40は30と10に分ければ描画できます。 流石にそれくらいは分かります。 しかし、よく見てみると自分が書いた内容がおかしかったですね。 すみません。 余分に確保して、テーブルを保持しておくって言う話なのに違うごと書いてました、すみません。 ちょっと勘違いして書いていたみたいです。 改めて、これに付いてお尋ねします↓ ビルボードはワールド行列をポリゴンごとに指定する必要ないと思いますが。 頂点バッファは、頂点情報構造体の大きさと頂点の数ぴったりにその都度確保する必要なく、あらかじめまとめてメモリ領域を確保しておいて、ポインタで間接参照すれ...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXのビルボードについて
返信数: 36
閲覧数: 15726

Re: DirectXのビルボードについて

貴重なご意見感謝です。 それと、返答が遅れてしまいすみません。 恥ずかしながら虫垂炎で入院していたもので。 ビルボードはワールド行列をポリゴンごとに指定する必要ないと思いますが。 頂点バッファは、頂点情報構造体の大きさと頂点の数ぴったりにその都度確保する必要なく、あらかじめまとめてメモリ領域を確保しておいて、ポインタで間接参照すれば良いと思います。 ゲーム用途での回転や拡大縮小程度はCPU側でもテーブル参照で軽くできると思います。 んーと、つまり、 テクスチャ毎にバッファを一つ保持、シーンごとにバッファを作り直すって事ですか? 一番最初に全部のバッファを作るんじゃメモリの大量消費ですし。 例え...
by 赤鬼
11年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXのビルボードについて
返信数: 36
閲覧数: 15726

Re: DirectXのビルボードについて

すみません。意味が分かりません。 非UP系は既存の頂点バッファを参照し、UP系はその都度頂点バッファを作成する、という違いしか無いのでは? すみません、今見てても伝えたい意味に取れないと思いました(日本人なのに日本語下手で本当にすみません)。 バッファなら、最初にローカル座標を決めて、その頂点バッファを参照して、指定した行列を使ってGPUで座標計算をすると思いますが、 (バッファに保存する場合画像の一括描画は難しいと思います、一枚のポリゴンに一つのワールド行列を指定しなくてはならないので) UPで頂点情報を作成する場合、まずローカルの頂点座標を確保しないといけないと思います。 また、格納する...

詳細検索ページへ移動する