検索結果 2631 件

by ISLe
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列へのポインタ (*a)[10] について
返信数: 51
閲覧数: 3417

Re: 配列へのポインタ (*a)[10] について

Direct3DのCreateDeviceとか具体例に思い当たらなかったら突っかかってこないでほしいなあ。 Direct3Dは、マイナーなハードのアセンブラよりの内容だったかあ。 深く考えずに入門書のコードをコピペしてた人が、コピペをやめると途端にやらかすのを、けっこう見掛けるんですけどねえ。 江戸時代の手紙は、飛脚という職業の人が徒歩や馬で運んだらしいですよ。 なんで、自動車や電車を使わなかったんでしょうね。 C言語の最適化が大きなブームになっていたのは、わたしが20代のころでしたね。 DOSエクステンダで、コンパイラが潤沢なメモリを使えるようになったころからです。 当時、Cコンパイラは有...
by ISLe
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列へのポインタ (*a)[10] について
返信数: 51
閲覧数: 3417

Re: 配列へのポインタ (*a)[10] について

ポインタは、慣れるまで難しいのは事実で、ポインタをある程度扱うようになった、あるいは扱わざるを得なくなったヒトがハマるパターンも。 デバイスを扱うライブラリの初期化関数に、ダブルポインタで、デバイスを定義した構造体へのポインタを取得する、みたいなのがよくある。 そういうライブラリを初めて使うようなヒトが、ダブルポインタで宣言した変数を実引数としてしまうミスをしがち。 正しくは、シングルポインタで宣言した変数に、アドレス演算子付けたのを実引数にする。 深く考えず*や&を付けてしまう第一の壁。 *や&を付ける必要性に悩む第二の壁。 そこに「ポインタはアドレスだ」というフレーズの影響力。 ここ の...
by ISLe
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列へのポインタ (*a)[10] について
返信数: 51
閲覧数: 3417

Re: 配列へのポインタ (*a)[10] について

#9 にきしてある本ををお読みください 18刷まででたベストセラーであり 新版はC11 対応です #9の リンク先 にこうあります。 こういった混乱の原因は、「ポインタはアドレスだ」ということを理解していないところにあるのではありません。本当の理由は、  ・C の「奇怪な」宣言の構文  ・配列とポインタの間の「妙な」交換性 にあるのです。 #10の リンク先 にこうあります。  C言語では、「ポインタが難しい」と良く言われますが、 実際に初心者がCを学習する過程を見ると、以下のことだけは すぐに理解しているようです。  「ポインタっつーのは、要するにアドレスのことなんだな」  ここまでは簡単...
by ISLe
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列へのポインタ (*a)[10] について
返信数: 51
閲覧数: 3417

Re: 配列へのポインタ (*a)[10] について

オフトピック
int a, b;
a = 1;
b = a + 1;
ここに出てくるaは全部意味が違うのにどうして同じ記号(記号なし表記)なの?教えて偉い人

その上で、C言語のポインタが宣言と演算子で同じ記号を使うことの何が問題なの?教えて偉い人
by ISLe
1ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列へのポインタ (*a)[10] について
返信数: 51
閲覧数: 3417

Re: 配列へのポインタ (*a)[10] について

本質的に違うもの、という意味では、値型と参照型を同列に扱うモダンな言語のほうが、よほど奇妙に感じますけどね。 値型と参照型を同列に扱うほうが、どうして受け入れられやすいのかは、ポインタが難解だと言われるのと同じ理由です。 (ただの)変数を深く理解しないままでも、コードを書ける、からコーディングが楽。 (ただの)変数を深く理解しないまま、コードを書いている、からポインタで壁にぶち当たる。 初心者は、 「変数の値は、コンピュータが適当に覚えていてくれて」 「変数が使われるときに、式が書き換えられる」 というふうに理解しがち。 バリエーションはありますが、共通ポイントはこの2点。 こういうふうに変...
by ISLe
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 配列へのポインタ (*a)[10] について
返信数: 51
閲覧数: 3417

Re: 配列へのポインタ (*a)[10] について

