検索結果 2636 件

by ISLe
7年前
フォーラム: C言語何でも質問掲示板
トピック: DirectX11で深度バッファが機能しない
返信数: 5
閲覧数: 4848

Re: DirectX11で深度バッファが機能しない

toryu さんが書きました:2つの四角形ポリゴンを前後させてZ比較が行われているかどうかを検証するものです。
現状はZ座標をどれだけ動かしても前後が入れ替わりません。
それは、Zバッファの機能であって、ステンシルバッファの機能ではないと思うのですが。

深度バッファをステンシルバッファと混同していませんか?
by ISLe
7年前
フォーラム: C言語何でも質問掲示板
トピック: DirectX11で深度バッファが機能しない
返信数: 5
閲覧数: 4848

Re: DirectX11で深度バッファが機能しない

こちらの環境でビルドできないのであてずっぽうですが
深度バッファテクスチャに対して、Shader Resource Viewを生成する必要があるような気がします。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 文字入力
返信数: 3
閲覧数: 2129

Re: 文字入力

いちばん手間が掛からないのは
scanf("%c", &ch);

scanf(" %c", &ch);
/* %の前にスペース */
にすることじゃないかな。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: QTを使用して,リアルタイムに数字を表示したい
返信数: 3
閲覧数: 6241

Re: QTを使用して,リアルタイムに数字を表示したい

ラベルを継承とは
かなりレベルアップしてきましたね。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: QTを使用して,リアルタイムに数字を表示したい
返信数: 3
閲覧数: 6241

Re: QTを使用して,リアルタイムに数字を表示したい

pocket さんが書きました:何かアドバイスや解決策等があれば,ぜひ教えていただきたいです.
このような目的には
タイマーを用いてタイマーイベントのコールバックでコンポーネントを更新するのが王道かと思います。
#リアルタイムとは

Qtでタイマーを使う方法については
検索すればサンプルコードがすぐに見付かると思います。


最後にセットした数値しか表示されないのは
23行目でQtがGUIとして動き始めるからで
GUIというのはラベルに文字列をセットしたらすぐに表示されるというものではないです。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXでのUIの作成について
返信数: 1
閲覧数: 2335

Re: DirectXでのUIの作成について

座標変換済み頂点というのを使うと、二次元座標平面にそのままポリゴンを貼れます。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: OpenGLで3Dモデルが表示されない
返信数: 3
閲覧数: 2712

Re: OpenGLで3Dモデルが表示されない

xファイル関連では
そのままのスケールだと小さすぎて見えない
というのがよくあることだったような気がします。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: デバイスロストを故意に起こす方法
返信数: 10
閲覧数: 5672

Re: デバイスロストを故意に起こす方法

なかなかデバイスロストが起こらないので四苦八苦しています。 デバイスロストは他のプログラムがデスクトップを排他的に使用することで発生すると思います。 フルスクリーンで動作するゲームソフトとか。 Direct3Dのサンプルプログラムでも代用できるかと。 デバイスロストというのはデスクトップ画面の取り合いで発生します。 スワップチェーンとかのビデオメモリ内の見えない部分も含みますが。 Direct3D10からはデバイスロストがほとんど発生しない仕組みになったので、 その影響でDirect3D9でも発生しにくくなっているかもしれません。 やっと、エラー戻り値を確認できました。(深夜に起きた模様) ...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: MakeGraphで作った画像に透過色を指定したい
返信数: 8
閲覧数: 4995

Re: MakeGraphで作った画像に透過色を指定したい

前提として、MakeScreenは使わないで、ということでしょうか。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: OpenGLでポリゴンが表示されない
返信数: 2
閲覧数: 3456

Re: OpenGLでポリゴンが表示されない

裏画面に描いた内容を表画面に転送(あるいは入れ替える)glfwSwapBuffers関数を呼び出さないと表示されないと思います。
#リンク先には両方とも書いてあります。

あと、提示された内容だと、背景色と点以外の描画色が同じなので、正しく動いても見えないです。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: デバイスロストを故意に起こす方法
返信数: 10
閲覧数: 5672

Re: デバイスロストを故意に起こす方法

MSDNのIDirect3DDevice9::TestCooperativeLevelのページには IDirect3DDevice9::TestCooperativeLevelがD3DERR_DEVICELOSTを返したらIDirect3DDevice9::Resetを試行できる IDirect3DDevice9::Resetが成功したら必要なリソースを復元して通常の処理を再開できる と書いてあります。 IDirect3DDevice9::Resetに一度失敗すると、成功するまで IDirect3DDevice9::TestCooperativeLevelはD3DERR_DEVICENOTRE...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

自分の中での変化(ブレイクスルー)に気付くことそのものが滅多にない貴重な経験だと思います。
それをお手伝いできたことをとても嬉しく思います。

考え方の道筋を示すためにサンプルプログラムを書きましたが、
実装に関しては正解というものはなく、
わたし自身も日々勉強です。
回答することは日頃の経験や考えを改めてまとめる良い機会になりました。
お礼申し上げます。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

書き忘れてましたが、
No.32のレイヤーマップのサンプルプログラムのイメージリストを使う場面で、
今回は、
イメージリストに描画メソッドを用意するのではなく、
イメージリストからイメージを取得して、そのイメージで描画するという方法を使いました。

ここもあえてこんな形をとってみました。

このプログラムでは、イメージリストに登録したイメージ配列(vector)を参照していますが
ここでもやりたいように何でもできるよ、というメッセージを込めました。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

レイヤー状のマップのサンプルプログラムを作ってみました。 タイルマップの描画周りは、マップデータの形式は何でもかまわない、 ということを示すために、あえてテンプレートを使ってみました。 きわめて簡易な必要最小限のものですがステージ管理オブジェクトも入れてみました。 キャラを実装しててもしてなくてもこんなふうにイベントのテストができると どこからでもコードを書き始められるし、デバッグにも便利です。 理解したいなら、実際に動かして、コードの流れを追ってみてください。 実装重視の考え方をしていると、あっちこっちに飛ぶので、わけが分からないかもしれません。 でも、設計図だときれいに上から下に三角形を描...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

階層の概念を持ち込まずに、複数レイヤ分のマップデータを作れるでしょうか? 自由なマップデータの実装とはどんな感じですか。<vector>でしょうか。 階層の概念を持ち込まないのではなくて、インスタンスベースで考えましょうっていうことなんですけどね。 考えましょうってところは、構造化プログラミング的な抽象化だと思ってもらえれば。 自由ってのは、そのまんまの意味で自由ってことですよ。 マップデータは配列でもいいのですよ。自由ですから。 タイルマップが、マップデータが配列であることに依存する のは良くないという話です。 mobaさんは、 タイルマップをレイヤーにしたい レイヤーを配列で実装しよう ...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

