ご回答ありがとうございます。 一筋縄では行かなさそうですね。 教えていただいたAPIも含めて、色々と試行錯誤してみたいと思います。 万が一うまく行ったら、ご報告させていただきます! ありがとうございました! > > ファンさん > > Android では Windows と異なり通常のファイルのような方法で GoogleDrive上のファイルに > アクセスすることはできないようです > > 少し検索した限りでは GoogleDrive API というものを使用すると Android でも GoogleDrive の > ファイルにアクセスできるようなのですが、解説を見る限りではなかなか難易度が高そうです > > よろしければ > > GoogleDrive API Android > > というキーワードでWeb検索をしてみてください m(_ _;m
> ファンさん Android では Windows と異なり通常のファイルのような方法で GoogleDrive上のファイルに アクセスすることはできないようです 少し検索した限りでは GoogleDrive API というものを使用すると Android でも GoogleDrive の ファイルにアクセスできるようなのですが、解説を見る限りではなかなか難易度が高そうです よろしければ GoogleDrive API Android というキーワードでWeb検索をしてみてください m(_ _;m
お世話になります。 GoogleDrive上の画像やテキストファイルの読み書きを行いたいのですが、 ご指導いただけるとありがたいです。 WindowsではGoogleDriveにドライブレターを与えて、そこを読み書きして いるのですが、Androidで同様の事を行おうと考えています。 手法がありましたらご教示ください。
今回は変更点は多いですが使用するシチュエーションがかなり限定されている機能の追加ばかりだったりします その中でも重要度高めの修正・追加点としては以下のものがあります ・パレット付きの pngファイルを読み込むとメモリの不正なアクセスが発生してしまうことがあるバグを修正。 ・Android版:AndroidStudio用のライブラリファイルを追加。 パレット付きの pngファイルの読み込みの際にエラーが発生してしまうことがあるバグは、ある意味致命的なバグです… あと、Android版DXライブラリ はこれまで Visual Studio でビルドしたライブラリファイルのみパッケージに 入れていましたが、Android Studio で使用した場合にビルドエラーが発生してしまうようになったので今回から Visual Studio でビルドしたライブラリファイルに加えて Android Studio でビルドしたライブラリファイルも パッケージに入れるようにしました その他の更新についてはこちらをご参照ください m(_ _)m <DXライブラリ更新履歴> https://dxlib.xsrv.jp/dxlog.html <ご返信> > Naohiro19さん GetColorFromHTMLColor のプログラムを Visual Studio 2022 でビルドしてみたのですが、 コンパイルエラーが発生してしまいました 一部を変更して以下のようにしたところコンパイルが成功し、期待した結果が得られました unsigned int GetColorFromHTMLColor(const std::string& html_color) { std::regex re(R"([0-9a-fA-F]{2})"); std::smatch match; // HTMLカラー文字列からRed、Green、Blueを取得する std::string colorR = html_color.substr(1); // #を除去 std::string colorG = colorR.substr(2); std::string colorB = colorR.substr(4); unsigned char Red = std::stoi(std::regex_search(colorR, match, re) ? match[0].str() : "00", nullptr, 16); unsigned char Green = std::stoi(std::regex_search(colorG, match, re) ? match[0].str() : "00", nullptr, 16); unsigned char Blue = std::stoi(std::regex_search(colorB, match, re) ? match[0].str() : "00", nullptr, 16); // GetColor関数にRGBを渡し、戻り値として返す return GetColor(Red, Green, Blue); } 現状では出力されたプログラムが正常にコンパイルできなかったり、正常に動作しなかった場合に どこが間違っているのかを確認して修正できるだけのプログラミングに関する知識が必要ですが あと数年したらAIが出力したプログラムが100%正常に動作するようになり、Visual Studio を使う知識さえあれば プログラミングの知識があまり無くても実行ファイルを作成できてしまうようになるかもしれませんね (・o・; ( 更に進化したら Visual Studio のインストールからビルドの操作まで AI が勝手にやってくれる時代がくるかも…? )
ChatGPTに、こんな指示を出してみました <指示文章> 以下の文章を解釈して、C++のプログラムコードを作成してください。 DXライブラリのGetColor関数にHTMLカラーの文字列を GetColorFromHTMLColorという関数の引数として渡します。、 GetColorFromHTMLColor関数の内部で正規表現で文字列を分割します。 文字列に分割したらunsigned char型のRed、Green、Blueに代入します。 代入したunsigned char型のRed、Green、BlueをGetColor関数の引数に渡し、 GetColorFromHTMLColor関数の戻り値として実装してください。 GetColorFromHTMLColor関数の定義だけを書いてください。 <ChatGPTの回答> #include <string> #include <regex> #include "DxLib.h" unsigned int GetColorFromHTMLColor(const std::string& html_color) { std::regex re(R"([0-9a-fA-F]{2})"); std::smatch match; // HTMLカラー文字列からRed、Green、Blueを取得する std::string color = html_color.substr(1); // #を除去 unsigned char Red = std::stoi(std::regex_search(color, match, re) ? match[0].str() : "00", nullptr, 16); unsigned char Green = std::stoi(std::regex_search(color.substr(2), match, re) ? match[0].str() : "00", nullptr, 16); unsigned char Blue = std::stoi(std::regex_search(color.substr(4), match, re) ? match[0].str() : "00", nullptr, 16); // GetColor関数にRGBを渡し、戻り値として返す return GetColor(Red, Green, Blue); } これは指示文章の要求された通りのコードになってますよね。
> ひいちゃさん > となると、やはり当たり判定の実装はプログラミング側でするしかないですかね、、、汗 はい、すみませんがそうなります
うーん、そうですかー、、、 残念ですけど了解しました汗 となると、やはり当たり判定の実装はプログラミング側でするしかないですかね、、、汗 > > ひいちゃさん > > ご返信が大変遅くなり申し訳ありません > すみません、見落としていました orz > > > それはずばり、スプライトとスプライトどうしの当たり判定! > > 2Dのゲームでもジャンルによってアニメーションをする2D画像に求められる機能は異なるので、 > 下手にスプライトの機能を追加しても使われない機能が残るだけかなと思ってしまいます (・・; > > そして機能が豊富なスプライト機能となると付随する情報も増えるので専用のツールも作成しないと > いけなくなり、スプライト機能の情報を保存する専用ファイル形式の追加など、 > 『使われない可能性が高い』割には必要な労力が大きいので、ちょっと手を出すのは難しいです > ( 突き詰めると Sprite Studio のような企業が製作するほどの規模になってきますので… ) > > > > 手提鞄あたッしュさん > > ご指摘ありがとうございます > 確認したところ、サーバーにアップする前のファイルの時点で壊れていました > 取り急ぎ最新のライブラリファイルを使って DxSample3_24.zip を作り直し、アップしておきました m(_ _;m
> ののさん はい、Anim_Jump_In.mv1 などのアニメーションファイルは各3Dモデル専用のものとなっていますので、 同じアニメーションファイルを使用する場合はボーン( フレーム )構造が全く同じで、且つ 背の高さや腕の長さ足の長さなども全く同じでなはないと正常にアニメーションが再生されません
お忙しいところすみません。 初心者なのでSword Boutをもとにキャラの置き換えをしようと考えているのですが、 キャラを置き換えることは出来たのですがカーソルキーで動かそうとしても動きません。 キャラを置き換えた場合アニメーションも変更する必要があるのでしょうか? 初歩的な質問で申し訳ないです。
> lego hasiriさん 今年は開発をお手伝いした ASTLIBRA Revision 関係でカレンダーの記事にできそうなネタも あったのですが、やはり忙しくて書くことが出来ずに終わりそうです (- -; > ひいちゃさん ご返信が大変遅くなり申し訳ありません すみません、見落としていました orz > それはずばり、スプライトとスプライトどうしの当たり判定! 2Dのゲームでもジャンルによってアニメーションをする2D画像に求められる機能は異なるので、 下手にスプライトの機能を追加しても使われない機能が残るだけかなと思ってしまいます (・・; そして機能が豊富なスプライト機能となると付随する情報も増えるので専用のツールも作成しないと いけなくなり、スプライト機能の情報を保存する専用ファイル形式の追加など、 『使われない可能性が高い』割には必要な労力が大きいので、ちょっと手を出すのは難しいです ( 突き詰めると Sprite Studio のような企業が製作するほどの規模になってきますので… ) > 手提鞄あたッしュさん ご指摘ありがとうございます 確認したところ、サーバーにアップする前のファイルの時点で壊れていました 取り急ぎ最新のライブラリファイルを使って DxSample3_24.zip を作り直し、アップしておきました m(_ _;m
dxlib.xsrv.jp/DxLib/DxSample3_24.zip ですが、.zip がぶっ壊れているみたいで、 M1 Mac, Windows 11 共、エラーが出て、解凍できません。 > 先日 3.23f をリリースしたばかりですが、 > 『SetGraphMode を呼ばずに DxLib_Init を実行すると0除算エラーが発生する』 > という致命的なバグがあったので急遽 3.24 として修正版をリリースしました > > それ以外の更新は殆どないのですが > > ・Windows版:DxLib_Init 実行後でも SetFullScreenResolutionMode によるフルスクリーン解像度モードの変更ができるように仕様を変更。 > > ↑ > この変更はちょっと有用かもしれません > ( ゲームの設定画面などでソフトを再起動することなくフルスクリーンモードの切り替えができるようになるので… ) > > > その他の更新に着いてはこちらをご参照ください m(_ _)m > > <DXライブラリ更新履歴> > https://dxlib.xsrv.jp/dxlog.html >
どうも、久しぶりです、ひいちゃです。 ここしばらく、ゲーム作りをしてきたのですが、そこでやはりこれを入れてくれたらなぁ、と思う要望がありましたので。 それはずばり、スプライトとスプライトどうしの当たり判定! スプライトはプログラムで自作することもできるのですが、当たり判定はやはり、ライブラリに関数として入れてほしいな、と。 自分がVB.NET+DXライブラリでプログラミングするときも、当たり判定を自分で書いているのですが、やはり判定もれがありますし、あったほうが助かると思うのです。 そして当たり判定を入れるとなれば、やはりスプライトもライブラリに持たせたほうがやりやすいと思うのです。 機能追加は大変でしょうが、なにとぞなにとぞ、実装していただけると幸いです。
今年もアドベントカレンダーの時期になったので、Qiitaのアドベントカレンダーで枠たてました DXライブラリについては毎年記事が減っているこのアドベントカレンダーですが、私は頑張って書きます ぜひ皆さんもお願いします qiita.com/advent-calendar/2022/dxlib
先日 3.23f をリリースしたばかりですが、 『SetGraphMode を呼ばずに DxLib_Init を実行すると0除算エラーが発生する』 という致命的なバグがあったので急遽 3.24 として修正版をリリースしました それ以外の更新は殆どないのですが ・Windows版:DxLib_Init 実行後でも SetFullScreenResolutionMode によるフルスクリーン解像度モードの変更ができるように仕様を変更。 ↑ この変更はちょっと有用かもしれません ( ゲームの設定画面などでソフトを再起動することなくフルスクリーンモードの切り替えができるようになるので… ) その他の更新に着いてはこちらをご参照ください m(_ _)m <DXライブラリ更新履歴> https://dxlib.xsrv.jp/dxlog.html <ちょっと宣伝> 開発期間13年の大作個人制作フリーソフト ASTLIBRA 〜生きた証〜 の有償版であり、 私も少し開発に関わった ASTLIBRA Revision が本日の22時から Steam で配信開始となりました <ASTLIBRA Revision> https://store.steampowered.com/app/1718570/ASTLIBRA_Revision/ とても個人制作とは思えないボリュームの横スクロールアクションRPGで 総プレイ時間は60時間ほどになります フリーソフト版との違いはプレイ時間20時間程の大ボリュームの追加ストーリーと、 主人公が繰り出す技の全変更、難易度の調整の他、グラフィックのハイクオリティ化と 日本語・英語・簡体字の言語対応、フリー版では 4:3 の画面でしたが 16:9 の画面比に変更、 解像度も 1024x768 固定でしたが 1280x720, 1366x768, 1920x1080, 2560x1440, 3840x2160 から 選択できるようになりました アクションや成長要素などゲーム性の部分もストーリーも非常に面白い作品なので、 よろしければプレイしてみてください m(_ _)m 因みにフリー版も十二分に楽しめますので、『お金を払うのはちょっと…』という方はこちらの フリー版をプレイしてみてください( フリー版は追加ストーリーが無いので、プレイ時間は 40時間くらいとなります ) <ASTLIBRA 〜生きた証〜> https://freegame-mugen.jp/action/game_9339.html ( 因みに ASTLIBRA はDXライブラリを使用して作成されています ( なので私にお声が掛かった訳です ) ) <ご返信> > 辺見!真琴さん x64化で正常に動作したようで何よりです また何かありましたらお書き込みください m(_ _)m
週中の返信をありがとうございます。 ビデオカードも、アプリが対応していないとカタログスペック出ないのですね。 さてVS2022ですが、Win32の項目はあるのにx64の項目が無くて試行錯誤しましたが、無事解決しました。 構成マネージャーからプラットフォームを新規作成すれば良いのですね。 動作確認をした所、(元々の出来はさて置き)ちゃんと動作しました。 4K8Kと解像度がうなぎ登りな昨今、x64化は必須ですね。 ご助力ありがとうございました。
> 辺見!真琴さん > 7914:テクスチャに画像を転送するためのメモリの確保に失敗しました[Graphics_D3D11_Texture_SetupCommonBuffer] ログ出力の通り、メモリの確保に失敗しているようです 32bitアプリでは1プロセスが使用できるメモリ容量に制限がある( 例えばPCが8GBのメモリを積んでいても、32bitアプリが使用できるメモリ容量は最大で2GB ) ので、もし 32bitアプリでビルドする設定になっていましたら 64bitアプリとしてビルドして実行してみてください m(_ _)m
エラーログを読んでいて気が付いたことがありましたので、少しお聞かせ下さい。 サイズが57600*1350(x32*y1個)だったデータを6000*6400(x4*y8個)サイズに工夫しました。仮データですが。 その結果エラーは出なくなり正常実行されるのですが、それでも表示されませんでした。 改めてエラーログを探ると、最後の方に > 7914:テクスチャに画像を転送するためのメモリの確保に失敗しました[Graphics_D3D11_Texture_SetupCommonBuffer] と言うエラーが残っていました。空行を挟んでの終了処理報告の直前です。 エラーログの冒頭の方に > 772: 最大テクスチャサイズ 幅:16384 高さ:16384 とあったので、元々問題にしていた件では無さそうです。 それとログ冒頭の初期化終了以降なのですが、 > 877:DXライブラリの初期化処理終了 > 3703:ヒープ用メモリの確保に失敗しました > 3703:ヒープ用メモリの確保に失敗しました > 3704:ヒープ用メモリの確保に失敗しました > 3704:ヒープ用メモリの確保に失敗しました > 3704:ヒープ用メモリの確保に失敗しました > 3705:ヒープ用メモリの確保に失敗しました この2行目以降に6回も失敗報告が入るのは関係しますでしょうか。
今回は変更点は少ないのですが、大きなものとして ・デフォルトのフルスクリーンモードを仮想フルスクリーンに変更 という点があります 仮想フルスクリーンとは縁無しウィンドウをモニターの解像度と同じ大きさで表示して ウィンドウモードでありながら、あたかもフルスクリーンモードのように表示するものです ( 疑似フルスクリーンとも言われます ) 何故このような変更をしたかと言いますと、今年に入ってから Steam で幾つかソフトを プレイしたのですが、基本的にデフォルトのフルスクリーンモードは仮想フルスクリーンで、 中には仮想ではないフルスクリーンモードが無く、仮想フルスクリーンを『フルスクリーン』と 呼称しているソフトもあったりして、もはや仮想フルスクリーンがフルスクリーンモードの デファクトスタンダードになっていると感じたからです( 確かに他ソフトへの切り替えも早い上に フルスクリーンモードで一度デスクトップに戻った後、再度ソフトにフォーカスを戻すと挙動が 変になる等の不具合に遭遇する心配もなくて便利 )( その他、掲示板やメールで仮想フルスクリーンモードを DXライブラリで実現する方法についての質問が数年前から幾つか届いていて仮想フルスクリーンの 需要が高まりつつある気配を感じていました ) というわけで、DXライブラリもその流れに準じてフルスクリーンモードではなく、 仮想フルスクリーンモードをデフォルトにすることにしました 尚、DxLib_Init の前に SetFullScreenResolutionMode( DX_FSRESOLUTIONMODE_DESKTOP ); という記述を増やすことでこれまでのバージョンと同じ挙動( 仮想ではないフルスクリーンモード )になります 新バージョンのその他の変更としては SetDrawCustomBlendMode という SetDrawBlendMode より細かく ブレンド設定を行える関数を追加しました 殆ど Direct3D や OpenGL のブレンド設定をそのまま使えるようにしただけのものですが、 SetDrawBlendMode では実現できない一風変わったブレンドモードを使用したい場合などに有用です <SetDrawCustomBlendMode> https://dxlib.xsrv.jp/function/dxfunc_other.html#R15N39 例:SetDrawBlendMode( DX_BLENDMODE_ALPHA, 128 ); と同じ効果のある設定を SetDrawCustomBlendMode で記述した場合 SetDrawCustomBlendMode( TRUE, DX_BLEND_SRC_ALPHA, DX_BLEND_INV_SRC_ALPHA, DX_BLENDOP_ADD, DX_BLEND_SRC_ALPHA, DX_BLEND_INV_SRC_ALPHA, DX_BLENDOP_ADD, 128 ) ; その他の更新に着いてはこちらをご参照ください m(_ _)m <DXライブラリ更新履歴> https://dxlib.xsrv.jp/dxlog.html <ご返信> > 辺見!真琴さん ご確認ありがとうございます もしテクスチャサイズを考慮してもエラーが発生する場合はDXライブラリのバグだと思いますので その際はご指摘ください m(_ _;m
> > 辺見!真琴さん > > 恐らくお使いのPCに搭載されているGPUが扱えるテクスチャサイズの限界を超えているのが原因でエラーが発生しているのではないかと思います > ( 最近の GPU でも扱える最大サイズは 16384x16384 くらいなので ) > プログラム実行時に作成される Log.txt にエラー原因が出力されていると思いますが、どのようなエラー文になっていますでしょうか? エラーログ・・・その手がありました。 オフにしていたのでオンにした所、 > 6968:画像ファイル [フルパスファイル名] のロードに失敗しました とのことで、詳細は分かりませんが冒頭に仰っていたテクスチャサイズが多分原因と言うことで模索しようと思います。 返答ありがとうございました。 いやあ、VRAMは4GBあるから普通に困らんだろとか慢心していました。
> 辺見!真琴さん 恐らくお使いのPCに搭載されているGPUが扱えるテクスチャサイズの限界を超えているのが原因でエラーが発生しているのではないかと思います ( 最近の GPU でも扱える最大サイズは 16384x16384 くらいなので ) プログラム実行時に作成される Log.txt にエラー原因が出力されていると思いますが、どのようなエラー文になっていますでしょうか?
LoadDivGraph()に1800×1350サイズを32枚、フルサイズで57600×1350と言うアホみたいなサイズの 画像を渡しているのですが、何かしらの理由でエラーが発生します。 確認しておきたいのですが、最大サイズ等の制限はありますでしょうか。
ありがとうございます! さっそくのぞいてみようと思います! > > ひいちゃさん > > 私は作成していませんが、かめのこにょこにょこさんがHTML5版DXライブラリを制作されています > > <DxLibForHTML5> > https://github.com/nokotan/DxLibForHTML5 > > 一般的にはブラウザゲームをプログラミング、というと JavaScript などを使用する場合が多いと思いますが、 > こちらは Windows用のDXライブラリと同じようにC言語で組めるようになっています > ( WinMain から始まるわけではなかったり、メインループの書き方が違ったりしますが ) > > よろしければご覧になってみてください m(_ _)m
> ひいちゃさん 私は作成していませんが、かめのこにょこにょこさんがHTML5版DXライブラリを制作されています <DxLibForHTML5> https://github.com/nokotan/DxLibForHTML5 一般的にはブラウザゲームをプログラミング、というと JavaScript などを使用する場合が多いと思いますが、 こちらは Windows用のDXライブラリと同じようにC言語で組めるようになっています ( WinMain から始まるわけではなかったり、メインループの書き方が違ったりしますが ) よろしければご覧になってみてください m(_ _)m
お久しぶりです。DXライブラリ、ありがたく使わせてもらってます。 それで、またふと思ったことが……。 自分は今までWindows用ゲームをメインに作ってきたのですが、この度、プラウザゲームも作りたいと思っていまして色々勉強して、なんとかHSPならやれそうだと思ったのですが……。 それで、DXライブラリのWebGL版が出ないかなぁ、と……。 WebGL版が出れば、かなりブラウザゲーム作りがはかどりそうなのですが……。 やはり難しいのでしょうか?
> sasiさん ご報告ありがとうございます、ご指摘の通り MapWidth と ChipTypeNum が逆でした 修正しておきます m(_ _;m
ヘルプ外の関数について詳しい動作が知りたくてソースコードを追っていたところ発見したので報告だけ。 DrawChipMap2 の実装である NS_DrawChipMap2 は内部で NS_DrawChipMap を呼び出していますが、 このとき MapWidth と ChipTypeNum を逆に渡しています。おそらく。間違ってたらすみません。
今回は少し小粒な更新内容として、pngファイルの読み込みの高速化があります 100回同じ画像を読み込む時間を計測した限りでは、下記の結果の通り画像が大きいほど 今回の高速化の恩恵があるようです 230x150px 256色画像 高速化前 57.0msec 高速化後 53.5msec 比率 93.8% 427x640px 32bitカラー画像 高速化前 460.0msec 高速化後 340.0msec 比率 73.9% 600x900px 32bitカラー画像 高速化前 924.0msec 高速化後 640.0msec 比率 69.3% 3840x2160px 32bitカラー画像 高速化前 9283.6msec 高速化後 5425.8msec 比率 58.4% 他には、Live2Dモデルの描画機能について、DXライブラリが行うデフォルトの処理では 『自動で画面の中心にLive2Dモデル全体が映るように表示する』というものなのですが、 ・Live2Dモデル描画の際に自動センタリング処理を行うかを設定するための関数 Live2D_SetUseAutoCentering を追加。 ・Live2Dモデル描画の際に自動スケーリング処理を行うかを設定するための関数 Live2D_SetUseAutoScaling を追加。 ↑ 上記の今回追加した2つの関数で『自動で画面の中心にLive2Dモデル全体が映るように表示する』処理を無効化することが できるので、より正確に位置や大きさを指定することができるようになりました ( 関数の説明についてはこちらの機能をご希望されたななしさんのスレッドをご覧ください https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=5349 ) その他の更新に着いてはこちらをご参照ください m(_ _)m <DXライブラリ更新履歴> https://dxlib.xsrv.jp/dxlog.html
> draさん ご確認ありがとうございます! 名前は『dra』表記で良いとの旨承知いたしました m(_ _)m
> 早速ダウンロードページにリンクを張ってみましたので、よろしければご確認ください m(_ _)m > > 『dra様』と記載させていただきましたが、draさんの正式名称は dragoon2014 でしょうか…? (・・; > その他記述の不備等ありましたらご指摘下さい m(_ _;m ありがとうございます、確認しました 名前等はこのままで大丈夫です
> draさん > Linuxで開発をする人であれば、通過儀礼といいますか、基本的にはできていてほしい知識だと思います > 通常はapt install gameとかでよしなに依存性を解決してくれるイメージですので > そんなに複雑にはならないと思ってます(開発者側で依存関係を定義する必要はあり) > Linuxで静的ライブラリを使い回すのは現実的でないので > アプリケーション作成者ないしパッケージ作成者がそのあたりを背負う認識です なるほど…勉強になります アプリの配布時は開発者側で自動的に libpng などがインストールされるように設定することができるのですね (・・; > もともとは手元で使うツールをLinuxで動かしたいというのが発端でしたので必要な間は続けようと思います > 機能拡張(Bullet/Live2D対応とか)はお約束できないのでご了承ください 承知いたしました よろしくお願いいたします m(_ _)m > 光栄です、リポジトリのURLを貼っていただければと思います > github.com/dragoon2014/dxlib-for-linux ご承諾ありがとうございます! 早速ダウンロードページにリンクを張ってみましたので、よろしければご確認ください m(_ _)m https://dxlib.xsrv.jp/dxdload.html ( iOS版の下側にあります ) 『dra様』と記載させていただきましたが、draさんの正式名称は dragoon2014 でしょうか…? (・・; その他記述の不備等ありましたらご指摘下さい m(_ _;m
- Aska BBS -