Cの文法は、意味に一貫性を持たせているのではなくて、表記に一貫性を持たせている。 K&Rにも、記述や表現の一貫性というふうに、書いてある。 表記に一貫性を持たせれば、宣言するときと式の中で使うときとで意味が逆になるのは当然のことじゃあないのか。 例えばポインタを int >a; というふうに宣言して <a で間接参照するようにしたら分かりやすいか? そうは思わない。 うっかり>aと書いた場合どうしたらいい? むしろうっかりミスの機会が増える。 宣言では>しか使わないし、間接参照では<しか使わない。 だったら同じ記号でいいじゃないか。 逆に書いてしまうミスも防げる。 アセンブラだとアドレスが1...
by ISLe
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIにてユニークポインタを用いた際にWM_PAINT内部でプログラムがが止まる
返信数: 6
閲覧数: 1392

Re: Win32APIにてユニークポインタを用いた際にWM_PAINT内部でプログラムがが止まる

WM_PAINTに直接書くかどうかだけで動作速度が大きく変わることはないはずです。 メソッドで描画を行うようにした際、WM_PAINT内に直接かいたのと比べて欠落したり変化している処理はありませんか? 例えば、Chapter1クラスに、PAINTSTRUCT型のpsメンバがありますが、使われている様子がありません。 BeginPaintとEndPaintを適切に呼ばないと、無効領域がクリアされません。 無効領域がクリアされるまで、WM_PAINTはひっきりなしに繰り返し呼び出されます。 おそらく、system.cppの fps_handler->Fps_Handle_Control(main_...
by ISLe
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DirectXの定数バッファについて
返信数: 4
閲覧数: 1206

Re: DirectXの定数バッファについて

Direct3D 11では、並列処理を行うためにDeferred Contextという仕組みが導入されました。 Deferred Contextに対して、並列処理をしないImmediate Contextがあります。 デフォルトのコンテキストはImmediate Contextで、必要に応じてDeferred Contextを複数作成し、最後にまとめてImmediate Contextに投げる形になります。 Deferred Contextはステートを引き継がないので、VSSetConstantBuffersやGSSetConstantBuffersメソッドなど毎回呼ぶ必要があります。 速度を...
by ISLe
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: Win32APIにてユニークポインタを用いた際にWM_PAINT内部でプログラムがが止まる
返信数: 6
閲覧数: 1392

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(); というふうにして、ポインタを所有しているときだけ呼び出すのが良いでしょう。 実行...
by ISLe
2ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: DirectXの定数バッファについて
返信数: 4
閲覧数: 1206

Re: DirectXの定数バッファについて

定数バッファを設定するのは、VSSetConstantBuffersやGSSetConstantBuffersメソッドなのではないでしょうか?
by ISLe
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 座標変換した場所からブラーを出したい
返信数: 6
閲覧数: 515

Re: 座標変換した場所からブラーを出したい

vanitas710さんのご希望はあくまで、ポストエフェクトのみでってことなのですね。

となると、消失点のスクリーン座標を求めて、ピクセルシェーダーにパラメータとして渡すという形になりますかね。
わたしの提案はひとまず忘れてください。

ワールド座標からスクリーン座標を求める方法は、マウスで画面をクリックして3Dオブジェクトを選択する処理など頻繁に使われるので、『ワールド座標からスクリーン座標を求める方法』等で検索すればすぐに見付かるはずです。

シェーダーにパラメータを渡す方法も『シェーダーにパラメータを渡す方法』で検索すればすぐに見付かるはずです。
by ISLe
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 座標変換した場所からブラーを出したい
返信数: 6
閲覧数: 515

Re: 座標変換した場所からブラーを出したい

#3を見直して気付いたのですが、vanitas710さんは、いまやろうとしていることと、モーションブラーは全く関係ないと思ってます?

#2で紹介した記事にある、いわゆるモーションブラーは、移動前後の頂点を補完する形でベロシティマップを生成しますが、vanitas710さんがいまやろうとしていることは、消失点から放射状に広がる形で補完する点が異なる以外は、ほぼモーションブラーと同じ処理になりますよ。

で、消失点の座標さえあれば、そこからの相対座標でブラーの強度を計算できるので、ダミーの頂点一個で足りるというふうに書きました。
by ISLe
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 座標変換した場所からブラーを出したい
返信数: 6
閲覧数: 515

Re: 座標変換した場所からブラーを出したい

ああ、なるほど。 マンガの集中線みたいな感じで、ブラーの中心を任意のオブジェクトにしたいってことですかね。 でしたら、複雑なオブジェクトを対象にするのではなくて、ダミーの頂点一個を対象にするとしたほうが単純化できます。 で、オブジェクトAの中心とダミー頂点の座標を合わせれば、お望みの効果が得られるというわけです。 #ダミー頂点の座標をズラして応用もできる。 変換後のスクリーン座標は、シェーダーの中で取得できるので、わざわざ自前で計算する必要がありません。 せっかくメインCPUを使わず高速に計算してくれた結果を使わないのはもったいない。 #ベロシティマップとか作成する際にも使われている。 普通に...
by ISLe
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: C++フォントを扱う方法
返信数: 9
閲覧数: 518

Re: C++フォントを扱う方法

DXライブラリでは、同時に作成できるハンドルの最大数が固定なので、足りなくなるときは足りなくなりますよね。 あと、CreateFontToHandleで作成したフォントハンドルごとに描画キャッシュ用のテクスチャが作成されるので、ビデオメモリの容量が不足することも懸念されます。 フォントを描画するときにビットマップレベルで拡大縮小できる仕組みがDXライブラリにあれば、ある程度大きめに作っておいたフォントをいろんなサイズに使い回すことができるのですが、残念ながらありません。 低スぺ環境しかないユーザーを切り捨てるのは簡単ですが、せっかくならできる限り多くのユーザーに楽しんでもらいたいと個人的には思...
by ISLe
3ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 座標変換した場所からブラーを出したい
返信数: 6
閲覧数: 515

Re: 座標変換した場所からブラーを出したい

3Dグラフィックス・マニアックス(34) ジオメトリシェーダ(5)~ジオメトリシェーダを活用した新表現(1)
3Dグラフィックス・マニアックス(34) ジオメトリシェーダ(6)~ジオメトリシェーダを活用した新表現(2)
3Dグラフィックス・マニアックス(34) ジオメトリシェーダ(7)~ジオメトリシェーダを活用した新表現(3)

ブラーの実装について書かれた解説記事(実装サンプルではない)です。
記事は古いですが、書いてある内容自体は古くないです。
実装サンプルは、記事に書かれたキーワード(ジオメトリシェーダとかベロシティマップとか)を参考に探してみてください。
by ISLe
6ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: javaでPC向けシューティングを作りたいが・・・
返信数: 7
閲覧数: 757

Re: javaでPC向けシューティングを作りたいが・・・

ガラケー時代を中心に、80~90年代アーケードゲームの移植を生業としていた者からすると、「やはりJavaでは向いてない」と切り捨てられるのは悲しいものがありますな。

ちなみにわたしは、C/C++で作ったものの移植という形でJavaを覚えました。
学習に要した時間は4時間ほどです。
2Dゲームなら、AWTでイメージ描画、サウンド再生、この2つが分かれば十分ですね。

参考にするならこことかどうでしょう。
Javaでゲーム作りますが何か?
by ISLe
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: アナログデータのリアルタイム描画
返信数: 38
閲覧数: 2305

Re: アナログデータのリアルタイム描画

Windows 7と Windows 10ではデスクトップの描画の仕組みが違います。 新しいOSほど最適化が進んで自動的に無駄が省かれるようになっていきます。 1000サンプリングを10回に1回描画というと100Hz(fps)なので、モニタの周波数が60Hzであれば、モニタに映らないフレームがあります。 内部的な描画は行われますが、Windows 10は、映らないフレームをデスクトップに反映することをしません。 もしかしたら、それが描画速度の差に表れているのかもしれません。 周波数が144Hzあるようなモニタであれば、Windows 7と Windows 10で同様の動作になるかもしれません...
by ISLe
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: アナログデータのリアルタイム描画
返信数: 38
閲覧数: 2305

Re: アナログデータのリアルタイム描画

わたしなら ・データ受信処理は、データの受信だけして描画に必要なデータを溜めておく ・描画処理は、タイマーイベントで定期的に呼び出し、(タイマーの間隔は信用できないので)実際の経過時間を取得して描画範囲を求め、描画 というふうにします。 描画に時間が掛かれば、1回あたりの描画範囲が広がるわけです。 ウィンドウズはリアルタイムOSではないので、常に一定の間隔とか、ちょうどぴったりとかはできません。 できるだけ近づけることはできます。 デスクトップを操作したりとか、バックグラウンドで何か処理が動いたりとかで、プログラムの動作にかかる負荷が変わることがあります。 タイミングは実行中も常に変動するもの...
by ISLe
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: アナログデータのリアルタイム描画
返信数: 38
閲覧数: 2305

Re: アナログデータのリアルタイム描画

オフトピック
わたしの得意分野かと思ったのですが、回答するのが憚られる流れですな。
最近ここに来るの不定期だし、Builder使ったことないので具体的な回答はできそうにないし。
by ISLe
7ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム開発に日常的に使っているものは何ですか?
返信数: 35
閲覧数: 2172

Re: ゲーム開発に日常的に使っているものは何ですか?

現場がUnityを使うのは、マルチプラットフォーム対応やチームでの作業にかかる開発や学習のコスト削減、さらにプラットフォーム側のアップグレード対応の保守にかかるコストの削減など、開発費の大幅な削減を期待できることがいちばんの理由ですね。 Unityにだってバグはあります。 低レイヤに詳しければ、アプリ開発しててバグに遭遇したとき、問題がアプリ側にあるのか、Unity側なのか、あるいは相性的なものなのか、判断できます。 低レイヤに詳しいと、証拠をそろえて改善方法を提案することも可能で、迅速な対応を期待できます。 単にUnity使ってゲームを作れますっていうだけだと、現場では一生下っ端で働きます...
by ISLe
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: VisualStudioの補完機能について
返信数: 2
閲覧数: 1315

Re: VisualStudioの補完機能について

「コードスニペット」で検索
by ISLe
10ヶ月前
フォーラム: C言語何でも質問掲示板
トピック: 2Dの衝突判定がキッチリと出来ない、、
返信数: 24
閲覧数: 5354

Re: 2Dの衝突判定がキッチリと出来ない、、

ズレるとめり込むといった現象は、当たり判定に複雑な前提条件を持ち込んだ末の条件漏れが原因で発生することがあります。 質問と一緒に提示されたコードからはそのようなニオイを感じます。 ループではキャラの周辺状況を取得するだけにして、あとから座標の補正をするようにすると、漏れにくくなります。 2D横スクロールアクションゲームの壁判定についての質問 RECT型を使ってのめり込み防止の実装について。 #ブロックひとつひとつに対して逐次補正する方法もあります。 #前者はスーパーマリオっぽく、後者はロックマンっぽい動きになります。 ループを回す範囲については、うちのブログの記事ですが… 【JavaSE】フ...
by ISLe
1年前
フォーラム: C言語何でも質問掲示板
トピック: DirectX9 デバイス消失の処理について
返信数: 3
閲覧数: 1122

Re: DirectX9 デバイス消失の処理について

ソースコードがないのでまったくの想像ですが、スレッドコンテキストが一致していないとか。

例えば、メッセージループを回しているところと、ウィンドウプロシージャの中はコンテキストが異なるので、デバイスの作成がメッセージループを回しているところにあって、ウィンドウプロシージャの中でResetを呼び出しているような場合、機能しません。

入門者向けの解説とかで、ウィンドウプロシージャの中でいろいろやってるものがありますけど、ある程度大きなプログラムになると確実にハマるので注意が必要です。
by ISLe
1年前
フォーラム: C言語何でも質問掲示板
トピック: コンソール上書き
返信数: 4
閲覧数: 1205

Re: コンソール上書き

Win32コンソールAPIというものを使うとコンソール上のテキストの読み書きやカーソルの操作ができます。
が、個人的にはncursesライブラリを使うことをお勧めします。

ncursesライブラリはLinux由来ですが、Windows用のものもあって、マルチプラットフォームに対応します。

ncursesライブラリを使ったプログラム例
http://isle.cocolog-nifty.com/blog/curses/index.html
by ISLe
1年前
フォーラム: C言語何でも質問掲示板
トピック: java すいません Hello world
返信数: 4
閲覧数: 1342

Re: java すいません Hello world

Javaは最近、セキュリティ上の問題から、カレントディレクトリのclassを無条件でロードしないようになりました。
正確には、デフォルトのクラスパスに.(カレントディレクトリ)を含まない仕様に変更されました。

カレントディレクトリにあるclassファイルをロードしたい場合、-cpオプションでクラスパスを明示してください。
java -cp . Hello
by ISLe
1年前
フォーラム: C言語何でも質問掲示板
トピック: glutで作ったソフトをwin10で実行した際に異常終了する問題を解決したい
返信数: 5
閲覧数: 1770

Re: glutで作ったソフトをwin10で実行した際に異常終了する問題を解決したい

ただ、個人的にglut関連のファイル(glut32.libとglut.h)をいじってたりしてはいないので、環境の違いは生じないように思います。 glutは、Visual Studio(あるいはWindows SDK)に含まれないので、そもそも環境に依存するものだと思います。 開発環境を更新したのに、(追加の)ライブラリを更新していないのであれば、不具合の原因はライブラリの互換性にあるのではないでしょうか。 #3に投稿されたコードにはglut関数が使用されていません。 OpenGL(gl)、glu、glut、wglの区別はできていますか。 こちらの環境では、wglDeleteContextを有...
by ISLe
1年前
フォーラム: C言語何でも質問掲示板
トピック: glutで作ったソフトをwin10で実行した際に異常終了する問題を解決したい
返信数: 5
閲覧数: 1770

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();...
by ISLe
1年前
フォーラム: C言語何でも質問掲示板
トピック: DxlibのFPSとリフレッシュレートについて
返信数: 5
閲覧数: 2765

Re: DxlibのFPSとリフレッシュレートについて

フルスクリーンモードでもカクつきますか? ウィンドウモードではWaitVSyncFlagをFALSEに設定しても、VSYNC同期が強制されます。 デスクトップがクラシックテーマであれば有効なのですが、Windows10ではクラシックテーマが廃止されました。 館のコードは、時間が余ったらウェイトを入れるだけで、時間が足らなかったとき(いわゆるコマ落ち)が考慮されていません。 リフレッシュレート60Hzで40FPSなら、コマ落ちするはずないじゃないかと思われるでしょう。 ところが、60分割のタイミングと40分割のタイミングを重ねてみると、待ち時間はバラバラになり、余裕がないときはコマ落ちが発生しま...
by ISLe
1年前
フォーラム: C言語何でも質問掲示板
トピック: キャラクター同士の衝突判定について
返信数: 3
閲覧数: 2074

Re: キャラクター同士の衝突判定について

率直に言って、条件が複雑すぎてコードを読む気になりません。

とりあえず、キャラ本体と、攻撃判定の矩形を分離すると、ずっとシンプルなコードになると思います。
まず当たり判定を行い、その結果をもって、条件分けすることで、さらにシンプルになると思います。

・攻撃判定内にキャラがいたら
※当たり判定自体はキャラ同士と同じようにできる
→攻撃してなかったら攻撃の開始処理
→攻撃している最中ならダメージ処理
といった具合に。
by ISLe
1年前
フォーラム: C言語何でも質問掲示板
トピック: DxlibのFPSとリフレッシュレートについて
返信数: 5
閲覧数: 2765

Re: DxlibのFPSとリフレッシュレートについて

リフレッシュレートが60Hzのとき、60を超える値をFPSに設定しても、実際のFPSは60で頭打ちになりません?

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