階層の概念を持ち込まずに、複数レイヤ分のマップデータを作れるでしょうか? 自由なマップデータの実装とはどんな感じですか。<vector>でしょうか。 階層の概念を持ち込まないのではなくて、インスタンスベースで考えましょうっていうことなんですけどね。 考えましょうってところは、構造化プログラミング的な抽象化だと思ってもらえれば。 自由ってのは、そのまんまの意味で自由ってことですよ。 マップデータは配列でもいいのですよ。自由ですから。 タイルマップが、マップデータが配列であることに依存する のは良くないという話です。 依存関係逆転の原則(DIP) というのがヒットしました。 http://d.h...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

ゲームプログラムは、一般的なシステム開発とくらべるとオブジェクト同士の関係が複雑です。 場面ごとに異なるオブジェクト同士と連携する必要があります。 その関係性を管理オブジェクトへのインターフェースという形でカテゴリ分けすると開発効率が良くなります。 いちばんてっぺんにすべてのカテゴリのルーツとなるオブジェクトを設けます。 仮にGameContextと名付けます。 ここから各カテゴリへアクセスするためのインターフェースを取得するので GameContextにはそのためのメンバ関数を定義します。 カテゴリとはキャラクター管理だったりステージ管理だったりイベント管理だったりです。 class Cat...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

わたしはImageを描画する方法だけを最初に決めました。 同じようにタイルマップをレイヤー状にしたり、それにアクセスする方法をクラスに込めることができます。 そのように考えることがオブジェクト指向に近づくことだと思います。 すみません、もう少し詳しく教えていただけませんか。 Imageの話からは帰納できず、どういう趣旨のお話なのか分かりませんでした。 TilemapとImageの関係と同じですよ。 複数レイヤーのタイルマップを扱いたいのなら、 Imageから派生してLayeredTilemapを作り、描画に関してImageと同様に扱えるようにする。 複数のタイルマップに対してどういう操作がで...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

ダウンキャストが危険をともなうというのは疑う余地のないことだと思いますが それと同じように ステージ全体を管理する、上位に位置するオブジェクトが マップという、ステージの一部を構成する、下位に位置するオブジェクトの仕様に合わせてはいけないのです。 dungeon.hppでインターフェイス用のクラスを用意して、それをアップキャストしたクラスのインスタンスの参照を渡せばいいのですね。 dungeon.cppでは、マップの情報を書きかえるのに、どうしても[現在のマップのTileIndexer]が必要だと思っていました。 でもdungeon.cpp側から直接書きかえる必要はなく、dungeon.cpp...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: vectorについてです
返信数: 2
閲覧数: 1593

Re: vectorについてです

assignの2つめの引数は、最後の要素位置ではなく、最後の要素を超える最初の位置、です。 C++言語の規格において保証されるのは 配列要素のポインタの大小比較は、同一の配列の要素同士に限り 最初の要素から、最後の要素をひとつ越えた位置までの範囲 と決められています。 int ar[] = {1, 2, 3, 4, 5, 6, 7}; であれば、&ar[0]~&ar[7]までに限ってポインタの大小比較が期待通り動作するということです。 &ar[7]は使えるがar[7]は使えない(領域外アクセスになる)という点に注意。 以上の仕様により、vectorのイテレータが終点を判定するために、最終要素の...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 【C++】ゲームでの画面遷移の効率の良い方法が知りたい
返信数: 5
閲覧数: 3747

Re: 【C++】ゲームでの画面遷移の効率の良い方法が知りたい

