dgVoodooという、修正される見込みのない古い市販ゲームを動作させる目的のソフトがあります。
古いDirectX API呼び出しを、元のバイナリを書き換えることなく、現代の環境に対応させる仕組みのもので、お望みに叶うと思います。
検索結果 2636 件
- 3年前
- フォーラム: C言語何でも質問掲示板
- トピック: 画像処理について
- 返信数: 12
- 閲覧数: 10984
Re: 画像処理について
高速かつ自由度が高いのは、ピクセルシェーダーを使う方法です。
ブラウン管風の表現とか通信ノイズの表現とかシェーダープログラム次第でいろいろできます。
ブラウン管風の表現とか通信ノイズの表現とかシェーダープログラム次第でいろいろできます。
- 4年前
- フォーラム: C言語何でも質問掲示板
- トピック: DirectX Spriteサイズ変更
- 返信数: 1
- 閲覧数: 7900
Re: DirectX Spriteサイズ変更
"D3DXSprite"で検索すると具体的な使い方を解説したサイトが見付かるでしょう。
ex. http://marupeke296.com/DXG_No41_ID3DXSprite.html
サイズの変更には、ID3DXSprite::SetTransformを使います。
ex. http://marupeke296.com/DXG_No41_ID3DXSprite.html
サイズの変更には、ID3DXSprite::SetTransformを使います。
- 4年前
- フォーラム: C言語何でも質問掲示板
- トピック: DirectX9にて画像の表示が乱れます
- 返信数: 1
- 閲覧数: 7896
Re: DirectX9にて画像の表示が乱れます
テクスチャは、多くの場合、最適化のために、2のべき乗サイズで作成されます。
スプライトに与える、テクスチャのサイズのパラメータを、画像ファイル上のサイズに決め打ちせず、テクスチャのハンドルから実際に作成されたサイズを取得して与えるようにすると良いでしょう。
スプライトに与える、テクスチャのサイズのパラメータを、画像ファイル上のサイズに決め打ちせず、テクスチャのハンドルから実際に作成されたサイズを取得して与えるようにすると良いでしょう。
- 4年前
- フォーラム: C言語何でも質問掲示板
- トピック: 龍神録プログラミング2のFPS計測について
- 返信数: 8
- 閲覧数: 13096
Re: 龍神録プログラミング2のFPS計測について
SetDrawScreen(DX_SCREEN_BACK);
をDxLib_Init関数を呼び出した後に移動すれば良いのではないかと思います。
をDxLib_Init関数を呼び出した後に移動すれば良いのではないかと思います。
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列へのポインタ (*a)[10] について
- 返信数: 52
- 閲覧数: 87418
Re: 配列へのポインタ (*a)[10] について
Direct3DのCreateDeviceとか具体例に思い当たらなかったら突っかかってこないでほしいなあ。 Direct3Dは、マイナーなハードのアセンブラよりの内容だったかあ。 深く考えずに入門書のコードをコピペしてた人が、コピペをやめると途端にやらかすのを、けっこう見掛けるんですけどねえ。 江戸時代の手紙は、飛脚という職業の人が徒歩や馬で運んだらしいですよ。 なんで、自動車や電車を使わなかったんでしょうね。 C言語の最適化が大きなブームになっていたのは、わたしが20代のころでしたね。 DOSエクステンダで、コンパイラが潤沢なメモリを使えるようになったころからです。 当時、Cコンパイラは有...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列へのポインタ (*a)[10] について
- 返信数: 52
- 閲覧数: 87418
Re: 配列へのポインタ (*a)[10] について
ポインタは、慣れるまで難しいのは事実で、ポインタをある程度扱うようになった、あるいは扱わざるを得なくなったヒトがハマるパターンも。 デバイスを扱うライブラリの初期化関数に、ダブルポインタで、デバイスを定義した構造体へのポインタを取得する、みたいなのがよくある。 そういうライブラリを初めて使うようなヒトが、ダブルポインタで宣言した変数を実引数としてしまうミスをしがち。 正しくは、シングルポインタで宣言した変数に、アドレス演算子付けたのを実引数にする。 深く考えず*や&を付けてしまう第一の壁。 *や&を付ける必要性に悩む第二の壁。 そこに「ポインタはアドレスだ」というフレーズの影響力。 ここ の...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列へのポインタ (*a)[10] について
- 返信数: 52
- 閲覧数: 87418
Re: 配列へのポインタ (*a)[10] について
#9 にきしてある本ををお読みください 18刷まででたベストセラーであり 新版はC11 対応です #9の リンク先 にこうあります。 こういった混乱の原因は、「ポインタはアドレスだ」ということを理解していないところにあるのではありません。本当の理由は、 ・C の「奇怪な」宣言の構文 ・配列とポインタの間の「妙な」交換性 にあるのです。 #10の リンク先 にこうあります。 C言語では、「ポインタが難しい」と良く言われますが、 実際に初心者がCを学習する過程を見ると、以下のことだけは すぐに理解しているようです。 「ポインタっつーのは、要するにアドレスのことなんだな」 ここまでは簡単...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列へのポインタ (*a)[10] について
- 返信数: 52
- 閲覧数: 87418
Re: 配列へのポインタ (*a)[10] について
オフトピック
int a, b;
a = 1;
b = a + 1;
ここに出てくるaは全部意味が違うのにどうして同じ記号(記号なし表記)なの?教えて偉い人
その上で、C言語のポインタが宣言と演算子で同じ記号を使うことの何が問題なの?教えて偉い人
a = 1;
b = a + 1;
ここに出てくるaは全部意味が違うのにどうして同じ記号(記号なし表記)なの?教えて偉い人
その上で、C言語のポインタが宣言と演算子で同じ記号を使うことの何が問題なの?教えて偉い人
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列へのポインタ (*a)[10] について
- 返信数: 52
- 閲覧数: 87418
Re: 配列へのポインタ (*a)[10] について
本質的に違うもの、という意味では、値型と参照型を同列に扱うモダンな言語のほうが、よほど奇妙に感じますけどね。 値型と参照型を同列に扱うほうが、どうして受け入れられやすいのかは、ポインタが難解だと言われるのと同じ理由です。 (ただの)変数を深く理解しないままでも、コードを書ける、からコーディングが楽。 (ただの)変数を深く理解しないまま、コードを書いている、からポインタで壁にぶち当たる。 初心者は、 「変数の値は、コンピュータが適当に覚えていてくれて」 「変数が使われるときに、式が書き換えられる」 というふうに理解しがち。 バリエーションはありますが、共通ポイントはこの2点。 こういうふうに変...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列へのポインタ (*a)[10] について
- 返信数: 52
- 閲覧数: 87418
Re: 配列へのポインタ (*a)[10] について
Cの文法は、意味に一貫性を持たせているのではなくて、表記に一貫性を持たせている。 K&Rにも、記述や表現の一貫性というふうに、書いてある。 表記に一貫性を持たせれば、宣言するときと式の中で使うときとで意味が逆になるのは当然のことじゃあないのか。 例えばポインタを int >a; というふうに宣言して <a で間接参照するようにしたら分かりやすいか? そうは思わない。 うっかり>aと書いた場合どうしたらいい? むしろうっかりミスの機会が増える。 宣言では>しか使わないし、間接参照では<しか使わない。 だったら同じ記号でいいじゃないか。 逆に書いてしまうミスも防げる。 アセンブラだとアドレスが1...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: Win32APIにてユニークポインタを用いた際にWM_PAINT内部でプログラムがが止まる
- 返信数: 6
- 閲覧数: 15473
Re: Win32APIにてユニークポインタを用いた際にWM_PAINT内部でプログラムがが止まる
WM_PAINTに直接書くかどうかだけで動作速度が大きく変わることはないはずです。 メソッドで描画を行うようにした際、WM_PAINT内に直接かいたのと比べて欠落したり変化している処理はありませんか? 例えば、Chapter1クラスに、PAINTSTRUCT型のpsメンバがありますが、使われている様子がありません。 BeginPaintとEndPaintを適切に呼ばないと、無効領域がクリアされません。 無効領域がクリアされるまで、WM_PAINTはひっきりなしに繰り返し呼び出されます。 おそらく、system.cppの fps_handler->Fps_Handle_Control(main_...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: DirectXの定数バッファについて
- 返信数: 4
- 閲覧数: 14247
Re: DirectXの定数バッファについて
Direct3D 11では、並列処理を行うためにDeferred Contextという仕組みが導入されました。 Deferred Contextに対して、並列処理をしないImmediate Contextがあります。 デフォルトのコンテキストはImmediate Contextで、必要に応じてDeferred Contextを複数作成し、最後にまとめてImmediate Contextに投げる形になります。 Deferred Contextはステートを引き継がないので、VSSetConstantBuffersやGSSetConstantBuffersメソッドなど毎回呼ぶ必要があります。 速度を...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: Win32APIにてユニークポインタを用いた際にWM_PAINT内部でプログラムがが止まる
- 返信数: 6
- 閲覧数: 15473
Re: Win32APIにてユニークポインタを用いた際にWM_PAINT内部でプログラムがが止まる
System::init_windowやSystem::runを呼び出す箇所のソースがないので想像になりますが… CreateWindowExの引数からWS_VISIBLEを取り除くと良いかもしれません。 メッセージループの直前でポインタをセットしてますけど、WS_VISIBLEがあると速攻で描画されます。 それがWM_PAINT内部でnullptrの例外が発生する原因だと思います。 あるいは、 if (process_current_level) process_current_level->render(); というふうにして、ポインタを所有しているときだけ呼び出すのが良いでしょう。 実行...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: DirectXの定数バッファについて
- 返信数: 4
- 閲覧数: 14247
Re: DirectXの定数バッファについて
定数バッファを設定するのは、VSSetConstantBuffersやGSSetConstantBuffersメソッドなのではないでしょうか?
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 座標変換した場所からブラーを出したい
- 返信数: 6
- 閲覧数: 17680
Re: 座標変換した場所からブラーを出したい
vanitas710さんのご希望はあくまで、ポストエフェクトのみでってことなのですね。
となると、消失点のスクリーン座標を求めて、ピクセルシェーダーにパラメータとして渡すという形になりますかね。
わたしの提案はひとまず忘れてください。
ワールド座標からスクリーン座標を求める方法は、マウスで画面をクリックして3Dオブジェクトを選択する処理など頻繁に使われるので、『ワールド座標からスクリーン座標を求める方法』等で検索すればすぐに見付かるはずです。
シェーダーにパラメータを渡す方法も『シェーダーにパラメータを渡す方法』で検索すればすぐに見付かるはずです。
となると、消失点のスクリーン座標を求めて、ピクセルシェーダーにパラメータとして渡すという形になりますかね。
わたしの提案はひとまず忘れてください。
ワールド座標からスクリーン座標を求める方法は、マウスで画面をクリックして3Dオブジェクトを選択する処理など頻繁に使われるので、『ワールド座標からスクリーン座標を求める方法』等で検索すればすぐに見付かるはずです。
シェーダーにパラメータを渡す方法も『シェーダーにパラメータを渡す方法』で検索すればすぐに見付かるはずです。
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 座標変換した場所からブラーを出したい
- 返信数: 6
- 閲覧数: 17680
Re: 座標変換した場所からブラーを出したい
#3を見直して気付いたのですが、vanitas710さんは、いまやろうとしていることと、モーションブラーは全く関係ないと思ってます?
#2で紹介した記事にある、いわゆるモーションブラーは、移動前後の頂点を補完する形でベロシティマップを生成しますが、vanitas710さんがいまやろうとしていることは、消失点から放射状に広がる形で補完する点が異なる以外は、ほぼモーションブラーと同じ処理になりますよ。
で、消失点の座標さえあれば、そこからの相対座標でブラーの強度を計算できるので、ダミーの頂点一個で足りるというふうに書きました。
#2で紹介した記事にある、いわゆるモーションブラーは、移動前後の頂点を補完する形でベロシティマップを生成しますが、vanitas710さんがいまやろうとしていることは、消失点から放射状に広がる形で補完する点が異なる以外は、ほぼモーションブラーと同じ処理になりますよ。
で、消失点の座標さえあれば、そこからの相対座標でブラーの強度を計算できるので、ダミーの頂点一個で足りるというふうに書きました。
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 座標変換した場所からブラーを出したい
- 返信数: 6
- 閲覧数: 17680
Re: 座標変換した場所からブラーを出したい
ああ、なるほど。 マンガの集中線みたいな感じで、ブラーの中心を任意のオブジェクトにしたいってことですかね。 でしたら、複雑なオブジェクトを対象にするのではなくて、ダミーの頂点一個を対象にするとしたほうが単純化できます。 で、オブジェクトAの中心とダミー頂点の座標を合わせれば、お望みの効果が得られるというわけです。 #ダミー頂点の座標をズラして応用もできる。 変換後のスクリーン座標は、シェーダーの中で取得できるので、わざわざ自前で計算する必要がありません。 せっかくメインCPUを使わず高速に計算してくれた結果を使わないのはもったいない。 #ベロシティマップとか作成する際にも使われている。 普通に...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++フォントを扱う方法
- 返信数: 9
- 閲覧数: 11673
Re: C++フォントを扱う方法
DXライブラリでは、同時に作成できるハンドルの最大数が固定なので、足りなくなるときは足りなくなりますよね。 あと、CreateFontToHandleで作成したフォントハンドルごとに描画キャッシュ用のテクスチャが作成されるので、ビデオメモリの容量が不足することも懸念されます。 フォントを描画するときにビットマップレベルで拡大縮小できる仕組みがDXライブラリにあれば、ある程度大きめに作っておいたフォントをいろんなサイズに使い回すことができるのですが、残念ながらありません。 低スぺ環境しかないユーザーを切り捨てるのは簡単ですが、せっかくならできる限り多くのユーザーに楽しんでもらいたいと個人的には思...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 座標変換した場所からブラーを出したい
- 返信数: 6
- 閲覧数: 17680
Re: 座標変換した場所からブラーを出したい
3Dグラフィックス・マニアックス(34) ジオメトリシェーダ(5)~ジオメトリシェーダを活用した新表現(1)
3Dグラフィックス・マニアックス(34) ジオメトリシェーダ(6)~ジオメトリシェーダを活用した新表現(2)
3Dグラフィックス・マニアックス(34) ジオメトリシェーダ(7)~ジオメトリシェーダを活用した新表現(3)
ブラーの実装について書かれた解説記事(実装サンプルではない)です。
記事は古いですが、書いてある内容自体は古くないです。
実装サンプルは、記事に書かれたキーワード(ジオメトリシェーダとかベロシティマップとか)を参考に探してみてください。
3Dグラフィックス・マニアックス(34) ジオメトリシェーダ(6)~ジオメトリシェーダを活用した新表現(2)
3Dグラフィックス・マニアックス(34) ジオメトリシェーダ(7)~ジオメトリシェーダを活用した新表現(3)
ブラーの実装について書かれた解説記事(実装サンプルではない)です。
記事は古いですが、書いてある内容自体は古くないです。
実装サンプルは、記事に書かれたキーワード(ジオメトリシェーダとかベロシティマップとか)を参考に探してみてください。
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: javaでPC向けシューティングを作りたいが・・・
- 返信数: 7
- 閲覧数: 11866
Re: javaでPC向けシューティングを作りたいが・・・
ガラケー時代を中心に、80~90年代アーケードゲームの移植を生業としていた者からすると、「やはりJavaでは向いてない」と切り捨てられるのは悲しいものがありますな。
ちなみにわたしは、C/C++で作ったものの移植という形でJavaを覚えました。
学習に要した時間は4時間ほどです。
2Dゲームなら、AWTでイメージ描画、サウンド再生、この2つが分かれば十分ですね。
参考にするならこことかどうでしょう。
Javaでゲーム作りますが何か?
ちなみにわたしは、C/C++で作ったものの移植という形でJavaを覚えました。
学習に要した時間は4時間ほどです。
2Dゲームなら、AWTでイメージ描画、サウンド再生、この2つが分かれば十分ですね。
参考にするならこことかどうでしょう。
Javaでゲーム作りますが何か?
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: アナログデータのリアルタイム描画
- 返信数: 38
- 閲覧数: 39904
Re: アナログデータのリアルタイム描画
Windows 7と Windows 10ではデスクトップの描画の仕組みが違います。 新しいOSほど最適化が進んで自動的に無駄が省かれるようになっていきます。 1000サンプリングを10回に1回描画というと100Hz(fps)なので、モニタの周波数が60Hzであれば、モニタに映らないフレームがあります。 内部的な描画は行われますが、Windows 10は、映らないフレームをデスクトップに反映することをしません。 もしかしたら、それが描画速度の差に表れているのかもしれません。 周波数が144Hzあるようなモニタであれば、Windows 7と Windows 10で同様の動作になるかもしれません...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: アナログデータのリアルタイム描画
- 返信数: 38
- 閲覧数: 39904
Re: アナログデータのリアルタイム描画
わたしなら ・データ受信処理は、データの受信だけして描画に必要なデータを溜めておく ・描画処理は、タイマーイベントで定期的に呼び出し、(タイマーの間隔は信用できないので)実際の経過時間を取得して描画範囲を求め、描画 というふうにします。 描画に時間が掛かれば、1回あたりの描画範囲が広がるわけです。 ウィンドウズはリアルタイムOSではないので、常に一定の間隔とか、ちょうどぴったりとかはできません。 できるだけ近づけることはできます。 デスクトップを操作したりとか、バックグラウンドで何か処理が動いたりとかで、プログラムの動作にかかる負荷が変わることがあります。 タイミングは実行中も常に変動するもの...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: アナログデータのリアルタイム描画
- 返信数: 38
- 閲覧数: 39904
Re: アナログデータのリアルタイム描画
オフトピック
わたしの得意分野かと思ったのですが、回答するのが憚られる流れですな。
最近ここに来るの不定期だし、Builder使ったことないので具体的な回答はできそうにないし。
最近ここに来るの不定期だし、Builder使ったことないので具体的な回答はできそうにないし。
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲーム開発に日常的に使っているものは何ですか?
- 返信数: 35
- 閲覧数: 46296
Re: ゲーム開発に日常的に使っているものは何ですか?
現場がUnityを使うのは、マルチプラットフォーム対応やチームでの作業にかかる開発や学習のコスト削減、さらにプラットフォーム側のアップグレード対応の保守にかかるコストの削減など、開発費の大幅な削減を期待できることがいちばんの理由ですね。 Unityにだってバグはあります。 低レイヤに詳しければ、アプリ開発しててバグに遭遇したとき、問題がアプリ側にあるのか、Unity側なのか、あるいは相性的なものなのか、判断できます。 低レイヤに詳しいと、証拠をそろえて改善方法を提案することも可能で、迅速な対応を期待できます。 単にUnity使ってゲームを作れますっていうだけだと、現場では一生下っ端で働きます...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: VisualStudioの補完機能について
- 返信数: 2
- 閲覧数: 8928
Re: VisualStudioの補完機能について
「コードスニペット」で検索
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 2Dの衝突判定がキッチリと出来ない、、
- 返信数: 24
- 閲覧数: 28816
Re: 2Dの衝突判定がキッチリと出来ない、、
ズレるとめり込むといった現象は、当たり判定に複雑な前提条件を持ち込んだ末の条件漏れが原因で発生することがあります。 質問と一緒に提示されたコードからはそのようなニオイを感じます。 ループではキャラの周辺状況を取得するだけにして、あとから座標の補正をするようにすると、漏れにくくなります。 2D横スクロールアクションゲームの壁判定についての質問 RECT型を使ってのめり込み防止の実装について。 #ブロックひとつひとつに対して逐次補正する方法もあります。 #前者はスーパーマリオっぽく、後者はロックマンっぽい動きになります。 ループを回す範囲については、うちのブログの記事ですが… 【JavaSE】フ...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: DirectX9 デバイス消失の処理について
- 返信数: 3
- 閲覧数: 9797
Re: DirectX9 デバイス消失の処理について
ソースコードがないのでまったくの想像ですが、スレッドコンテキストが一致していないとか。
例えば、メッセージループを回しているところと、ウィンドウプロシージャの中はコンテキストが異なるので、デバイスの作成がメッセージループを回しているところにあって、ウィンドウプロシージャの中でResetを呼び出しているような場合、機能しません。
入門者向けの解説とかで、ウィンドウプロシージャの中でいろいろやってるものがありますけど、ある程度大きなプログラムになると確実にハマるので注意が必要です。
例えば、メッセージループを回しているところと、ウィンドウプロシージャの中はコンテキストが異なるので、デバイスの作成がメッセージループを回しているところにあって、ウィンドウプロシージャの中でResetを呼び出しているような場合、機能しません。
入門者向けの解説とかで、ウィンドウプロシージャの中でいろいろやってるものがありますけど、ある程度大きなプログラムになると確実にハマるので注意が必要です。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: コンソール上書き
- 返信数: 4
- 閲覧数: 9811
Re: コンソール上書き
Win32コンソールAPIというものを使うとコンソール上のテキストの読み書きやカーソルの操作ができます。
が、個人的にはncursesライブラリを使うことをお勧めします。
ncursesライブラリはLinux由来ですが、Windows用のものもあって、マルチプラットフォームに対応します。
ncursesライブラリを使ったプログラム例
http://isle.cocolog-nifty.com/blog/curses/index.html
が、個人的にはncursesライブラリを使うことをお勧めします。
ncursesライブラリはLinux由来ですが、Windows用のものもあって、マルチプラットフォームに対応します。
ncursesライブラリを使ったプログラム例
http://isle.cocolog-nifty.com/blog/curses/index.html
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: java すいません Hello world
- 返信数: 4
- 閲覧数: 12305
Re: java すいません Hello world
Javaは最近、セキュリティ上の問題から、カレントディレクトリのclassを無条件でロードしないようになりました。
正確には、デフォルトのクラスパスに.(カレントディレクトリ)を含まない仕様に変更されました。
カレントディレクトリにあるclassファイルをロードしたい場合、-cpオプションでクラスパスを明示してください。
java -cp . Hello
正確には、デフォルトのクラスパスに.(カレントディレクトリ)を含まない仕様に変更されました。
カレントディレクトリにあるclassファイルをロードしたい場合、-cpオプションでクラスパスを明示してください。
java -cp . Hello
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: glutで作ったソフトをwin10で実行した際に異常終了する問題を解決したい
- 返信数: 5
- 閲覧数: 14718
Re: glutで作ったソフトをwin10で実行した際に異常終了する問題を解決したい
ただ、個人的にglut関連のファイル(glut32.libとglut.h)をいじってたりしてはいないので、環境の違いは生じないように思います。 glutは、Visual Studio(あるいはWindows SDK)に含まれないので、そもそも環境に依存するものだと思います。 開発環境を更新したのに、(追加の)ライブラリを更新していないのであれば、不具合の原因はライブラリの互換性にあるのではないでしょうか。 #3に投稿されたコードにはglut関数が使用されていません。 OpenGL(gl)、glu、glut、wglの区別はできていますか。 こちらの環境では、wglDeleteContextを有...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: glutで作ったソフトをwin10で実行した際に異常終了する問題を解決したい
- 返信数: 5
- 閲覧数: 14718
Re: glutで作ったソフトをwin10で実行した際に異常終了する問題を解決したい
こちらの環境では件のコードはウィンドウが表示されることなく終了しますが、glutDisplayFuncで描画関数をセットすると正常に動作しました。 #include <GL/glut.h> void display(void) { } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutCreateWindow("test"); glutDisplayFunc(display); glutMainLoop();...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxlibのFPSとリフレッシュレートについて
- 返信数: 5
- 閲覧数: 18323
Re: DxlibのFPSとリフレッシュレートについて
フルスクリーンモードでもカクつきますか? ウィンドウモードではWaitVSyncFlagをFALSEに設定しても、VSYNC同期が強制されます。 デスクトップがクラシックテーマであれば有効なのですが、Windows10ではクラシックテーマが廃止されました。 館のコードは、時間が余ったらウェイトを入れるだけで、時間が足らなかったとき(いわゆるコマ落ち)が考慮されていません。 リフレッシュレート60Hzで40FPSなら、コマ落ちするはずないじゃないかと思われるでしょう。 ところが、60分割のタイミングと40分割のタイミングを重ねてみると、待ち時間はバラバラになり、余裕がないときはコマ落ちが発生しま...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: キャラクター同士の衝突判定について
- 返信数: 3
- 閲覧数: 13140
Re: キャラクター同士の衝突判定について
率直に言って、条件が複雑すぎてコードを読む気になりません。
とりあえず、キャラ本体と、攻撃判定の矩形を分離すると、ずっとシンプルなコードになると思います。
まず当たり判定を行い、その結果をもって、条件分けすることで、さらにシンプルになると思います。
・攻撃判定内にキャラがいたら
※当たり判定自体はキャラ同士と同じようにできる
→攻撃してなかったら攻撃の開始処理
→攻撃している最中ならダメージ処理
といった具合に。
とりあえず、キャラ本体と、攻撃判定の矩形を分離すると、ずっとシンプルなコードになると思います。
まず当たり判定を行い、その結果をもって、条件分けすることで、さらにシンプルになると思います。
・攻撃判定内にキャラがいたら
※当たり判定自体はキャラ同士と同じようにできる
→攻撃してなかったら攻撃の開始処理
→攻撃している最中ならダメージ処理
といった具合に。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxlibのFPSとリフレッシュレートについて
- 返信数: 5
- 閲覧数: 18323
Re: DxlibのFPSとリフレッシュレートについて
リフレッシュレートが60Hzのとき、60を超える値をFPSに設定しても、実際のFPSは60で頭打ちになりません?
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: プログラミング初学者の基礎的疑問
- 返信数: 11
- 閲覧数: 21915
Re: プログラミング初学者の基礎的疑問
いまはインターネットを使って膨大な情報にリーチ可能です。 「知っている」ことと「できる」ことは乖離が進み、「知っているけどできない」ことはどんどん増えていくでしょう。 でも「知っている」ことは強みです。 それだけで、いまはできなくても将来の備えになります。 とは言え、やみくもに膨大な情報に触れるだけで良し悪しを判断できなければ選択できません。 >機能すればそれでいいって感じでも最初のころはいいのでしょうか? 学ぶ上では、むしろ効率の悪いコードに触れることは貴重な体験となるでしょう。 >こちらの1~定数jまでの数値をかぶらないように配列に格納して表示するプログラム…なんかどことなく効率が悪いよう...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: プログラミング初学者の基礎的疑問
- 返信数: 11
- 閲覧数: 21915
Re: プログラミング初学者の基礎的疑問
かなり昔の話だけれど、ガラケー用のゲームで、20体程度のエネミーの群れから3体を選んで隊列を作るという処理があった。 iアプリ版では、3体すべて全体からランダムに選出していたが特に問題はなかったものを、そのまま別のケータイに移植したところ、ウォッチドックに引っ掛かって端末に強制リセットが掛かるという致命的な不具合が発生した。 たまたま知っていたから、すぐに原因を見つけて修正できたけれど、知らなかったらその機種でのリリースは延期や中止にもなりかねなかった。 今回の質問の内容は頻出で、こういう質問掲示板を巡回していればたびたび目にして、使う機会がなくてもなんとなく覚えてしまう。 質問があるときだ...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタ変数
- 返信数: 14
- 閲覧数: 34170
Re: ポインタ変数
>かずまさん ご指摘ありがとうございます。 宣言に現れる*単体の名称は存在しないわけですね。 脊髄反射的に騒ぎ出す人は、「アドレスを格納してないポインタ変数を 使って、ポインタの指している先のオブジェクトを参照しちゃいかん」と 言っているつもりなんでしょう。 int i, *p, **pp; という宣言があった時、 p = &i; や pp = &p; は何も問題ないが、 *p = i; や i = *p; という使い方をしちゃいかん、 と言っているのでしょう。 代入演算子= の左オペランドや、単項演算子& のオペランドは、 未初期化の一時変数であっても何も問題ありません。 そうですね。 どう...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタ変数
- 返信数: 14
- 閲覧数: 34170
Re: ポインタ変数
前言時の*はポインタ宣言子。変数名(直接宣言子)には含まれない。 int i, *p, **pp; iは、『int』という型の値を保持できる変数。 pは、『int』+『へのポインタ』という型の値を保持できる変数。 ppは、『int』+『へのポインタへのポインタ』という型の値を保持できる変数。 iを使って、intという型の値を『直接』やりとりできる。 pを使って、intへのポインタという型の値を『直接』やりとりできる。 ppを使って、intへのポインタへのポインタという型の値を『直接』やりとりできる。 これらが一時変数であった場合… 初期化されていないiを読み出そうとすると、未定義の動作となる...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタ変数
- 返信数: 14
- 閲覧数: 34170
Re: ポインタ変数
ただちょっと疑問がありまして、int型変数のアドレスもintに内包されるので 64ビット実行環境だとintが32ビットでアドレスが64ビットだったりすることがあります。 C/C++言語において、アドレスの表現は、コンパイラ側で勝手に決めていいということ以外は規定がありません。 あと、アドレスをprintfの%dで表示するということにおいては、PCがぶっ飛んでも不思議ではないことだというふうに定義されています。 まあ、たいていは、コンパイラなりOSなりが、PCがぶっ飛んだりするような大事には至らないように対処してくれます。OSが起動しなくなるくらいはたまにあることですが。 %pで表示するにして...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: [c++]自分自身のインスタンスを定数で持つ
- 返信数: 3
- 閲覧数: 14902
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: Vitual Studio 2017のUSBへのコピーについて
- 返信数: 2
- 閲覧数: 19319
Re: Vitual Studio 2017のUSBへのコピーについて
Visual Studio Installerを起動して、詳細→修復、と選択してみてください。
Visual Studioは、インストールの際、WindowsのOS機能を開発向けに書き換えたりしているので、外部メディアにコピーして持ち運びできるようにはなっていません。
OSの機能に関するファイルに勝手に触ると(下手するとWindowsごと)動かなくなります。
Visual Studioと比べたら機能的に劣りますが、USBメモリで持ち運ぶ用途にはVisual Studio Codeをお勧めします。
Visual Studio Codeはインストーラ版とポータブル版の両方が用意されています。
Visual Studioは、インストールの際、WindowsのOS機能を開発向けに書き換えたりしているので、外部メディアにコピーして持ち運びできるようにはなっていません。
OSの機能に関するファイルに勝手に触ると(下手するとWindowsごと)動かなくなります。
Visual Studioと比べたら機能的に劣りますが、USBメモリで持ち運ぶ用途にはVisual Studio Codeをお勧めします。
Visual Studio Codeはインストーラ版とポータブル版の両方が用意されています。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: Eclipseが起動しません
- 返信数: 2
- 閲覧数: 18222
Re: Eclipseが起動しません
「Eclipse 4.7 Oxygen 3a というall in one Eclipse」というのは、MergeDoc ProjectのPleiades All in One Eclipseのことでしょうか? その場合… 1. eclipse.exeのあるフォルダが、Pleiades All in One Eclipseでは、C:\pleiades\eclipseとなるはずであるが、C:\eclipseとなっている。 2. 4.7 Oxygen 3aをダウンロードしたとあるのに、メッセージの内容は4.3 Keplarである。 という不可解な情報が読み取れるのみです。 ダウンロードした「Ecli...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: Bluetoothとの通信について
- 返信数: 3
- 閲覧数: 15779
Re: Bluetoothとの通信について
CreateFileにCOM10以降(2桁以上)のポート番号を指定するときはファイル名の先頭に\\.\を付加する必要があります。
"COM25" を "\\\\.\\COM25" に変えてみてください。
"COM25" を "\\\\.\\COM25" に変えてみてください。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 2D横スクロールアクションゲームの壁判定についての質問
- 返信数: 6
- 閲覧数: 19282
Re: 2D横スクロールアクションゲームの壁判定についての質問
現状のコードに対するアドバイスではないのですが、下のコードはこの掲示板に以前投稿したものです。 結果としてrcResultの各メンバに上下左右それぞれめり込んだ量が入ります。 左右あるいは上下ともに値が入っているとき、合計がキャラの幅以下なら壁に挟まれていて、キャラの幅を超えていれば壁の中にいる状態です。 良かったら参考にしてみてください。 RECT rcMover = { /* 当たり判定するキャラの座標で初期化 */ }; RECT rc, rcResult; CopyRect(&rcResult, &rcMover); { // 当たり判定の対象の数だけ繰り返し // 四角いブロックの場...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: Win32APIのバッファリングについて
- 返信数: 3
- 閲覧数: 16137
Re: Win32APIのバッファリングについて
ボタンのちらつき対策にはウィンドウスタイルにWS_CLIPCHILDRENを加えてください。
ウィンドウズが勝手にボタンを避けて描画してくれるので高速描画でもへっちゃらです。
ウィンドウズが勝手にボタンを避けて描画してくれるので高速描画でもへっちゃらです。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: WICを使用した画像表示で、一定サイズ以上だとエラーとなる
- 返信数: 4
- 閲覧数: 18274
Re: WICを使用した画像表示で、一定サイズ以上だとエラーとなる
MSDNの方で回避策は教えてもらえなかったのでしょうか。 D2D1::RenderTargetProperties()が返すパラメータは、ハードウェアが使えるときはハードウェアを使い、ハードウェアが使えないときにソフトウェアを使う、という設定なので、これを、常にソフトウェアを使うように明示すれば、 サイズの制限に関しては 大幅に緩和できます。 こちらの環境(※)では、ソフトウェアを使うように明示することで、ID2D1RenderTarget::GetMaximumBitmapSize()の戻り値が、16384 → 8388608 に変化しました。 ※Windows 10 bit、6GBメモリ、...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 暗闇の中での光源が複数ある場合
- 返信数: 2
- 閲覧数: 15138
Re: 暗闇の中での光源が複数ある場合
これでいかがでしょう。 //背景画像(640×480) int test = LoadGraph("test.png"); //背景と同じサイズで、白から黒に円形でグラデーションしている画像 int mul = LoadGraph("mul.png"); // グラデーション画像の合成用スクリーン int handle = MakeScreen(640, 480, FALSE); // グラデーション画像をオフスクリーンで合成 SetDrawScreen(handle); // 合成用オフスクリーンを描画対象に ClearDrawScreen(); SetDrawBlendMode(DX_BL...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 複数ウィンドウ表示の仕方
- 返信数: 7
- 閲覧数: 26222
Re: 複数ウィンドウ表示の仕方
数値を並べて表示したい場合、こんなふうにメモ帳を利用することもできます。 矢印で囲った部分。DXライブラリと関係なく使えます。 #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { SetAlwaysRunFlag(TRUE); ChangeWindowMode(TRUE); if (DxLib_Init() != 0) return 0; SetDrawScreen(DX_SCREEN_BACK); while (...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 複数ウィンドウ表示の仕方
- 返信数: 7
- 閲覧数: 26222
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 【Unity/C#】delegateが全然理解できません。
- 返信数: 43
- 閲覧数: 73216
Re: 【Unity/C#】delegateが全然理解できません。
オフトピック
無断転載元はこちら
No.8 → http://moriblog.kit-eng.com/?p=975
No.9 → https://docs.microsoft.com/ja-jp/dotnet ... p-generics
No.8 → http://moriblog.kit-eng.com/?p=975
No.9 → https://docs.microsoft.com/ja-jp/dotnet ... p-generics
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 再掲・クライアント領域に残像が残ってしまいます
- 返信数: 6
- 閲覧数: 36151
Re: 再掲・クライアント領域に残像が残ってしまいます
こちらの環境でプログラムを動作させるのに最低限必要だった書き換えは 1.ウィンドウプロシージャのシグネチャの変更 LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) 2.コメントにある『DirectX Graphics の初期化』の処理を『ウインドウ表示』および『ウインドウサイズ等の調整』より後に移動 でした。 ウィンドウが非表示の状態でウィンドウサイズを確定し、ウィンドウを表示した後、デバイスを作成するという手順を踏むことで、ウィンドウサイズの変化する様子が映ることもなく、環境に依存した問題...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 再掲・クライアント領域に残像が残ってしまいます
- 返信数: 6
- 閲覧数: 36151
Re: 再掲・クライアント領域に残像が残ってしまいます
ビルドの際にコンパイルエラーが発生し、それを修正し、デバッグ実行した際には一瞬ウィンドウが表示されるだけで終了してしまった
ということを申し上げたつもりです。
環境が違うので、めんつゆさんの想像するものとは異なるかもしれませんが。
回答が欲しいのであれば、たくさんのひとに見てもらえるように対処したほうがよろしいのではないでしょうか。
そのための情報提供をしたつもりです。
ということを申し上げたつもりです。
環境が違うので、めんつゆさんの想像するものとは異なるかもしれませんが。
回答が欲しいのであれば、たくさんのひとに見てもらえるように対処したほうがよろしいのではないでしょうか。
そのための情報提供をしたつもりです。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 再掲・クライアント領域に残像が残ってしまいます
- 返信数: 6
- 閲覧数: 36151
Re: 再掲・クライアント領域に残像が残ってしまいます
351行目を WNDCLASSEX wc = { sizeof(WNDCLASSEX),CS_CLASSDC,WndProc,0,0,hInst,NULL,NULL,NULL,NULL,NAME,NULL }; から WNDCLASSEX wc = { sizeof(WNDCLASSEX),CS_CLASSDC,WndProc,0,0,hInst,NULL,NULL,(HBRUSH)GetStockObject(BLACK_BRUSH),NULL,NAME,NULL }; に変更すると余白が黒で塗り潰されるようになります。 ただし、ウィンドウサイズ変更時に、GDIの背景塗り潰しとDirect3...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 【Unity/C#】delegateが全然理解できません。
- 返信数: 43
- 閲覧数: 73216
Re: 【Unity/C#】delegateが全然理解できません。
オフトピック
オブジェクト指向において、委譲(delegation)は基本的な要素のひとつで、古くからある考え方です。
それでも『デリゲート』という単語がメジャーになったのはjavascriptの影響が大きいと思います。
javascriptの実装は関数の属するコンテキストが云々といったかなりややこしい話になるけれど、結論だけ見れば「ただの関数に状態を持たせられる」というところが新しい。
「状態を持たせた関数がただの関数と同じく扱える」という表現のほうが適切か?
それでも『デリゲート』という単語がメジャーになったのはjavascriptの影響が大きいと思います。
javascriptの実装は関数の属するコンテキストが云々といったかなりややこしい話になるけれど、結論だけ見れば「ただの関数に状態を持たせられる」というところが新しい。
「状態を持たせた関数がただの関数と同じく扱える」という表現のほうが適切か?
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 【Unity/C#】delegateが全然理解できません。
- 返信数: 43
- 閲覧数: 73216
Re: 【Unity/C#】delegateが全然理解できません。
デリゲートより前は、間接的にメソッドを呼び出す方法として使えたのは 1. 静的なメソッド(クラスメソッド)の参照を経由する 2. 特定のメソッドを持つ特定のクラス(あるいはインターフェース)にアップキャスト可能なインスタンスを経由する という方法だけでした。 1. はメソッド単体で使うので、状態を持つことができません。 状態を扱うには引数でインスタンスを与えるといったオブジェクト指向らしからぬ手段を用いる必要があります。 2. は状態を持たせられますが、継承が必須となり、多重継承の問題を抱えることになります。 そこで、メソッドのシグネチャのみを対象とし、メソッドが何に属しているかを不問とする方...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: UIに特化したソフトの作成方法
- 返信数: 4
- 閲覧数: 16769
Re: UIに特化したソフトの作成方法
既にHTMLを会得されているなら、Electronとか。
HTML5&CSS3 + javascript(Node.js)でマルチプラットフォームのアプリケーションを開発できるフレームワークです。
ネイティブコードの外部ライブラリを呼び出すこともできます。
HTML5&CSS3 + javascript(Node.js)でマルチプラットフォームのアプリケーションを開発できるフレームワークです。
ネイティブコードの外部ライブラリを呼び出すこともできます。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: DirectX 9 フルスクリーンモードについて
- 返信数: 4
- 閲覧数: 17365
Re: DirectX 9 フルスクリーンモードについて
オフトピック
ご存知の方には余計なお世話ですが、ウィンドウズアプリケーションは Alt+F4 (Altキーを押したままF4キーを押す)で終了できます。
フルスクリーンモードのアプリケーションでも有効なので終了方法が分からないとき試してみてください。
フルスクリーンモードのアプリケーションでも有効なので終了方法が分からないとき試してみてください。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マップ情報の管理について
- 返信数: 3
- 閲覧数: 14826
Re: マップ情報の管理について
わたしのやり方は、そのどちらかではなくハイブリッドです。 外部ストレージへのアクセスがネックになる場合に、あらかじめ読み込んでおく、という場合でも、使っていないステージのデータは圧縮されていて、必要になった時点で展開する、といった方法を取る場合があります。 #例えば、ファミコンの容量の少ないROMカセットにステージデータが入っていて、本体RAMに展開して使うといった形態。 それとは別に、次に移動するであろうステージのデータをバックグラウンドで少しずつ読み込む、といった方法を取る場合があります。 #例えば、容量は大きいがアクセスの遅いCD-ROMからステージデータを読み込むといった形態。 ステー...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: [c++]自作dllの読み込み方
- 返信数: 7
- 閲覧数: 18456
Re: [c++]自作dllの読み込み方
Solutionソリューションに、MainプロジェクトとMakeプロジェクトの両方が含まれているとします。
1. Mainプロジェクトの『プロジェクト』→『プロパティ』で『追加のインクルードディレクトリ』に DLL.h のパスを設定
2. Mainプロジェクトの『プロジェクト』→『参照の追加...』でMakeプロジェクトにチェック
以上でOKです。
この方法ではリンカの設定(#pragma comment(lib, "~")のソース記述含む)を手動で行う必要がありません。
Debug構成でもRelease構成でも自動で追従します。
1. Mainプロジェクトの『プロジェクト』→『プロパティ』で『追加のインクルードディレクトリ』に DLL.h のパスを設定
2. Mainプロジェクトの『プロジェクト』→『参照の追加...』でMakeプロジェクトにチェック
以上でOKです。
この方法ではリンカの設定(#pragma comment(lib, "~")のソース記述含む)を手動で行う必要がありません。
Debug構成でもRelease構成でも自動で追従します。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 時代はUnityと言われました。マジですか?
- 返信数: 19
- 閲覧数: 38691
Re: 時代はUnityと言われました。マジですか?
「解像度256×224の枠の中で16×16のキャラクタ」のような具体的な数値を挙げているので、ゲームを作ることと同時にファミコンの環境に対しての関心も高いのではないかと想像します。 LoadDivGraphが便利だとおっしゃっているので、まだ先の話、あるいは無用なことかもしれませんが、ラスタースクロールやパレットアニメーションを実装しようというレベルになれば、DXライブラリでも不便なものです。 別に高度な技術を習得したいからでもなく、ゲームプログラマになりたいからでもなく、ただゲーム機が好きでゲーム機に興味があるだけ。 楽しんでいつのまにか高度な技術を学べるならそれでいいんじゃないですかね。 ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: win32apiでの更新処理中に固まる現象について
- 返信数: 2
- 閲覧数: 13644
Re: win32apiでの更新処理中に固まる現象について
時間が経つとフリーズする原因として一番に考えられるのはGDIリソースのリークでしょう。
GDIリソースの上限数はデスクトップ全体で固定なので不要になったハンドルの解放や破棄を忘れると枯渇し、ウィンドウズのシステムに影響します。
GDIリソースの上限数はデスクトップ全体で固定なので不要になったハンドルの解放や破棄を忘れると枯渇し、ウィンドウズのシステムに影響します。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: [Win32API]ダブルバッファと描画が上手にできません…
- 返信数: 4
- 閲覧数: 14312
Re: [Win32API]ダブルバッファと描画が上手にできません…
恒久的なBitmapはDIBが良い。 DIBであればデスクトップの画面モードが変更されても作り直す必要がない。 (DDBだとデスクトップの状態が変化すると描画されなくなる可能性がある) CreateDIBSection関数を使ってDIBを作成しビットマップハンドルを得る。 BitBltは、転送先と転送元のDCが逆。 hDcSrc,hDcDstといった変数名を使って転送元と転送先を明確に区別すると間違いに気付きやすくなるはず。 CreateCompatibleDCは、描画の直前に呼び出し、そこで取得したDCはすぐに破棄する。 デスクトップはいつ変化するか分からないので、ライフサイクルは短く。 B...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: Zバッファが狂って表示順序がおかしくなる
- 返信数: 6
- 閲覧数: 14828
Re: Zバッファが狂って表示順序がおかしくなる
コード見ただけですが、0.01f(Near)~1000.0f(Far)の有効桁数6桁がfloatの精度ギリギリなのは関係ないですかね。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: マイクのミュート状態
- 返信数: 9
- 閲覧数: 18283
Re: マイクのミュート状態
No.4のリンク先にあるサンプルコードの中の
eRender
を
eCapture
に変更すればマイク入力(既定の録音デバイス)のミュート状態を取得できました。
eRender
を
eCapture
に変更すればマイク入力(既定の録音デバイス)のミュート状態を取得できました。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: こんなのありました
- 返信数: 3
- 閲覧数: 13281
Re: こんなのありました
マイクロソフトのサイトから直接ダウンロードしたほうが安全なのでは?
https://www.microsoft.com/en-us/search/ ... -downloads
日本サイト(ja-jp)からは検索しても(エンドユーザーランタイムしか)ヒットしませんが、本家(en-us)だと…。
DirectX 9 SDKを使うのであれば、中でも最新版のJune2010を使うのがよろしいかと思います。
No.1のリンク先のものはタイムスタンプが2002年なのでかなり古いですね。
https://www.microsoft.com/en-us/search/ ... -downloads
日本サイト(ja-jp)からは検索しても(エンドユーザーランタイムしか)ヒットしませんが、本家(en-us)だと…。
DirectX 9 SDKを使うのであれば、中でも最新版のJune2010を使うのがよろしいかと思います。
No.1のリンク先のものはタイムスタンプが2002年なのでかなり古いですね。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: VisualStudioテンプレートにソースファイルが含まれない
- 返信数: 8
- 閲覧数: 23572
Re: VisualStudioテンプレートにソースファイルが含まれない
無償版とは言えわざわざ中途半端な機能制限をする合理的な理由が見付からないので調べてみました。
結果、ソリューションエクスプローラーでプロジェクト直下に表示されるファイルは同時にエクスポートされました。
『ソースファイル』等のサブフォルダ(フィルター)の下だとエクスポートされません。
過去にはC/C++のプロジェクトで『テンプレートのエクスポート』機能はサポートされていなかったらしいです。
VB.NETやC#のプロジェクトテンプレートはフィルターを作らない(作れない?)ので、その名残でしょうかね。
結果、ソリューションエクスプローラーでプロジェクト直下に表示されるファイルは同時にエクスポートされました。
『ソースファイル』等のサブフォルダ(フィルター)の下だとエクスポートされません。
過去にはC/C++のプロジェクトで『テンプレートのエクスポート』機能はサポートされていなかったらしいです。
VB.NETやC#のプロジェクトテンプレートはフィルターを作らない(作れない?)ので、その名残でしょうかね。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: VisualStudioテンプレートにソースファイルが含まれない
- 返信数: 8
- 閲覧数: 23572
Re: VisualStudioテンプレートにソースファイルが含まれない
1. プロジェクトテンプレートのzipファイルに、ソースファイルを追加 2. プロジェクトテンプレートのzipファイルに含まれるMyTemplate.vstemplateに <ProjectItem>ソースファイルの名前</ProjectItem> を追記(1ファイルにつき1つずつ) 上記手順で希望のことができました。 VS2017Communityでも同様にソースファイルが含まれませんでした。 プロジェクトごとファイルをコピーするとプロジェクトファイル(.vcxproj)に記録されている識別ID(GUID)が複数のプロジェクトで同一となるため、コマンドラインからコンパイルするという使い方だけ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 横スクロールアクションでの背景画像の大きさについて
- 返信数: 15
- 閲覧数: 20364
Re: 横スクロールアクションでの背景画像の大きさについて
1920x1080を前提に作っていても、それを任意のサイズで表示することはほとんど手間をかけることなくできるのに、その手間を惜しむというのは選ばれたひとにしかプレイして欲しくないという意思表示になってしまうと思いますけどね。 1920x1080固定だと4Kディスプレイでは小さい画面でプレイするのを強制することになりますよ。 ファミコン時代の256x240とかのゲームがPCに移植されるのを豆粒のような画面でプレイしたくはないですよね。 1920x1080を800x600で表示したいのなら、SetGraphMode(1920,1080)のままで、SetWindowSizeExtendRate(0....
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: コントラスタに引数があるクラスの動的確保
- 返信数: 8
- 閲覧数: 15604
Re: コントラスタに引数があるクラスの動的確保
どちらにしてもデフォルトコントラスタは作らなければならないようですね・・・ デフォルトコンストラクタは作らなくてもできます。 既存オブジェクトを上書きするのではなく、更地に構築します。 #include <iostream> #include <random> #include <new> using namespace std; class A { private: int a; public: A(int num) : a(num) { } void show_a() { cout << a << endl; } }; int main() { int test_num = 5; cha...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: Win32apiでツールバーでbmpを読み込んでくれません
- 返信数: 7
- 閲覧数: 16644
Re: Win32apiでツールバーでbmpを読み込んでくれません
CreateToolBarExはビットマップの背景色の処理をやってくれるので利用しましょう。 1番目のパラメータはビットマップ内のボタンイメージのインデックス 自前部分は0から振る TBBUTTON tbb[] = { { STD_CUT, ID_CUT, TBSTATE_ENABLED, BTNS_BUTTON, 0, 0 }, { STD_COPY, ID_COPY, TBSTATE_ENABLED, BTNS_BUTTON, 0, 0 }, { STD_PASTE, ID_PASTE, TBSTATE_ENABLED, BTNS_BUTTON, 0, 0 }, { 0, ID_CREAT...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: Win32apiでツールバーでbmpを読み込んでくれません
- 返信数: 7
- 閲覧数: 16644
Re: Win32apiでツールバーでbmpを読み込んでくれません
2つ目のコードの32行目で代入すべきは、ビットマップハンドルじゃなくて、ビットマップのリソースIDなのでは?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: vector<list<int>>のデータ削除
- 返信数: 4
- 閲覧数: 8742
Re: vector<list<int>>のデータ削除
解決しちゃってたけどせっかくだから投稿します。 #include <vector> #include <list> #include <algorithm> #include <iostream> // for DEBUG int main() { std::vector<std::list<int>> foo = { {1},{2,3,4,5},{6,7,8},{9,10} }; for (auto &l : foo) { l.erase(remove_if(begin(l), end(l), [](int i)->bool { return i == 4; }), end(l)); } ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 変数の名前と値の関係を教えてほしいです!
- 返信数: 10
- 閲覧数: 11702
Re: 変数の名前と値の関係を教えてほしいです!
アセンブラの話で盛り上がっているのでこちらはオフトピで。 質問の後半に「ポインタのところで、違和感を感じています」とあるので、変数名が即値にバインドされるという勘違いから生じている疑問ではないのかなあ。 ポインタが分からないという理由によくある話だと思う。 int a = 123; という変数の宣言の中身としては、 1. int型の値を格納できる大きさの記憶域が確保される。この記憶域は生存期間中一定のアドレスを持つ。 2. 1.で確保された記憶域をaという名前で(アドレスを使うでなく)アクセスできる 3. 1.で確保した記憶域は初期段階で123という値を持つ というふうだけれど、特に初心者向...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: DxLibのGetRand()とstdlibのrand()の違いについて+α
- 返信数: 9
- 閲覧数: 12832
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: Pythonのファイルのバイト単位でのランダムアクセスについて
- 返信数: 50
- 閲覧数: 57188
Re: Pythonのファイルのバイト単位でのランダムアクセスについて
2バイトのやつはリトルエンディアンですよ。(output_d.htmlを読めばわかりますが…。) keito94さんの提示したコードでビッグエンディアンとして処理しているのをそのまま書き換えたのですよ。 反省したと言いながらあいかわらずトピを読み返さないので自分の書いたコードに原因があることに気付かないのでしょうかね。 あるいは、わたしを貶めようと目論んでいるのでしょうか。 必要最低限の書き換えで済ましているのは、このような状況でもある意味keito94さんを信用してのことですが、そのような悪意を突き付けられるとは。 自分を棚に上げて他人に間違いを直させる姿勢にさらに磨きがかかってますね。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: Pythonのファイルのバイト単位でのランダムアクセスについて
- 返信数: 50
- 閲覧数: 57188
Re: Pythonのファイルのバイト単位でのランダムアクセスについて
ファイルの先頭から10バイトは順番に読み込むだけだし structモジュールとかいうのを使うと複数バイトデータの変換が楽にできるらしい。 こんな感じ?(未検証) from struct import * class Map: # マップを開いてヘッダ情報を読み込む。引数:filename(ファイルのパス。) def __init__(self,filename): self.fn = open(filename, 'rb') # マップの幅を獲得。 self.MAP_W = unpack('>h', self.fn.read(2))...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおける当たり判定について
keito94さんは回答者を、問題解決する方法を教えてくれる先生じゃなくて、作りたいものを一緒に作る仲間みたいに見てる いいえ、そう考えてないですよ!! 回答者は、解決方法を教えてくれてると思います!! 例えばの話ですが、回答者の中にバンダイナムコから公式にリリースされているパックマンの開発に関係したひととかがいて、そういうひとに向かって「あなたの考え方のコードください」とか「あなたがマップチップ自作してください」とか平然と言うのは、とてつもなくあつかましいことだと思うんですよ。 回答者を下に見てる意識があってもなくても、あつかましいことには違いはないですけどね。 どうやって、32x32のキ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおける当たり判定について
オフトピック
そういうことでなくて…keito94 さんが書きました:回答者さんはちゃんと知識などがある方だと思ってますよ…。
下手の横好きだなんてとんでもない。
keito94さんは回答者を、問題解決する方法を教えてくれる先生じゃなくて、作りたいものを一緒に作る仲間みたいに見てるんじゃないだろうかってことなんですけどね。
あと、下手の横好きってのは知識や技術のありなしでなくて、本物かどうかってことですよ。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおける当たり判定について
クローンの意味分かってます?
パックマンを目指していると言ったり目指していないと言ったりあげくにクローン。
支離滅裂。
クローン作るのを手伝って欲しいならオリジナルがどうなっているか観察して分かることをすべて具体的に発表してください。
いまのところそれはkeito94さんでなくわたしがやっている。
keito94さんが自分からは何もしないから支離滅裂なのですよ。
パックマンを目指していると言ったり目指していないと言ったりあげくにクローン。
支離滅裂。
クローン作るのを手伝って欲しいならオリジナルがどうなっているか観察して分かることをすべて具体的に発表してください。
いまのところそれはkeito94さんでなくわたしがやっている。
keito94さんが自分からは何もしないから支離滅裂なのですよ。
オフトピック
keito94さんは回答者をどんなふうに見ているのだろうか。
自分と同じ下手の横好き(!)が集まっているとでも思っているのだろうか。
自分と同じ下手の横好き(!)が集まっているとでも思っているのだろうか。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおける当たり判定について
何でそんなに上から目線なんですか。keito94 さんが書きました:でも、画像を何個作ればいいのかわからないので、マップチップのサンプルを自作でください。
あなたの指示で動く義務はないのでお断りします。
ネットで検索すればパックマンのスクリーンショットくらい簡単に見付かるでしょうに。
他所で、パックマン風はパックマンとは異なる、というのを肯定されてますよね。
本家パックマンと異なる本家パックマンみたいなもの、というのは難解で理解が追い付きません。
本家パックマンのことなら分かるんですけどね。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおけるワープ通路の実装の仕方がわからない。
これまでの投稿に書いたことでは足りませんか?keito94 さんが書きました:本家パックマンに近い当たり判定への鍵もあったら教えてください。
ちゃんと読めば、パックマンには、いわゆる壁との当たり判定も、このトピの主題であるワープ判定も、もともと必要ないことが分かると思うんですが。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおけるワープ通路の実装の仕方がわからない。
コンテナを使った当たり判定は削除されていますね。
#コンテナ自体は残ってるけど。
どうしてブロックをすり抜けてしまうのか、については基本すぎるので、ちゃんとデバッグしてください、としか言えません。
#コンテナ自体は残ってるけど。
どうしてブロックをすり抜けてしまうのか、については基本すぎるので、ちゃんとデバッグしてください、としか言えません。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおけるワープ通路の実装の仕方がわからない。
でも、なかなか大変ですね…。 それは、最初にどうするか・どうしたいか決めずに、目に付いたコードを適当に切り貼りしているからですよ。 きちんと最初に決めたことに必要な部分だけを参考にしたり、最初に決めたことに必要な改変をしたり、中身を理解して軸がブレないようにやればもっと楽にできるはずです。 混ぜたらダメなコードを混ぜて使って絶対にうまくいくわけがない。 あと、ブロックの当たり判定部分について、keito94さんは過去のトピでソースファイルをzipで添付したことがあるだけでまだいちども説明してない。 わたしが「パックマン風にはまったくの不向き」と書いた部分のこと。 そこは現在どうなっているのか...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおけるワープ通路の実装の仕方がわからない。
ゲームプログラミングの館の移動サンプルプログラムは方向転換がブロック単位です。
ちなみにわたしがNo.8に書いたパックマンの動きとは合致しません。
仕切り直しが発生しているのでしょうか。
現状どういう状況なのでしょう。
「パックマン風」とはパックマンではなく、とにかく目に付いたコードを切り貼りしてそれっぽく動くことを目指すところのものなのでしょうか。
そもそもkeito94さんが何をもって「それっぽい」と判断されるのか分かりません。
なにがなんだか。
ちなみにわたしがNo.8に書いたパックマンの動きとは合致しません。
仕切り直しが発生しているのでしょうか。
現状どういう状況なのでしょう。
「パックマン風」とはパックマンではなく、とにかく目に付いたコードを切り貼りしてそれっぽく動くことを目指すところのものなのでしょうか。
そもそもkeito94さんが何をもって「それっぽい」と判断されるのか分かりません。
なにがなんだか。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおけるワープ通路の実装の仕方がわからない。
オフトピック
パックマンの迷路は、8x8のチップ画像で構成されています。
直線と角が数パターンあり、それらの組み合わせです。
パックマンの迷路のチップ画像は、壁がチップの中央を通るように描かれています。
パックマンは(モンスターも)迷路の壁の描かれたチップの半分といつも重なっています。
曲がり角に達するより先に、重なっているチップの種類で曲がり角かどうか容易に判定できるというわけです。
直線と角が数パターンあり、それらの組み合わせです。
パックマンの迷路のチップ画像は、壁がチップの中央を通るように描かれています。
パックマンは(モンスターも)迷路の壁の描かれたチップの半分といつも重なっています。
曲がり角に達するより先に、重なっているチップの種類で曲がり角かどうか容易に判定できるというわけです。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: インテリセンスにprivate変数を表示させないようにしたい
- 返信数: 4
- 閲覧数: 8939
Re: インテリセンスにprivate変数を表示させないようにしたい
privateに存在する変数は、そもそもアクセス権限がないわけですから、扱えない(使う必要が無い)じゃないですか。 それなのに、どうしてインテリセンスは表示してくるのでしょうか? どう考えても、無駄な気がします。 TEST::F()やTEST::F2()の定義の中ではアクセス権があるのに表示されないと困るのではないでしょうか? でもそれを実現しようとするとコンパイル時の文法解析と同等の処理が必要。 処理コストがかかるので実現していないのではないでしょうか。 コンマ数秒でもキーボードから単語入力するたびに待たされたらイライラしてブチ切れる気がします。 ちなみにVisual Studio 201...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおけるワープ通路の実装の仕方がわからない。
否定的なことはすべて全否定と捉えるのは、コードの中身を理解していない(しようとしない)からでしょうかね。 C++&DXライブラリのときに、移動先判定は… 『等間隔に並ぶ固定されたブロック、とプレイヤーキャラのみの当たり判定』 が前提になってるから、のちのち苦労することになりますよってなことを何回も書いたの覚えてませんか? パックマンて 『等間隔に並ぶ固定されたブロック、とプレイヤーキャラのみの当たり判定』(※モンスター等は障害物ではない) なんですよ。 先読みが有効な場面なんですよね。 そもそも曲がり角をショートカットって先を見ないと不可能だと思いませんか? ところがですね、パックマンは現在座...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおけるワープ通路の実装の仕方がわからない。
改善案を教えてくれませんか…。 改善案とは? それこそパックマンを真似れば良いのではないでしょうか。 パックマンを真似るというのは、どこかにあるそれっぽいコードをコピペすることではないですよ。 パックマンの動作を見て、自分でデータ構造やアルゴリズムを考えることが「真似る」ということです。 あの方法は全体的に不向きでしたか…。(初心者向けコードの延長線でかないということですか…。初めて知りました…。) あなたが考えるパックマン風の当たり判定の考え方と、 将来的にはアクションゲームを作りたいから、あなたが考えているアクションゲームの当たり判定の考え方を教えて下さい。 (同じなら同じと言ってくださ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおけるワープ通路の実装の仕方がわからない。
keito94さんの念頭には、 [pygame]画像が分割して表示されない…。 に添付されているソースファイルにあるブロック関連のコードと同じ方法でワープ通路を実装したいというのがあるのでしょうかね。 マップデータ配列から、位置とチップ画像をセットにしたブロックの情報を個々に生成したものをグループ化、当たり判定はグループで行い、その際、チップ画像のサイズを利用している、というもの。 でもリンク先のトピックでもこのトピックでも、そのへん一切話題になってない。 過去に一度も触れていないことを前提にされてもなあ、って思います。 そもそも、どこかのサイトを参考にしたらしいコードですが、パックマン風の...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおけるワープ通路の実装の仕方がわからない。
手がかりは書いたとおりのことですよ。keito94 さんが書きました:そのアルゴリズムの組み方がよくわからないので、その手がかりとなるものを教えて下さい。ISLe さんが書きました: 進行中に逆方向に入力があるとその場で反転しますが、進行方向と垂直の方向の入力があってもそのまま直進し、曲がり角に達すると入力方向に曲がります。
書いてあることをコードに落とし込めばよいだけです。
#keito94さんが何を期待しているのかが分からない。
あと、これはワープ問題とは別の事案なので新規にトピをたてたほうが良いと思います。
#No.8もオフトピであるべきでした。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおけるワープ通路の実装の仕方がわからない。
ワープトンネルとは無関係なところを移動させる処理を簡単に説明すると、 ①プレイヤーのキー入力を確認する ②パックマンの移動する方向を入力した方向に変更する ③パックマンが壁に衝突するのなら、そこで停止 (今のだと操作感がめちゃくちゃ悪いかも…。なにか改善案出してくれますか?) 改善案とは? それこそパックマンを真似れば良いのではないでしょうか。 パックマンは… 進行中に逆方向に入力があるとその場で反転しますが、進行方向と垂直の方向の入力があってもそのまま直進し、曲がり角に達すると入力方向に曲がります。 さらに、曲がり角に達する前から曲がりたい方向に入力していた場合、正面の壁に突き当たることな...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: パックマン風ゲームにおける当たり判定について
- 返信数: 49
- 閲覧数: 99725
Re: パックマン風ゲームにおけるワープ通路の実装の仕方がわからない。
パックマンには、緊急回避のために左右がつながっているワープトンネルがあります。 ワープ通路であることを表すチップをマップデータに入れるというのはわかっているのですが、 まるでパックマンにワープ通路を表すチップがあるかのような書き方ですね。 パックマン『風』とパックマンはきちんと区別して欲しいと思います。 パックマンにこだわらないなら、以下は気にしなくてもかまいません。 パックマンには、「ワープ通路であることを表すチップ」というものはありません。 モンスターの速度が遅くなる部位設定というものはあります。 パックマンは、上下・左右がそれぞれ円筒状に繋がったマップです。 迷路の見えている部分は22...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 3Dゲームのフィールドのテクスチャについて
- 返信数: 6
- 閲覧数: 10174
Re: 3Dゲームのフィールドのテクスチャについて
ゼルダの伝説 時のオカリナ の映像を見る限りでは、シームレステクスチャ(ループテクスチャ)のようです。
UV座標を0.~1.の範囲で貼り付けると、メッシュの中でテクスチャは一対一です。
UV座標を0.~2.の範囲で貼り付けると、メッシュの中でテクスチャは2回繰り返されます。
繰り返す回数が多いほどピクセルは密になり、間延びしなくなります。
Blenderでは、Image Mappingでリピート回数を指定できるみたいです。
ゲームプログラムでは、地面のような平面ポリゴンは動的に生成することも少なくないと思います。
UV座標を0.~1.の範囲で貼り付けると、メッシュの中でテクスチャは一対一です。
UV座標を0.~2.の範囲で貼り付けると、メッシュの中でテクスチャは2回繰り返されます。
繰り返す回数が多いほどピクセルは密になり、間延びしなくなります。
Blenderでは、Image Mappingでリピート回数を指定できるみたいです。
ゲームプログラムでは、地面のような平面ポリゴンは動的に生成することも少なくないと思います。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: Directx9_DrawIndexedPrimitive_UV座標について
- 返信数: 5
- 閲覧数: 8569
Re: Directx9_DrawIndexedPrimitive_UV座標について
頂点情報は、頂点座標とUV座標がセットなので、UV座標が異なれば頂点情報は別個となります。 それを、D3DPT_TRIANGLESTRIPのDrawPrimitive系関数一回の呼び出しで描画したいときは、縮退ポリゴンを利用します。 縮退ポリゴンとは、面積がゼロのポリゴンのことです。 No.2のMathさんのコードに対して、26行目から32行目までを以下のコードに置き換えます。 CUSTOMVERTEX v[]= { { Cx - width/2, Cy + height/2, 0.0f, 1.0f, 0.0f, 1.0f}, { Cx - width/2, Cy - height/2, 0....
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: RECT型を使ってのめり込み防止の実装について。
- 返信数: 14
- 閲覧数: 28490
Re: RECT型を使ってのめり込み防止の実装について。
CCollision::CheckMapを改造。 戻り値のRECTは、矩形ではなく、各方向に何ピクセルめり込んでいるかを表す。 rcMoverは、CMoverクラスから直接持ってきたいところだが、引数周りを変えると変更点が多くなりすぎるので先送りとする。 RECT CCollision::CheckMap(int x, int y) { RECT rcMover = { x + mPt[0].x, y + mPt[0].y, x + mPt[7].x + 1, y + mPt[7].y + 1, }; RECT rc, rcResult; CopyRect(&rcResult, &rcMove...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: RECT型を使ってのめり込み防止の実装について。
- 返信数: 14
- 閲覧数: 28490
Re: RECT型を使ってのめり込み防止の実装について。
オフトピック
やたらサンプルコードよこせ言ってたけど、うちのブログは参考にならんかったかな。
まあ、2010年の記事だしJavaだし。
実験要素山盛りなのでそのままコピペはよろしくないから、せめて自力で見付けられるくらい意欲ある人でないとな。
まあ、2010年の記事だしJavaだし。
実験要素山盛りなのでそのままコピペはよろしくないから、せめて自力で見付けられるくらい意欲ある人でないとな。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: RECT型を使ってのめり込み防止の実装について。
- 返信数: 14
- 閲覧数: 28490
Re: RECT型を使ってのめり込み防止の実装について。
いやいや、さらに酷くなってますよ。keito94 さんが書きました:ブロックに当たったら当たる前の座標に戻すでしたね…。
頭のなかで勘違いしてしまいました…。
A.「当たったら」とは
当たっていない状態から当たっている状態への『変化』
B.「当たっている」とは
その時点で当たっているという『状態』
AとBの違いが分からないですかねえ。
状態×変化のAは、状態だけのBより複雑になるのは明らか。
わたしはずっと「めり込みの補正」と表現してますよ。
Pythonを学んでこのような日本語のニュアンスの違いが分かるようになるといいですね。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: RECT型を使ってのめり込み防止の実装について。
- 返信数: 14
- 閲覧数: 28490
Re: RECT型を使ってのめり込み防止の実装について。
ISLeさんに言われてRECT構造体に書き換えてみたのですがバグだらけです。 なにか、アドバイスはないのでしょうか? バグだらけなのはわたしの責任なんですか? 何か書いても、書いた内容を理解する気はないように見えるし、無関係なところも含めてあちこちテキトーにいじくり回して問題を増やすし、さらにはその責任を押し付けられるのでは、何も書きたくないすなあ。 No.1に添付してるRectCollision.cppとか、大元からめちゃくちゃいじくり回してるけど、No.5ではわざわざIntersectRect関数とは別に関数作ってたりするし、ほんとにコードいじくり回すだけで理解してないんだなって思います...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: RECT型を使ってのめり込み防止の実装について。
- 返信数: 14
- 閲覧数: 28490
Re: RECT型を使ってのめり込み防止の実装について。
いますぐやるべきは、CCollision::CheckMap関数にある、キャラとブロックの当たり判定をRECT構造体を使うように書き換えること。keito94 さんが書きました:効率が良くて汎用性のあるブロック当たり判定がどうしても思いつかないんです…。
衝突したブロックの座標を返すサンプルコードをくれませんか…。
いまは動作そのものは変えなくていい。むしろ変えてはいけない。
衝突したブロックの座標云々はRECT構造体使って衝突したブロックが分かるようにできてから。
言っちゃあなんですが、効率が良いとか汎用性があるとか、keito94さんに判断できるんですか?