トップページ > 記事閲覧
フルスクリーンモードといろいろ
名前:にこよん 日時: 2017/06/25 10:40

こんばんは。 ビジュアルスタジオ2015 Windows10 C言語 フルスクリーンモードにした時に何か別のウィンドウが立ち上がるとウィンドウが消えてしまうのを何とかできないでしょうか? 例えばWindows10でWindowsキーを押したときや、メッセージボックスを生成した時など。 ただし常に一番手前に持ってくるのではなくて、何かが立ち上がったらフルスクリーンのDXライブラリはそのまま背後にある状態で 手前のウィンドウが表示される状態にしたいです。後ろのフルスクリーンのDXライブラリをクリックしたらまた一番手前に来るみたいな。 説明下手ですみません(;´・ω・) それと、フルスクリーン状態でウィンドウズの音量を操作した時に左上に表示される音量バーみたいなやつを常に一番手前に表示することはできますか? フルスクリーンのゲーム中に音量を変更したときに音量がわからいのは不便なので... 画像が立ち上げるたびに読み込めたり読み込めなかったりするのですが(大体8:2ぐらい)なぜだかわかりますでしょうか? アプリケーションが持つメモリの限界?画像の読み込み上限? 特定の画像なんですが、結構最初の方に読み込む画像です。jpg デバッグモードで確認してみたところ、グラフィックハンドルは帰ってきているみたいです。 ttp://dxlib.o.oo7.jp/dxprogram.html#N22 画像じゃない画面移動の時に「ワイプ」を作るにはどうしたらいいですか? 例えばタイトル画面からゲームスタートボタンを押した瞬間などいろいろ描画してた画面が切り替わる時に 「ワイプ」で切り替えることはできますか? ノベルゲームの様なものを作ってみたいのですが、サンプルプログラムでは少し物足りないです。 ttp://dxlib.o.oo7.jp/dxprogram.html#N20 サウンドノベル風文字描画を以下のイメージのような関数にすることはできますか? DrawStr(int x,int y,int long_x,char str[]){ //x、yは最初の座標でlong_xは横の長さでこれを超えそうになると改行 //1文字ずつstrが描画されていくが、long_xまで行くか\nで改行 //最後まで描画し終わってキー入力があったら return 1; //描画途中でキー入力があったら一気に最後まで描画 //*RE(あああ)←みたいなコマンドがあれば「あああ」は赤色で描画みたいな機能も欲しいけどこれはあきらめる予定 //*ST←みたいなコマンドがあればいったん停止、キー入力があればそこからまた描画されていく return 0; } まとまってない質問で申し訳ないですがご回答いただければ幸いです。
メンテ

Page: 1 |

Re: フルスクリーンモードといろいろ ( No.1 )
名前:管理人 日時:2017/06/25 21:11

> フルスクリーンモードにした時に何か別のウィンドウが立ち上がるとウィンドウが消えてしまうのを何とかできないでしょうか? > 例えばWindows10でWindowsキーを押したときや、メッセージボックスを生成した時など。 > > ただし常に一番手前に持ってくるのではなくて、何かが立ち上がったらフルスクリーンのDXライブラリはそのまま背後にある状態で > 手前のウィンドウが表示される状態にしたいです。後ろのフルスクリーンのDXライブラリをクリックしたらまた一番手前に来るみたいな。 > 説明下手ですみません(;´・ω・) > > それと、フルスクリーン状態でウィンドウズの音量を操作した時に左上に表示される音量バーみたいなやつを常に一番手前に表示することはできますか? > フルスクリーンのゲーム中に音量を変更したときに音量がわからいのは不便なので... 残念ですができません、こちらは OSの仕様なのでどうにもできません フルスクリーンモードは、もともと一つのアプリが画面全体を占有して、その他のアプリや OS が行うシステム表示などを一切行わせない ものとしてゲームメーカーの要望に応じて Microsoft が用意したモードなので、一つの画面に複数のウィンドウを表示させたりシステムの 表示を行いたいとのことでしたら、フルスクリーンモードを使用することはできません ( Android や iOS のように『フルスクリーンだけどシステムの表示( ダイアログ表示やお知らせなど )はアプリ画面の上に 表示される』という良いとこ取りのフルスクリーンモードは Windows には無いようです… ) > 画像が立ち上げるたびに読み込めたり読み込めなかったりするのですが(大体8:2ぐらい)なぜだかわかりますでしょうか? > アプリケーションが持つメモリの限界?画像の読み込み上限? > 特定の画像なんですが、結構最初の方に読み込む画像です。jpg > デバッグモードで確認してみたところ、グラフィックハンドルは帰ってきているみたいです。 『特定の画像』が読み込めないとのことですが、読み込む順番を変更しても必ず『特定の画像』だけ 読み込めないのでしょうか? 因みに、グラフィックハンドルは返ってきているとのことですが、読み込めなかった場合のグラフィックハンドルを 使用して DrawGraph などで描画した場合は、どのようなものが描画されるのでしょうか? > ttp://dxlib.o.oo7.jp/dxprogram.html#N22 > 画像じゃない画面移動の時に「ワイプ」を作るにはどうしたらいいですか? > 例えばタイトル画面からゲームスタートボタンを押した瞬間などいろいろ描画してた画面が切り替わる時に > 「ワイプ」で切り替えることはできますか? MakeScreen で作成した画面と同じサイズの仮の画面を二つ作成して、それぞれワイプで切り替える前の画面と ワイプで切り替えた後の画面を描画することで、サンプルプログラムにある画像同士のワイプの処理で 二つの画面のワイプを行うことができます > ノベルゲームの様なものを作ってみたいのですが、サンプルプログラムでは少し物足りないです。 > ttp://dxlib.o.oo7.jp/dxprogram.html#N20 > サウンドノベル風文字描画を以下のイメージのような関数にすることはできますか? > DrawStr(int x,int y,int long_x,char str[]){ //x、yは最初の座標でlong_xは横の長さでこれを超えそうになると改行 文字の描画幅を GetDrawStringWidth や GetDrawStringWidthToHandle などの関数で取得することができますので、 描画する文字の数を一つづつ増やして、描画幅が long_x を超えたら改行する、という処理を行うことで 『x、yは最初の座標でlong_xは横の長さでこれを超えそうになると改行』の処理が実現できます > //最後まで描画し終わってキー入力があったら return 1; > //*RE(あああ)←みたいなコマンドがあれば「あああ」は赤色で描画みたいな機能も欲しいけどこれはあきらめる予定 > //*ST←みたいなコマンドがあればいったん停止、キー入力があればそこからまた描画されていく キー入力があるまで待つ、といった処理は複数のフレームに跨ることなので、一つの関数内で行うことではありません 『20.サウンドノベル風文字列描画、テキストバッファ使用バージョン』でも『@』や『B』の文字があった場合に特殊な処理を 行っていますが、これと同じように『RE』や『ST』があったら文字の色変えやキー入力待ちを行う、といった処理を組むことになります
メンテ
Re: フルスクリーンモードといろいろ ( No.2 )
名前:にこよん 日時:2017/06/27 17:25