もしくは私の設計が根本的に良くないというか 悪い設計というのであれば より良い設計を教えて下さい。 提示されたコードだとGameがSceneBaseの派生をすべて知っていないといけないわけで、 それだと シーンが増えたり減ったりとかシーンの変更があったりするたびに フルビルド(に近いこと)が起こって効率が悪いと思います。 SceneBaseの派生が、次のシーンがあればそれを生成して返すような仕組みにすれば GameはSceneBaseの派生まで知らなくて済みます。 シーンは、シーンごとに独立して、関連のあるシーンの影響しか受けなくなります。 class Game { static Scene...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: Box2Dでプログラムから垂直同期をとってループを回すと重力が弱くなってしまう
返信数: 4
閲覧数: 2189

Re: Box2Dでプログラムから垂直同期をとってループを回すと重力が弱くなってしまう

何もしないと、1m1ピクセルなので
1mあたり何ピクセルにしたいのか決めて
Box2Dに座標やサイズをセットするときはその数値で割って
画面に表示するときはその数値を掛ける
というふうにするのだそうです。

重力は加速度なので精度の問題が大きそうに感じたので
一定以上大きくならないというのはそのへんかなと思いました。

フルスピードで回すとどんどん強くなるというのは謎ですけど。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

視点が違うという点では、 そもそも、想定しているマップデータの仕様が違うと思いました。 mobaさんは、1マス分のマップデータ=地形イメージの番号、という考え方なのでしょう。 わたしは、1マス分のデータにいろいろな情報を詰め込むことを考えてました。 例えば、1マス分のデータが16ビットだとすると、 10ビットで1024種類もの地形を表現できます。 すると残り6ビットも自由に使えます。 そのうちの1ビットを通行できるかできないかのフラグにします。 地形とフラグを分けるメリットは… 素通りできる壁とできない壁でも、同一の地形とすることができます(そうしない自由もある)。 地形として別物にすると、画...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

視点が違うというのはあるかもしれませんが、前にも書いた通り、決められるところから決めているだけです。 No.6で、オブジェクト指向はインスタンスベースで、と書きましたが、それはどういうことかというと 使うひとが使いたいときに実体化する、ということです。 アクセスする手段は使うひとがその都度決める アクセスして欲しくないところはあらかじめアクセスできないようにしておく それがクラスです。 mobaさんはずっと、どうやってアクセスするか、ということを第一に考えていらっしゃるようです。 オブジェクトの中身を決めかねていることで反対から攻めようという気持ちが働いているのでしょうか。 そこを最初に決めて...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: qt creator における構造体のコピーについて
返信数: 2
閲覧数: 2655

Re: qt creator における構造体のコピーについて

main.cppの8行目
代入になっていないですが、写し間違いですか?
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

また僕は誤解している気がしますが、 関係性の前に、どのようにクラスを分けるかが(僕の中で)問題になっています。 ISLeさんの例について。ImageやTilemapは何か、タイル情報は何が持っているかなど、 オブジェクト同士のやり取りの前に、そのオブジェクトが何かを分かっていません。 わたしが、どんなものか、を考えるときは既存のライブラリを参考にします。 引数とか、まあ、いろいろ、ですね。 で、そのあたりはプラットフォームの都合で決まることがほとんどで、 自分の考えを押し通せるところではないので、 ぼんやりとしか考えません。 経験や知識が活きるところではあるかもしれませんが。 No.12で、...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

共有するインスンタンスを渡す例を上げたかったです。 例えば、Dungeon.cppでは、インスタンスlayer[0]->SetChipID(x,y)や関数MapData::IsInsideMap(x,y)を使いたいです。 これらの宣言をexternで渡すのはどうでしょうか。 わたしのサンプルコードでいうと、そのあたりの処理は、TileIndexerがアクセスする大元のマップデータの範疇です。 なので、タイルマップとは無関係なのです。 無関係なので、【TileIndexerというインターフェースをタイルマップに渡す以外には】接点を持ちません。 やはり、そもそもいらないよね、というお返事になって...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

どのくらい砕いたら良いか悩みましたがとりあえずのサンプルコードです。 注目すべき点はコメントで書いてあります。 細かい不備はありますが、大きなくくりで見てください。 image.hpp #include <memory> // Imageは矩形イメージ描画の基となる抽象クラス class Image { public: virtual void Draw(int xofs, int yofs) = 0; }; // 派生クラスは作成関数を公開し実装は非公開 std::shared_ptr<Image> MakeColorImage(int w, int h, int color); std::...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 自作ゲームが遅すぎます
返信数: 2
閲覧数: 2018

Re: 自作ゲームが遅すぎます

とりあえず思い付く点は
見えない部分は描画しない
ということでしょうか。

既存の箱モデルを描画するのではなく、
必要最小限のポリゴンをプログラムで生成するようにするのが現時点ではもっとも効果的であると思います。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

ちなみにオートタイルの実装は、
TileIndexerクラスを派生したクラス次第で

タイル番号を要求されたときにリアルタイムにタイル番号を差し替えるとか

Tilemapのスクロールと連動して(連動の仕方は別件)
新たに画面に見えるようになった範囲のタイルを処理してバッファに蓄えておいて使うとか

いろいろ考えられます。
どれを選ぶにしても、既存には影響を与えずあとから好きに実装できます。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

機能としては、例えばツクールのオートタイルを実現できるということでしょうか。 いいえ、違います。 フラクタル図形で、一部を抜き出すとそこにまた同じ図形があるように、 タイルマップのタイルに、また別のタイルマップがある状態が作れる ということです。 オブジェクト指向でもっとも重要なのは、インスタンス、です。 クラス定義を見ているだけでは、再帰性のある構造の理解は難しいでしょう。 TileMapクラスはImageクラスを継承したのに、Imageクラスのリストを持っているというのが分かりませんでした。 また、Imageがどのように書かれているか想像できませんでした。 TilemapクラスがImag...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

○追加質問(トピックを分けるべき場面だったならすみません) C++ではグローバル変数を使うべきではないと何度か耳にしました。このような形でグローバル変数を使うのも、C++ではNGなのでしょうか。他の場面でグローバル変数を使う例は思いつかないのですが。 グローバル変数の危険性は知っていますが、 「 C++では グローバル変数を使うべきではない」 というのをわたしは知りません。 グローバル変数は、それが必要な場面では使って良い・使うべきでしょう。 ただし、そういう場面は極めて限られます。 mobaさんがこのような形とおっしゃっている例は、使うべき場面ではありません。 ここはスコープを翻訳単位に制...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

PCの恵まれた環境でしかプログラミングしたことのないひとのトンデモ発言は珍しくないことですが
シングルトンの解釈も同じところからきている気がします。

(特に組み込み系に多いですが)
ハードウェア的な外部リソースにアクセスするのに、副作用がある場合も少なくないです。
そんなとき、ハードウェアのウォームアップを待ってインスタンスを一回だけ生成するわけです。
そもそもシングルトンは中の人が選択するものであって、
利用する人が同じインスタンスが返ってくることを期待するものではないと思うんですよね。

クラスの設計がシングルトンかどうかで左右されることは一切あり得ないはずなんですけどね。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: [C++]タイルマップのクラス設計を見てほしいです
返信数: 36
閲覧数: 18417

Re: [C++]タイルマップのクラス設計を見てほしいです

namespaceは名前の衝突を避けるためのものなので、オブジェクト指向とは直接の関係はありません。 アクセス制御がなければカプセル化もないですからね。 ちなみに名前の衝突がない場所であればusingを使って記述を省略できます。 まとまりがなくなってきたからとりあえずnamespaceで囲ってみた、というふうにしか見えないです。 オブジェクト指向を目指すなら、インスタンスベースで考えましょう。 レイヤー数が3で固定になっているのは、必要に応じて書き換えて使おうということでしょうか。 そういう考え方をしているとクラスの設計はできないですよ。 クラス(に限らずライブラリ)はコードには二度と手を加え...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: ↓下記のサイトはCocos2D-Xを利用して流体で海を作成していて 自分はDXライブラリで流体を描画したいのですが、いろ
返信数: 7
閲覧数: 3642

Re: ↓下記のサイトはCocos2D-Xを利用して流体で海を作成していて 自分はDXライブラリで流体を描画したいのです

具体的にどうやって解決したか書いていただくのがこの掲示板のルールなのですが。 No.6に足りないのは、 b2ParticleSystem::CreateParticleGroup でグループを登録する処理ですね。 パーティクルシステムには複数のグループを登録できるので、 b2ParticleGroup::GetBufferIndex でインデックス(=パーティクルシステム全体でのバッファ先頭からのオフセット)を得て、 そのグループに対してのバッファの先頭を求めることができます。 リンク先の記事のコードを見れば、変数seaGroupに代入している箇所があります。 seaGroup自体の宣言がなく...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: ↓下記のサイトはCocos2D-Xを利用して流体で海を作成していて 自分はDXライブラリで流体を描画したいのですが、いろ
返信数: 7
閲覧数: 3642

Re: ↓下記のサイトはCocos2D-Xを利用して流体で海を作成していて 自分はDXライブラリで流体を描画したいのです

流体かどうかではなくて、(パーティクル)グループの扱いの話ですよね。 リンク先のHelloWorld::updateの記述に合わせると //座標バッファ b2Vec2* vecList = particleSystem->GetPositionBuffer() + seaGroup->GetBufferIndex(); for(int i = 0; i < seaGroup->GetParticleCount(); i++, vecList++) { b2Vec2 pos = *vecList; // ←要素毎のパーティクルの座標 } あるいは //座標バッファ b2Vec2* vecList...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: ↓下記のサイトはCocos2D-Xを利用して流体で海を作成していて 自分はDXライブラリで流体を描画したいのですが、いろ
返信数: 7
閲覧数: 3642

Re: ↓下記のサイトはCocos2D-Xを利用して流体で海を作成していて 自分はDXライブラリで流体を描画したいのです

座標バッファを使ってまとめて連続で描画したい、ということでしたら
件のページのHelloWorld::update関数の22~23行あたりのことをまとめて描画したいタイミングでやれば良いです。

15行目でvecListに取得しているのが座標バッファの先頭要素へのポインタ
座標バッファの各要素はb2Vec2型。
具体的な使い方は22行目を見れば分かるかと。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: ↓下記のサイトはCocos2D-Xを利用して流体で海を作成していて 自分はDXライブラリで流体を描画したいのですが、いろ
返信数: 7
閲覧数: 3642

Re: ↓下記のサイトはCocos2D-Xを利用して流体で海を作成していて 自分はDXライブラリで流体を描画したいのです

Box2Dの描画は「図形」単位なので剛体の表示ができたのなら同じ手順でできるはずなのですが。

件のページでは
HelloWorld::createSeaParticleGroup関数の41~43行で、スプライト作成してユーザーデータに参照を保存して
HelloWorld::update関数の22~23行で、保存しておいた参照使ってスプライトを操作してます。

DXライブラリでは、適当な描画クラス作って、上記のスプライトと同じようにして
あと適当なタイミングでまとめて描画すれば良いです。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリを使おうとしたら・・・
返信数: 10
閲覧数: 13805

Re: DXライブラリを使おうとしたら・・・

古いDXライブラリとVS2015の組み合わせで発生する症状です。
新しいDXライブラリだとVS2015でも正常にリンクできますよ。

脆弱性もあるので新しいDXライブラリを使いましょう。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: DirextX9で音を鳴らす
返信数: 4
閲覧数: 3384

Re: DirextX9で音を鳴らす

DirectMusicの替わりになるのはDirectShowだと思います。

DirectMusicは廃止されたので最新の環境ではもはや使えません。
#過去の互換性のために一部ランタイムだけがサポートされています。

こちらでは「XAudio2」や「DirectShow」で検索すると再生プログラムのコードサンプルが多数ヒットするのですが。
再生までの流れはほぼ決まった手順なので、サンプルコードを見付けたらそのまま真似してみるのが良いと思います。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: beep音を鳴らせません・・・
返信数: 26
閲覧数: 29900

Re: beep音を鳴らせません・・・

'\a'を標準出力するとふつうは音が鳴るだけだけどOS側の設定次第で画面の点滅になる場合もあるってことですよ。
プログラムを作る人が画面を点滅させなきゃとか考えなくて済むのです。
その代わり、警告を発する=音を出す、ではないということが考慮されていないといけません。

Windows8の場合「コントロールパネル」の「コンピュータの簡単操作」の中に
「サウンドを視覚的な通知に置き換える設定」があると思います。
そこで画面(の一部)を点滅させる機能を有効にできます。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: beep音を鳴らせません・・・
返信数: 26
閲覧数: 29900

Re: beep音を鳴らせません・・・

'\a'を標準出力すると警告を発するのですが、これは音に限りません。
サウンドが鳴らない環境では画面が点滅するとかでも良いのです。
聴覚に障害がある方がそのように設定して使っているかもしれないので
サウンドファイルを再生するだけでは聴覚に障害がある方は警告を知る手段を奪われてしまいます。

使う場面が少なくても、たくさんの人が考えて採用したものだから
そこにはいろんな意味が込められているかもしれません。
深く追及することはけっして悪いことではないと思います。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: DirextX9で音を鳴らす
返信数: 4
閲覧数: 3384

Re: DirextX9で音を鳴らす

roxas710 さんが書きました:一番最新で使うといい方法を教えてください。
サウンドエフェクト的な使い方なら
XAudio2
プレイヤー的な使い方なら
DirectShow
でしょうか。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: beep音を鳴らせません・・・
返信数: 26
閲覧数: 29900

Re: beep音を鳴らせません・・・

Field Bloom さんが書きました:Windows8.1です
ウチはWindows10なのですが、ウィンドウズ標準のエラー音が鳴りました。
サウンドの設定でシステムエラー音を「なし」にするとウィンドウズ標準の警告音が鳴ります。
ちなみにエラーダイアログとか警告ダイアログとかで鳴るサウンドと同じです。

エラーも警告もサウンドを「なし」にするとビープ音が鳴るという噂をむかし聞いた覚えがあったのですが
いま(Windows10で)試したら何も鳴りませんでした。
#NT系より前だったかも。環境依存もあるだろうか。

(追記)
Visual Studio 2015 Communityとcygwin gcc 4.9.3で確認しました。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 龍神録サンプルにリプレイを追加
返信数: 12
閲覧数: 6539

Re: 龍神録サンプルにリプレイを追加

東方はプレイしたことがないのですが 会話シーンをスキップしたりするのもリプレイに記録されるのでしょうか。 だとしたら、一気にクリアしてあとから会話シーンをゆっくり見るといった使い方はできないのですね。 No.7のサンプルコードは、No.4で書いた、加工しておくと楽、というのを示すのが重要な点で それがリプレイの実装にも応用が利くということを表しています。 周辺機器からプレイヤーの入力を読み取る前半と、実際にゲーム内に反映させる後半をきっちり分けておけば リプレイの実装はそのあいだに挟むだけでよく、取り外しも簡単なのです。 例えばzlibの関数を使ってリプレイデータをリアルタイムに圧縮したりして...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 龍神録サンプルにリプレイを追加
返信数: 12
閲覧数: 6539

Re: 龍神録サンプルにリプレイを追加

龍神録の館のサンプルの話ではなかったのですか。 No.7のサンプルは256フレームを超えると同じ入力データを重複して記録するというだけでバグる(再生できなくなる)わけではありません。 カウントデータのサイズを32ビットにすれば、2年くらい触らなくても重複しないようになりますよ。 動かしてみれば512バイトのデータだとどういう動きがどのくらいの長さ記録再生できるかってのが感覚的に分かると思うんですよ。 高橋名人並みにボタンを連打するのでなければけっこう長い時間記録できると感じてもらえる気がしたんですけどね。 最近はシューティングゲームでもボタンを連打するようなのは珍しくなってますし。 そのままコ...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 龍神録サンプルにリプレイを追加
返信数: 12
閲覧数: 6539

Re: 龍神録サンプルにリプレイを追加

No.7のコードですが

70行目は無いほうが、再生が終わった後に自由に動かせるので使い勝手が良い
#なので23行目で設定してる初期モードは再生モードのほうが良い

256フレームを特別扱いするのではなく、全体に1減らして記録するほうがコードがシンプルになる

というのにあとから気付きました。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 龍神録サンプルにリプレイを追加
返信数: 12
閲覧数: 6539

Re: 龍神録サンプルにリプレイを追加

サンプルプログラム作ってみました。 カーソルキーで箱が上下左右に動く操作の記録と再生をします。 位置はリセットしないので箱を元の場所に戻さないと再生するたびにズレていきます。 入力データが変化したとき記録します。 記録は1要素あたり、フレーム数と入力データを1バイトずつにしてます。 なので入力データが変化せず256フレームを超える場合も記録します。 ゲームで(60FPSで)4秒以上操作しないというのはレアケースと思うので無駄は少ないはずです。 #include "DxLib.h" #include <stdint.h> const int MODE_REC = 0; const int MOD...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: カーソルで画面内のボタンをクリックさせたい
返信数: 5
閲覧数: 7427

Re: カーソルで画面内のボタンをクリックさせたい

コールバックは、コールバック関数を呼び出してもらう、というのは利用者側の視点で コールバック関数を呼び出す側からしたら、ふつうに関数を呼び出すだけのことです。 なにも特別な機能は使いません。 ボタンを管理する仕組みを作るというのは、利用者視点ではなく提供者視点でプログラムを作ることなので。 今思ったんですけどそれぞれのボタンの大きさを構造体配列にまとめて当たり判定関数に渡してやれば 呼び出し側では、当たり判定関数の呼び出しの一行だけで済むのでこれでも良いのでしょうか 構造体にはボタンのフォーカス状態やらのフラグも含めておいて おっしゃるように構造体配列の各要素ごとにマウスカーソル座標との重なり...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: カーソルで画面内のボタンをクリックさせたい
返信数: 5
閲覧数: 7427

Re: カーソルで画面内のボタンをクリックさせたい

GUIのシステムで、イベントプロシージャとかリスナーとかいうものをご存知ですか? 「コールバック」がヒントになると思います。 メニューボタンマネージャを作って、メニューボタンを登録して、 メニューボタンがどう振る舞うかは、メニューボタンマネージャが教えてやる仕組みです。 メニューボタンの振る舞いとは、例えば マウスカーソルが上にあるかどうかで見た目が変わるとか、 マウスボタンが押されたときに見た目が変わるとか、 マウスボタンでクリックしたら何かが起きるとか、 です。 メニューボタンマネージャとメニューボタンが分かれていると何が良いかというと もしキーボードでメニューを選択できるようにしたくなっ...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: visual studio 2010年 入手について
返信数: 4
閲覧数: 8381

Re: visual studio 2010年 入手について

セキュリティ強化版の関数でないとエラーになるのは、バージョンが上がったからというわけでなくて、Security Development Lifecycle(SDL)チェックという機能が追加されたからなので、SDLチェックを無効にすれば警告に戻ります。

そもそもセキュリティ強化版の関数を使いたいわけでないのなら
_CRT_SECURE_NO_WARNINGS
を定義しましょう。
ユーザー共通プロパティシートを使えばたった一回の操作で済みます。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 龍神録サンプルにリプレイを追加
返信数: 12
閲覧数: 6539

Re: 龍神録サンプルにリプレイを追加

ユーザー操作がDXライブラリのGetJoypadInputStateが返す値のように加工されていれば楽なんですけどね。
XORを取れば変化したかどうか簡単に判定できますし。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: MFC:CDialogExについて
返信数: 4
閲覧数: 4587

Re: MFC:CDialogExについて

CDialogEx内に処理が追加されるというのは勘違いですね。 既に指摘されているとおり2行目は基底クラスの初期化 5~7行目はメンバの初期化 各行それぞれ異なる対象を個別に初期化しています。 メンバの宣言はヘッダファイルで行うのが一般的です。 ヘッダファイルはそのダイアログの実装を行うソースファイルでインクルードするのはもちろん、そのダイアログにアクセスする他のソースファイルでもインクルードします。 ヘッダファイルを書き換えればそれらソースファイルが再びコンパイルされ時間を消費します。 ちなみに非静的メンバを宣言時に初期化できるようになったのは、規格ではC++11以降、VisualStudi...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: (FBX)「fatal error LNK1120: 外部参照 8 が未解決です」というエラーが出てしまいます
返信数: 8
閲覧数: 4725

Re: (FBX)「fatal error LNK1120: 外部参照 8 が未解決です」というエラーが出てしまいます

VC++2010Expressをふつうにインストールしただけなら、32ビット版のバイナリしか扱えないのでは。
x64は64ビット版なので。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 関数アドレステーブルから各関数アドレスを取り出し、関数アドレス変数に代入する。
返信数: 4
閲覧数: 2670

Re: 関数アドレステーブルから各関数アドレスを取り出し、関数アドレス変数に代入する。

typedefを使うと難しく考えなくて済むと思います。

typedef int (*BIOS_00_PTR) (int);
typedef int (*BIOS_01_PTR) (int,int);
BIOS_00_PTR BIOS_00;
BIOS_01_PTR BIOS_01;
(略)
BIOS_00 = (BIOS_00_PTR)BIOS_Table[0];
BIOS_01 = (BIOS_01_PTR)BIOS_Table[1];
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: テンプレートを使ったゲーム開発
返信数: 3
閲覧数: 2989

Re: テンプレートを使ったゲーム開発

#もう解決になってた。 メタな使い方だと容量とかコンパイル時間とか予想外の状況になったりするので多用はしないですね。 スケジュール大事。 インターフェースの継承だとトップダウンオンリーですが テンプレートを使うとトップダウンとボトムアップを組み合わせる自由度が上がります。 #include <iostream> #include <algorithm> using namespace std; struct Base { virtual void Update() = 0; }; struct ClassA : public Base { int index; ClassA(int i) : ...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 【DirectX】別環境におけるビルボードのサイズが変わる現象について
返信数: 4
閲覧数: 2265

Re: 【DirectX】別環境におけるビルボードのサイズが変わる現象について

環境によって(特にミップマップテクスチャの場合)テクスチャサイズは2の累乗で作成されます。 画像のサイズが2の累乗でなく、 D3DXCreateTextureFromFileExでサイズを指定しているため、 画像サイズとテクスチャサイズの差がズレとなって表れていると思われます。 D3DXCreateTextureFromFileExで 1. 画像サイズを指定しない 2. ミップマップレベルを1にする としてみてください。 1. テクスチャが2の累乗サイズで作成される場合、自動的にテクスチャサイズに合わせて画像が伸長されます。 フィルタ指定はそのためのものです。 テクスチャサイズと画像サイズが一...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: DirectX9で画像を表示できません
返信数: 3
閲覧数: 1885

Re: DirectX9で画像を表示できません

画像を読み込んで作成したテクスチャはpTextureなのに、pSrcTextureで描画しようとしています。

ビューポートの設定に使っているd3dpp.BackBufferWidth,d3dpp.BackBufferHeightには値が入っていない(ウィンドウモードでデバイス作成するとき使用されない)のでデバイス作成後に改めて取得しなければいけません。

こちらの実験ではその2点を修正すると表示されました。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: ポリゴンを使用した画像の描画について
返信数: 3
閲覧数: 2317

Re: ポリゴンを使用した画像の描画について

勘ですけど、VERTEX3Dのnormメンバ(法線)が設定されてないのが原因では?
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: SetDrawMode( DX_DRAWMODE_NEAREST );が機能しない
返信数: 4
閲覧数: 3606

Re: SetDrawMode( DX_DRAWMODE_NEAREST );が機能しない

具体的にはドット絵のゲームでユーザーにウインドウのサイズを切り替えられるようにして、 2倍拡大になったときにドット絵はニアレストネイバー法で、UIなどはバイリニア法にしたいということです。 オフスクリーンをアルファチャンネル付きで、 >オフスクリーンに等倍で描画して、 >オフスクリーンを表示用画面に拡縮で描画する を必要なだけ繰り返せばできます。 あとから描画したほうが手前(上)に表示されます。 アルファチャンネル付きオフスクリーンをバイリニアで描画するとき乗算済みアルファブレンドモードで描画する必要があります。 #include "DxLib.h" int WINAPI WinMain(H...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 初めからできません・・・
返信数: 6
閲覧数: 3772

Re: 初めからできません・・・

先日別トピックの検証したときに、VC++2015で古いDXライブラリを使ったら標準ライブラリのリンクエラーが大量に発生しました。
そのリンクエラーは、DXライブラリを新しいものに差し替えると出なくなります。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: SetDrawMode( DX_DRAWMODE_NEAREST );が機能しない
返信数: 4
閲覧数: 3606

Re: SetDrawMode( DX_DRAWMODE_NEAREST );が機能しない

もともとSetWindowSizeExtendRateで拡縮する際にかかるフィルタは環境に依存するようです。 こちらでは、提示されたコードは、ピクセルがくっきりはっきりニアレストで描画されます(Ver3.15e)。 以下のように、 オフスクリーンに等倍で描画して、 オフスクリーンを表示用画面に拡縮で描画する ようにすると環境依存しません。 #include "DxLib.h" int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { SetGraphMode(640*2, 480*2, 32); ChangeWindowMode(TRUE);...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: MFC 関連付けされたファイルを起動中のアプリで開く方法
返信数: 4
閲覧数: 3069

Re: MFC 関連付けされたファイルを起動中のアプリで開く方法

DDEのopenコマンドを発行するように関連付けすれば
プログラムはそのままでご希望通りの動作をするようになるという話を見かけました。
本当かどうかは分かりませんが。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 【マップ&Ev】複数の処理を同時にこなすには
返信数: 11
閲覧数: 5945

Re: 【マップ&Ev】複数の処理を同時にこなすには

> ISLeさん すみません、どういう文脈で書いてくださったのか分かりません… そして必須のOSについて書いていなくてごめんなさい。Vistaなので実行できませんでした。 仮説を立てたのですが、もし、イベントコマンドの「ウェイト」が入る度に、 イベントの処理位置を覚えておいて、次のフレームでまた戻ってくるなら説明がつきます。 ですがソースを直接書き込むプログラミング部分ではそうもいかないと思います。 この仮説をそのままかつネイティブに実装できる方法を紹介しました。 いままでの常識は常識でなくなります。 最新であるVisual Studio 2015 Update 1で(/awaitオプション...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 【マップ&Ev】複数の処理を同時にこなすには
返信数: 11
閲覧数: 5945

Re: 【マップ&Ev】複数の処理を同時にこなすには

つい先日Visual Studio 2015のUpdate 1が正式リリースされました。 そのリリースノートでアピールされていたC++のコルーチンを使ったコード書いてみました。 #現時点でこの機能は試験的な(experimental)実装です。 #include "DxLib.h" #include <experimental/generator> class Player1 { int x, counter; public: Player1() { x = 0; } auto update() { for (;;) { // 無限ループ for (counter = 0; counter <...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: intがあるのとないのでどう違う
返信数: 9
閲覧数: 4194

Re: intがあるのとないのでどう違う

for文 - Wikipediaによると
古いC++では暗黙のブロックはなかったため、(中略)コンパイルエラーとなった。
だそうです。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 課題なのですが分かりません。助けてください。
返信数: 10
閲覧数: 4325

Re: 課題なのですが分かりません。助けてください。

問1は代入と書いてあるので、初期化だと不正解になったりしないのかな。
配列dに関する文言を見るに、出題者が区別できていないような気はするけれど。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: sqlite3をDxLibのプログラムに組み込めない
返信数: 17
閲覧数: 7271

Re: sqlite3をDxLibのプログラムに組み込めない

正しく読み取れたとしても、最後に余分に不正なレコードを書き込みむコードになっていますよ。 ファイルがカンマ区切りだと、そもそもすべてのフィールドを正しく読み取れません。 2レコード目を読み取る前にfailフラグでbreakしますが 1レコード目で読み取れなかったフィールドは不正な値が書き出されます。 #実験を進めたところ、カンマ区切りでもカンマの前後に空白文字があると無限ループにならない場合がありました。 fstreamで読み取るファイル(Item.csv)はカンマ区切りではなく、空白文字区切りでなければならない。 breakの位置は読み取りの後でなければならない。 while(1){ ifs...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の入れ替え方
返信数: 7
閲覧数: 3720

Re: 配列の入れ替え方

別の方面から攻めてみました void irekae(int x, int *y) { int i; for(i = 1; i < x; i += 2) { y[i-1] ^= y[i] ^= y[i-1] ^= y[i]; } } これはsequence pointの間でy[i-1]が複数回書き換えられているのでundefined behaviorであり、Wandboxで正常に動作しませんでした。 http://melpon.org/wandbox/permlink/XPGN64Gk9hbKCxyT 以下、 N1256 より引用 2 If a ‘‘shall’’ or ‘‘shall not...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: sqlite3をDxLibのプログラムに組み込めない
返信数: 17
閲覧数: 7271

Re: sqlite3をDxLibのプログラムに組み込めない

Item.csvというファイル名からするとカンマ区切りのデータなのでしょうか。
fstreamで読み取るなら空白文字で区切る必要があります。

(VC++2015で)実験してみたらカンマ区切りだとeofにもfailにもならず延々とループしました。


eofはアクセスした際にフラグがセットされるので読み取り操作後でなければいけません。

if (!ifs) break;
と書くとeofとfailのどちらか一方でも真になればbreakします。
特に区別する必要がなければこちらの書き方をお勧めします。
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: ネットワークの基礎の質問
返信数: 6
閲覧数: 3916

Re: ネットワークの基礎の質問

ではyahooメールなどのログイン後の画面とかはどうなのでしょう?常に通信しておかないとセッションが切れるということは、ログイン後の画面を見てる場合は常に通信している状態なんでしょうか? サーバーがランダム生成したIDを発行して、クライアントはクッキーに保存、以降はクッキーに保存したIDを使ってサーバーにアクセス という方法でセッションを管理するのが一般的な手法だと思います。 セッション切れはクライアントがアクセスした時点で知ることになります。 最近はajax技術を使って動的にページを作るのも一般的で、ページ(の一部)をスクロールなどすると必要に応じて新規に表れる部分をサーバーに要求するよう...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の入れ替え方
返信数: 7
閲覧数: 3720

Re: 配列の入れ替え方

別の方面から攻めてみました

コード:

void irekae(int x, int *y)
{
	int i;
	for(i = 1; i < x; i += 2) {
		y[i-1] ^= y[i] ^= y[i-1] ^= y[i];
	}
}
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリ 画面のある一部だけ色を変えたい
返信数: 6
閲覧数: 4116

Re: DXライブラリ 画面のある一部だけ色を変えたい

Windows 10 Pro Intel Core 2 Duo E6850 (3GHz x2) GeForce GTS 250 といううちの環境だと 【DrawBoxで(100, 50)-(200, 100)の領域を白塗り】→ 約0.18マイクロ秒 【(100×50)のBMP画像をDrawGraphで(100, 50)に描画】→ 約0.14マイクロ秒 ですね。 VC++2015でコンパイルオプションなしの場合 ちなみに 【DrawBoxで(100, 50)-(200, 100)の領域を白塗り】で毎回GetColor呼び出していると約0.20マイクロ秒 でした。 #GetColor超遅い わたし...
by ISLe
8年前
フォーラム: C言語何でも質問掲示板
トピック: javaについての質問[JavaFX]
返信数: 4
閲覧数: 3172

Re: javaについての質問[JavaFX]

window.fxmlの11行目の関数名が間違ってませんか?

エラー文続き の1行目に
"buttonAction" is not defined (buttonActionは定義されていない)
と書いてあります。
by ISLe
9年前
フォーラム: C言語何でも質問掲示板
トピック: 頂点バッファからテクスチャ貼り付けまでの流れがわからない
返信数: 6
閲覧数: 3576

Re: 頂点バッファからテクスチャ貼り付けまでの流れがわからない

ナギサ さんが書きました:では、DXライブラリ等でバッチ描画とは銘打たれてない描画はその、最適化されていない描画ということでいいんでしょうか?
特にバッチ描画と銘打たれていなければバッチ描画ではないと考えて良いと思います
という回答になります。

バッチ描画ではないということが、最適化されていないということにはなりません。
バッチ描画で命令の『発行数』を減らしても、描画処理全体で最適となるかどうかは状況に依るからです。

状況に応じて選択できることが重要になるため、命令はシンプルなほうが使い勝手が良いと言えます。
by ISLe
9年前
フォーラム: C言語何でも質問掲示板
トピック: 頂点バッファからテクスチャ貼り付けまでの流れがわからない
返信数: 6
閲覧数: 3576

Re: 頂点バッファからテクスチャ貼り付けまでの流れがわからない

命令を発行した順そのままに実行されることをバッチ処理と呼びます。 コンピュータ用語としては一般的なもので、3D描画に限りません。 まとまってるのはSetTextureのコールだけなのですが、かといって他にまとめられそうな情報は IDirect3DVertexBuffer9の中に頂点をいっぱい入れるくらいなものなので・・(しかもそうすると繋がっていない頂点も出てくるのでD3DPT_TRIANGLESTRIPではなくなるような) 『縮退ポリゴン』あるいは『縮退三角形』を調べてみてください。 透明度を持つテクスチャのグループはグループの中でZソートは出来ても、他のグループのテクスチャとZソートできな...
by ISLe
9年前
フォーラム: C言語何でも質問掲示板
トピック: 頂点バッファからテクスチャ貼り付けまでの流れがわからない
返信数: 6
閲覧数: 3576

Re: 頂点バッファからテクスチャ貼り付けまでの流れがわからない

思い浮かぶのは 「直前にSetTextureしたテクスチャが、直後にSetStreamSourceもしくはDrawPrimitiveした頂点バッファに使用される」 というものなんですが、実際そうなんでしょうか? そうです。 そうだとしたら、ゲーム中画像を表示したいときに、a.pngを描画→b.pngを描画→a.pngを描画といった時に無駄が出るように思えるんですが、実際のゲーム開発ではそんなことをやっているのでしょうか? また、バッチ描画と関連があるものでしょうか? テクスチャの切り替えが最小になるように最適化することで描画速度を上げます。 複数の画像を1枚のテクスチャにまとめたり、同じテク...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: クライアント領域の立体枠の描画方法について
返信数: 4
閲覧数: 2415

Re: クライアント領域の立体枠の描画方法について

WS_EX_CLIENTEDGE拡張スタイルで良いと思いますが。
ただしAeroが有効だと変化しないようです。

自前で描画したいなら、DrawEdge関数を使うと良いでしょう。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

そもそもこれが真摯な回答なのでしょうか。 掲示板の総意としてそうだというのであれば、わたしはこの掲示板を見限るだけですが。 こんばんは。 vectorの確保領域以上の所にアクセスしているという旨のエラー その通りです。それが起こりそうな所をみるしかないですね。 ちなみに、20行目のコメント部分を解除しても同様のエラーが出てしまいます。 解除しても、別の所で領域外をアクセスしているので、同様のエラーが出ています。 20行目の文は必要ですので、コメントは外してください。 因みに原因はfor文の方にあります。 1箇所だけ不自然な所があると思います。 よく見てみてください。 resizeのコメントアウ...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

>23行目で空のvectorに添字参照しているのがおかしいと思います。  (それは分かっています) その問題が隠れてしまう可能性は無視したのですか? >もしもcsvファイルの中身が最初から150行とかあったらKaienさんの指摘する問題を直してもやはり同じエラーが出ましたよね。  (No:3で分かっているので無意味ですね。それでなくとも普通十分な容量をとるものなのでは?) resizeを復活させればpush_backの問題はなくなるかのように書いているのはNo.2です。 ふつうはこうする、というのは思い込みですよね。 思い込みは排除すべきなのでは? >空の要素にアクセスすることが問題だという...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

ちなみにNo:3でcsvの中身は分かっていますね Kaienさんへの個人攻撃だっのを全体に向けてしまったのでしょうか、かなりマナー悪いですね 私にはソースと質問から見て議題者が150行あるものを 100 だけ確保してエラーだーと言うほどのバカには見えませんが、Kaienさんがそれを確認しなかったのが不足なんでしょうか それとも他の掲示板、題について思う事をここで述べただけなのでしょうか。エチケットに問題ありですね なるほど。 KairenさんはNo.2の投稿の時点で、No.3の投稿を予測できていたのですね。 そうでなければ、コメントアウトしてあるresizeを復活させても読み込み時のエラーが...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: cygwinでpythonスクリプトを自動起動
返信数: 3
閲覧数: 2648

Re: cygwinでpythonスクリプトを自動起動

Cygwinを起動するというのは、bashでログインしたとき、という解釈で良いでしょうかね。

Cygwinのホームディレクトリに.bash_profileというファイルが作成されているはずです。
ログインシェルとしてbashが起動したときに読み込まれるスクリプトです。
最後に実行したいコマンドを追加してみてください。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: マップチップにおけるテクスチャ貼り付け。
返信数: 20
閲覧数: 9657

Re: マップチップにおけるテクスチャ貼り付け。

すみません、プロジェクトを開いて見ていないので、Tatuさんの変更で既にそのようになっているかもしれませんが。

タイルマップ座標のオフセットを求める: ISLeのビデオゲーム工房
このブログ記事のpositive_remainderメソッドのようなオフセット計算をすれば良いのではないでしょうか。
#ここ(mixC++)の日記にも書いたことがあるのですが。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

No.8 の最初の投稿ではresizeに触れていませんでしたね 確か内容は変わらないんでしたね resizeを使わずに指摘できますでしょうか この部分ですね。 そもそも23行目で空のvectorに添字参照しようという考え方がおかしいと思います。 resizeしても確保分超えたら同じことなので問題を先送りしてるだけですよね。 resizeという単語を使わなければ良いのですか? そもそも23行目で空のvectorに添字参照しようという考え方がおかしいと思います。 もしもcsvファイルの中身が最初から150行とかあったらKaienさんの指摘する問題を直してもやはり同じエラーが出ましたよね。 という...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

そもそも
DOG さんが書きました:とりあえず、カンマ","も含めてvectorの2次元配列に格納しようとしているのですが、
というのがおかしい。

とりあえず一行ごとに読み込むなら2次元配列はおかしい。
vector<string>
で良い。

その後一行ごとに分解するときに、
vector<string> → vector<vector<int>>
と置き換えればエラーを回避するためだけに不自然なコードを記述する必要などない。

だから先に後半部分のデバッグをすることはまったく時間の無駄だとわたしには思える。


そしてかずまさんはずっと先を突っ走っている。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

オフトピック
わたしは投稿を書き換えるということについて自分の意見を述べただけです。
わたしが何を確認することについて不足を感じているかは分かっていただけないようです。
N.R さんが書きました:それも「投稿前にちきんと確認していれば、そもそもそんな必要ないのにな」
という意見に何かおかしい所がありますか
そもそも噛み合ってないので何とも言えません。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

resizeしない方法は、KaienさんやN.Rさんがフォローしてくださるに違いありません。
そうでなければ問題の先送りどころか問題の棚上げですからね。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

そこで、N.Rさんが仰っている >>しかし今 resize した事によって別の間違いが浮き彫りになっている状態です ですが、resize()で前もって確保しておかないと同じエラーが出ます。 vectorの良いところは領域の動的確保なのに、これだとvectorの良いところが消えてしまっているように思えます。 C++の入門書でvectorの2次元配列を扱っている箇所があるのですが、そこでも前もってresize()で領域確保されています。 vectorの2次元配列の場合は前もって確保しなければならないのでしょうか? いいえ、resizeするのは姑息な手段です。 少なくともわたしはDOGさんが本来望...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

DOG さんが書きました:連投すみません。EOFの位置についてコメントさせて下さい。
かずまさんの投稿したコードにヒントがありますが…

コード:

while (getline(fin, str)) {
    vss[i].push_back(str);
    ++i;
}
EOF以外の状態変化にも対応するのでより汎用になります。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

Kaien さんが書きました:しかしながら、それでもresizeをする事で発生する別の問題のについては、言及すべきだったかもしれません。その件について、言葉足らずで申し訳ありませんでした。
この時点でkをカウントするループがファイルから読み込んだ行数を越えてresizeで指定した分まで空回りするということに気付いていたのか正直に教えていただけないでしょうか。

気付いていたか気付いていなかったに関わらず、質問に書かれたコードの『仕様』が変わることについて、また、そのような回答をすることについて、どうお考えなのでしょう。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

>resizeしても確保分超えたら同じことなので問題を先送りしてるだけですよね まずKaienさんの指摘する問題を直さないと先に進むべきではないと思います わたしが指摘した問題を直してもKaienさんが指摘した問題は無くなりません。 Kaienさんが指摘した問題を無くすと、わたしが指摘した問題は無くなったようにみえるかもしれません。 まずKaienさんの指摘する問題を直さないといけない理由は何ですか? >vectorってメモリを動的確保できるものではないのですか と議題者は書いているのでresizeしたくないであろう事は分かっています 質問者さんはresizeの有無でエラーが発生する箇所が違...
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

N.R さんが書きました:>#近ごろ回答者側に確認不足が顕著な気がします。
これは正しいですね
確認がきちんとできる人は後から後からコメントを書き換えたりしないでしょう
わたしはしばしば投稿を書き換えますが、結論が変わるような書き換えはしていないつもりです。

フォーラムルールでは禁止行為として、記事の内容を無暗に変更する行為、とあります。
記事を無暗に変更する行為、ではありませんから問題無いのではないでしょうか。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

質問者さんは気付いたようですが、resizeしたまま添字を直して動いたから『解決』というストーリーもあり得たと思います。

あとステップ実行すれば分かると思いますが、kのカウンタがresizeした分回るのはとても無駄だと思います。
取得したデータを加工する処理を加える際、空回りするループが邪魔になるかもしれません。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: csvファイルを入力する
返信数: 47
閲覧数: 19666

Re: csvファイルを入力する

そもそも23行目で空のvectorに添字参照しようという考え方がおかしいと思います。
resizeしても確保分超えたら同じことなので問題を先送りしてるだけですよね。


質問とは関係ないですが、EOFをチェックする位置もおかしいです。


#近ごろ回答者側に確認不足が顕著な気がします。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: サイズ1の変数を作る
返信数: 18
閲覧数: 12456

Re: サイズ1の変数を作る

わたしは外部とやり取りするデータのサイズはユーザー体験に直結すると思っているので質問者さんの意向を尊重したいです。
これ以上はポリシーの問題なので議論は避けたいと思います。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: サイズ1の変数を作る
返信数: 18
閲覧数: 12456

Re: サイズ1の変数を作る

アクセス用の関数1つ挟むだけで済む話で、手間も掛からないのではないでしょうか。

配列に直接アクセスするよりも関数経由のほうが実装を隠蔽化できて拡張の幅が広がると思います。

わたしはロード・セーブでベタに読み書きするのは良くないと思うので、外部と内部の形式は切り離すべきと考えます。
1バイトずつでも1ビットずつでも自由に切り替えられるように作られているほうがデバッグもしやすいと思います。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: サイズ1の変数を作る
返信数: 18
閲覧数: 12456

Re: サイズ1の変数を作る

フラグだけで1000個ほどになる、というのはフラグ以外にデータはないということになるのでしょうか。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: サイズ1の変数を作る
返信数: 18
閲覧数: 12456

Re: サイズ1の変数を作る

ビットフィールドというものもあります。
環境依存が強いので外部記憶には向きませんが。

まあ、char配列の先頭から何ビット目を読み書きするという関数でも用意すれば済む話ですね。
マクロ等でどこを読み書きしてるか分かるようにすれば可読性もさほど悪くないですし。
by ISLe
10年前
フォーラム: C言語何でも質問掲示板
トピック: 配列の要素の分散の求め方 php言語
返信数: 13
閲覧数: 5034

Re: 配列の要素の分散の求め方 php言語

n番目の要素ごとに分散を求める方法が分からないという話ですよね。
foreachで回していてnがどこだか分からないということだと思いますが。

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