> 777さん 長くなるかもしれないので質問専用掲示板の方にスレッドを立てました <IntelliSenseについて> https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=5714 こちらにご返信をしていますのでよろしければご確認ください m(_ _)m
> > 管理人様 > > ご返信いただきありがとうございます。 > > Visual Studio 2022は最新バージョンである17.12.3にアップデートはされていました。 >管理人様のおっしゃっていた隠しフォルダである.vsフォルダを削除し再度プロジェクトを読み込みましたが、 >今度はコードの表示がされなくなってしまいました。 >既存のプログラムに加え、新しく作ったプログラム、サイトに掲示されているサンプルプログラムを用いても >.vsフォルダを削除してから再度プログラムを読み込むとコードが表示されなくなってしまいます。 >ですが、フォルダ内には.cppファイルも存在しています。 >当方こういった機械には疎く説明も不足していたら申し訳ありません。どうか問題解決のためお力添えいただけますと幸いです。
> 777さん Visual Sutdio 2022 の最新バージョンである 17.12.3 では IntelliSense は正常に動作していますので、 もしまだ 17.12.3 にアップデートされていませんでしたら、アップデートを試してみてください 17.12.3 にアップデートした上で正常に動作しない場合は、プロジェクトフォルダと同じフォルダに作成される 隠しフォルダの .vs フォルダを削除してからプロジェクトを読み込むことで直ることがありますので、 よろしければお試しください m(_ _)m
他の方がIntelliSenseについて解決しているなか同様の質問をしてしまい申し訳ありません。 VisualStudio2022がアップデードされてからDxライブラリの関数を使おうとするときだけ、 IntelliSenseの機能が使えなくなり、「このファイルでIntelliSenseに関する問題が検出されました」 と出てしまいます。 設定の変更は一切しておらず、アップデートのみ行いました。 もし対処法などがありましたら教えていただけますと幸いです。
> etsukaさん ご報告ありがとうございます 私の環境でも 17.12.2 でDXライブラリでも IntelliSense が正常に動作することを確認しました 思いの外早く修正されて良かったです (^ ^;
Version 17.12.2 出ましたね。 私の環境だとIntelliSense機能が復活しました。
>管理人様 ご確認ありがとうございます。ユーザーからではどちらが問題があるのかわからなかったので、 visual studio側の問題ということがわかり、安心しました。
> 774さん ビルドエラー( コンパイルエラー )が発生するわけではありませんので、DXライブラリ側の問題というよりは Visual Studio 側の問題となります なのでDXライブラリ側で対応できることは無い状態です Visual Studio 側で問題が出ないようになってくれることを待つのみです (・・;
Visual Studio Community 2022 の新バージョン(ver.17.12)でエラーが出てしまいます。 他の方がすでに行っているように、ver17.11.5にダウングレードすることで回避できるようなので、 緊急性はないかと思いますが、いずれ新バージョンに対応していただけると幸いです。
無事アイコンを設定できました。ありがとうございました。 次からはグローバル関数も使ってみます。
> Tomoさん > exeファイルのアイコンについて ミニテクニックコーナーにアイコンを設定する方法を載せていますので、よろしければご覧ください m(_ _)m <自作ソフトにオリジナルアイコンを付ける> https://dxlib.xsrv.jp/dxtec.html#M2 > 弾幕ゲームを作るうえでグローバル関数は一切使用しない方がよいのか? いえ、グローバル関数を使用しても良いと思います > 分割コンパイルで関数の宣言が書かれているヘッダーファイルはある程度統合した方がいいのでしょうか? いえ、基本的には関数の中身が書かれている cppファイルのファイル名の拡張子を h にしたヘッダーファイルに 関数の宣言を書くべきで、色々な cppファイルに書かれている関数の宣言を一つのヘッダーファイルに纏めて 記述するというのは普通はしません ( DXライブラリの DxLib.h には全部の関数の宣言を書いてしまっていますが、一般的ではありません ) > 現在「新・ゲームプログラミングの館」と「龍神録プログラミングの館」、「DXライブラリ置き場」を利用して勉強をしているのですが他に便利なサイトなどはあるでしょうか。 すみません、あるかもしれませんが私は知りません m(_ _;m
弾幕ゲームを作成してexeファイルから実行できるようにまではできたのですがexeファイルのアイコンを変更する方法が分からないです。 icoファイルの画像をexeファイルのアイコンにするにはどうすればよいでしょうか?(visual studio 2022 を使用しています。) また話がそれてしまうのですが。 弾幕ゲームを作るうえでグローバル関数は一切使用しない方がよいのか? 分割コンパイルで関数の宣言が書かれているヘッダーファイルはある程度統合した方がいいのでしょうか? 現在「新・ゲームプログラミングの館」と「龍神録プログラミングの館」、「DXライブラリ置き場」を利用して勉強をしているのですが他に便利なサイトなどはあるでしょうか。 質問内容がまとまらずすみません。
> 名無三さん もう Advent Calendar の時期なんですね 今年はいつにも増して一年が短かったように感じます (・・;
お疲れ様です。今年も僭越ながらAdventCalendarの方を立てさせていただきました。 皆さん奮ってご参加ください qiita.com/advent-calendar/2024/dxlib
高速化だけならばオプションでAVXかAVX2を有効にするだけで達成できるかもしれません(最適化の際に使ってくれる…らしい?) 要件が第2世代corei以降/4世代corei以降などになる点と元からSSE2を使っているらしい為最高でも4割増程度の向上のようですが、 (そもそも認識間違ってるかも知れないのでご了承を…)
> black labさん > DXライブラリで作成したプログラムをCUDAを用いて処理の高速化をしたいと考えているのですが,可能でしょうか. 少し調べてみた限りですが、CUDA を使用するには CUDA 用の言語でプログラムを記述する必要があるため、 既存の C++ のライブラリであるDXライブラリとの併用は恐らく不可能なのではないかと思います (・・;
お世話になっております. DXライブラリで作成したプログラムをCUDAを用いて処理の高速化をしたいと考えているのですが,可能でしょうか. もし可能であれば,環境構築の方法をお伺いしたいです. Visual Studio Community 2022を使用しています.
> ノンおっぱい星人さん すみません、ご返信が遅くなりました > iだけでも中身の数値がキャストされて11番目の文字が変更される気がするのですが。 仮に file[11] = (char)( '0' + i ) ; こちらを file[11] = ( char )i ; と変更した場合は正常にロードは行われなくなります コンピューターは全ての情報( 画像や音楽や3Dモデルなど )を数値で扱うのですが、同じように文字も数値で扱われます 例えば文字の A は数値では 65 となり、i は数値では 105 となっています なので、文字列の AAAiii は、メモリの中では 65 65 65 105 105 105 という数値で保存されていることになります 同じように文字の 0 は数値でも 0 … ではなく 48 となっています、そして文字の 1 は 49、2 は 50、3 は 51、4 は 52 5 は 53、6 は 54、7 は 55、8 は 56、9 は 57 となっています つまり、ある 0 から 9 までの値が格納された変数 i の値を文字の値に変換したい場合は 変数 i に 48 を 足せば良いことになります file[11] = (char)( '0' + i ) ; ↑ こちらは file[11] に i の数値を 0〜9 の文字の値に変換したものを代入しようとしている処理なので file[11] = (char)( 48 + i ) ; ↑ このように書いても同様の処理結果になります、ただ、 48 + i では何をしたいのかパッと見ただけでは良くわからないので 48 の代わりに '0' と書かれているのです
こちらのサイトでもご紹介されているゲーム開発で学ぶC言語にある記述なのですが(p.338)、 以下のような記述があります。 for ( int i= 0 ; i < IMG_ENEMY_MAX; i++ ) { char file[] = "image/enemy*.png"; file[11] = (char)( '0' + i ) ; imgEnemy[i] = LoadGraph( file ) ; } シューティングゲームの作成場面で、敵機の画像が複数枚あるので、 それをfor文でロードしようというものですが、3行目の '0'の意味は何でしょう? 画像のファイルパスの11番目の文字であるアスタリスク。 その箇所をファイル番号の数字に置き換えるのを、for文で実現しているようですが、 '0'の隣の変数iだけで足りるように思えるのですが、 '0'+としているのはどういう意味でしょうか。 iだけでも中身の数値がキャストされて11番目の文字が変更される気がするのですが。
> orbisさん やり取りが長くなりそうなのでこちらにスレッドを作成しました ご返信をこちらにしましたので、よろしければご確認ください m(_ _)m https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=5673
> > orbisさん > > なるほど、C++ Builder が 12 になったのですね > C++ Builder 12 で BCC2 のライブラリファイルをコンパイルし直しましたので > よろしければその変更を行ったこちらのバージョンを試してみてください m(_ _)m > > https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 12 用 早速の対応ありがとうございます。 出てきた「win32,win64」のホルダーを上書きしたのですが、 残念ながら症状は変わりませんでした。
> orbisさん なるほど、C++ Builder が 12 になったのですね C++ Builder 12 で BCC2 のライブラリファイルをコンパイルし直しましたので よろしければその変更を行ったこちらのバージョンを試してみてください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 12 用
いつもお世話になっています。 今回、C++Builderがバージョンアップで12になってしまい、DXライブラリーが使えなくなってしまいました。 コンパイルエラーとして [ilink32 エラー] Error: 未解決の外部シンボル '__streams' が C:\xx\DXLIB_BCC2\プロジェクトに追加すべきファイル_C++BUILDER用\LIBJPEG.LIB|jerror から参照されています と出て停止します。DXライブラリーを継続して使いたいのですが、対処法が有りましたらお教えください。 よろしくお願いします。
ありがとうございました! 関数の使い方を理解することができました!
> こんさん > この関数はサイズを多めに確保しておく必要があるなどのルールがあるのでしょうか? はい、CreateShaderConstantBuffer に渡すバッファーのサイズは 16の倍数である必要がありますので int bufHandle = CreateShaderConstantBuffer( sizeof( float ) * 2 ); ↑ こちらの処理の結果 bufHandle には -1 が代入されている( CreateShaderConstantBuffer が失敗して -1 が返ってきている )と思います sizeof( float ) * 4 にしていただくことで CreateShaderConstantBuffer が成功しますので、よろしければお試しください m(_ _)m ( 尚、16の倍数の制限はDXライブラリのものではなく、Direct3D 11 の仕様です )
情報が足りない気がしたので追加です この書き方に誤りはありますか? // シェーダー側 cbuffer BUFFERDATA : register(b3) { float buf1; float buf2; } // 初期化 float fnum1 = 0.0f; float fnum2 = 0.1f; float *pf; int bufHandle = CreateShaderConstantBuffer( sizeof( float ) * 2 ); // ループ内 pf = ( float * ) GetBufferShaderConstantBuffer( bufHandle ); pf[ 0 ] = fnum1; // ←ここでアクセス違反になる pf[ 1 ] = fnum2; UpdateShaderConstantBuffer( bufHandle ); SetShaderConstantBuffer( bufHandle, DX_SHADERTYPE_PIXEL, 3 );
CreateShaderConstantBufferを使用する際に シェーダーに記述した定数バッファの総サイズとぴったり同サイズを指定したところ 自分の環境ではアクセス違反が発生してしまいました その他の書き方に不備があるのだと考えて探したのですが分からず 試しにシェーダー側より多めに確保するようにしたところアクセス違反は発生しなくなりました この関数はサイズを多めに確保しておく必要があるなどのルールがあるのでしょうか?
> Tom201512 . u .さん > Dxlibには長いことお世話になりました。 > この度、ゲーム制作そのものを完全に引退することになり、 > 自作パチスロゲームとして公開していた"Mondschein"並びに"Nostalgia"の公開を停止することにいたしましたので、 > 削除依頼をお願いします。 なんと、そうなのですね… DXライブラリをお使いいただきありがとうございました m(_ _)m ご依頼の2作品の投稿記事を削除しましたのでご確認ください > MrSoup678さん バグのご指摘ありがとうございます 手元のコードに反映しましたので、次のバージョンで修正が反映されます もし直ぐにご必要でしたらこちらをお使いください m(_ _)m https://dxlib.xsrv.jp/temp/DXArchiveTest.zip
DXArchive.cppの2561行目(Toolサブフォルダ内)にバグを発見しました。圧縮ヘッダのないDXAファイルの場合、誤ってHead.DataStartAddressから読み込んでいます。 Head.FileNameTableStartAddressから読み込む必要があります。 挿入します: ``` _fseeki64(ArcP, Head.FileNameTableStartAddress, SEEK_SET); ``` をKeyConvFileReadの前に挿入することで、この問題が修正されます。 これは3.24dのプリビルドに存在します。 翻訳:DEEP-L.com
Dxlibには長いことお世話になりました。 この度、ゲーム制作そのものを完全に引退することになり、 自作パチスロゲームとして公開していた"Mondschein"並びに"Nostalgia"の公開を停止することにいたしましたので、 削除依頼をお願いします。 突然の連絡ではありますが何卒よろしくお願いします。
- Aska BBS -