>フルスクリーンモードは、もともと一つのアプリが画面全体を占有して、その他のアプリや OS が行うシステム表示などを一切行わせない >ものとしてゲームメーカーの要望に応じて Microsoft が用意したモードなので、一つの画面に複数のウィンドウを表示させたりシステムの >表示を行いたいとのことでしたら、フルスクリーンモードを使用することはできません 私が持っている市販のゲームなどではフルスクリーンの上に起動ということができるので、(ライブラリ内設定の問題かと思っていたので 調べてみたら疑似フルスクリーンモードなるものがあるんですね。初めて知りました。 ttp://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=view&no=3421 またここを参考にゲームに組み込んでみようかと思います。ありがとうございました。 >『特定の画像』が読み込めないとのことですが、読み込む順番を変更しても必ず『特定の画像』だけ >読み込めないのでしょうか? 順番を少し変えたら普通に読み込めるようになりました。ありがとうございました。 順番を変えただけでなぜ読み込めるようになったのか理由を教えていただいてもよろしいでしょうか? >因みに、グラフィックハンドルは返ってきているとのことですが、読み込めなかった場合のグラフィックハンドルを >使用して DrawGraph などで描画した場合は、どのようなものが描画されるのでしょうか? 真っ黒でした。もしかしたらウィンドウが黒いだけで透明かもしれません。 >MakeScreen で作成した画面と同じサイズの仮の画面を二つ作成して、それぞれワイプで切り替える前の画面と >ワイプで切り替えた後の画面を描画することで、サンプルプログラムにある画像同士のワイプの処理で >二つの画面のワイプを行うことができます なるほどです。これで作れるような気がします、ありがとうございました。 また分からなくなったら聞きに来るかもしれません。 >文字の描画幅を GetDrawStringWidth や GetDrawStringWidthToHandle などの関数で取得することができますので、 >描画する文字の数を一つづつ増やして、描画幅が long_x を超えたら改行する、という処理を行うことで >『x、yは最初の座標でlong_xは横の長さでこれを超えそうになると改行』の処理が実現できます >キー入力があるまで待つ、といった処理は複数のフレームに跨ることなので、一つの関数内で行うことではありません >『20.サウンドノベル風文字列描画、テキストバッファ使用バージョン』でも『@』や『B』の文字があった場合に特殊な処理を >行っていますが、これと同じように『RE』や『ST』があったら文字の色変えやキー入力待ちを行う、といった処理を組むことになります とりあえず頑張ってみます。ありがとうございました。
メンテ
Re: フルスクリーンモードといろいろ ( No.3 )
名前:管理人 日時:2017/06/28 01:51

> 順番を少し変えたら普通に読み込めるようになりました。ありがとうございました。 > 順番を変えただけでなぜ読み込めるようになったのか理由を教えていただいてもよろしいでしょうか? 『特定の画像』が読み込めないとのことでしたので、『特定の画像』自体に何か原因があるのかどうかを ご確認させていただいた次第ですので、私も何故順番を変えたら読み込めるようになったのかは分かりません > 真っ黒でした。もしかしたらウィンドウが黒いだけで透明かもしれません。 ご返答ありがとうございます
メンテ
Re: フルスクリーンモードといろいろ ( No.4 )
名前:yumetodo 日時:2017/06/30 22:54

余談ですが >とりあえず頑張ってみます。 GetDrawStringCharInfoToHandleなんてものもあります。ちょっと扱いが難しいですが。 qiita.com/yumetodo/items/8180d48b6fca18d78a90 参考までに
メンテ
Re: フルスクリーンモードといろいろ ( No.5 )
名前:にこよん 日時:2017/07/09 12:18

中間報告? サウンドノベル風文字描画は完成しました。 文章の途中にコマンドを混ぜるようなものはできませんでしたが、 十分思ってたようなものができたので満足です。 GetDrawStringCharInfoToHandleも使いました。 ありがとうございました。 仮想フルスクリーンモードは拡大した時画像がおかしかったり マウスが反応しなかったりといろいろ問題があったので、後日再度質問するかもしれません。 ワイプは現在格闘中です。
メンテ
Re: フルスクリーンモードといろいろ ( No.6 )
名前:にこよん (解決) 日時:2017/08/02 03:45

解決にするのが遅くなってしまってすみませんでした。 仮想フルスクリーンモード以外すべて大体思ったようにできました。 ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存