時折、画像に縦線が入る
時折、画像に縦線が入る
どうもこんにちは。
ソースコードをコンパイルし、できたexeファイルを実行するわけですが、
そのプログラム実行の際に、添付した画像のように縦線の入ることがあるのです。
主な現象としては、複数の画像(自機、背景など)のうち、どれか一つの画像の左上部分に縦線がかかるようです。
右上の画像のように、デスクトップに飛び火することもあります(その際は壁紙の貼り直しで解除)。
ただよく分からないのは、毎実行時に起こるわけでもなく、また起こるにしても
どの画像に縦線が入るかはその時々で違うということです。
使用コンパイラはVisual C++ 2008 Express Edition及びBorland C++ Compiler 5.5で試してみましたが、
どちらも同じ結果でしたので、コンパイラの問題ではないのかなあ……と思っています。ちなみにOSはXPです。
使用したソースコードは本サイトからのサンプルによるものの他、別のソースによる画像でも同様の現象が起きた
ので、コードミスということでもないように思います。
どうも何度か試すうち、画面モードを全画面にしている時には縦線が入らないような気がしました。
逆に言うと、画面をウィンドウモード(ChangeWindowMode(TRUE);)にしている時に
この問題が立ち上がるような気がします。
個人的な動作環境に原因がありそうな感じですが、検索しても前例がなく、ちょっと途方に暮れています。
少々雲を掴むような感もありますが、このような症例について、何か心当たりのありそうなことなどありましたら、
助言等頂けたら幸いです。
ソースコードをコンパイルし、できたexeファイルを実行するわけですが、
そのプログラム実行の際に、添付した画像のように縦線の入ることがあるのです。
主な現象としては、複数の画像(自機、背景など)のうち、どれか一つの画像の左上部分に縦線がかかるようです。
右上の画像のように、デスクトップに飛び火することもあります(その際は壁紙の貼り直しで解除)。
ただよく分からないのは、毎実行時に起こるわけでもなく、また起こるにしても
どの画像に縦線が入るかはその時々で違うということです。
使用コンパイラはVisual C++ 2008 Express Edition及びBorland C++ Compiler 5.5で試してみましたが、
どちらも同じ結果でしたので、コンパイラの問題ではないのかなあ……と思っています。ちなみにOSはXPです。
使用したソースコードは本サイトからのサンプルによるものの他、別のソースによる画像でも同様の現象が起きた
ので、コードミスということでもないように思います。
どうも何度か試すうち、画面モードを全画面にしている時には縦線が入らないような気がしました。
逆に言うと、画面をウィンドウモード(ChangeWindowMode(TRUE);)にしている時に
この問題が立ち上がるような気がします。
個人的な動作環境に原因がありそうな感じですが、検索しても前例がなく、ちょっと途方に暮れています。
少々雲を掴むような感もありますが、このような症例について、何か心当たりのありそうなことなどありましたら、
助言等頂けたら幸いです。
Re:時折、画像に縦線が入る
一般論として、真っ先に疑うべきなのは自分の書いたプログラムです。
複数のサイトのサンプルとありますが、「なんとかな~れ~」さんが
複数のサンプルを元にして同じ勘違いのコードを埋め込んでしまった
可能性があります。まず、この可能性を潰しましょう。
再現性が高くないようですが、再現することのある最も短いプログラムを
ここに載せてみてはいかがでしょうか。サンプルに従って作っているつもりでも、
自分では気付かないまずい点があるかもしれません。
プログラムに問題が無い場合ですが、次に怪しいのはOSですかね。
Windows Updateをしたり、可能ならば別の環境で試したりすると良いでしょう。
次はインストールされている他のソフトかな。
複数のサイトのサンプルとありますが、「なんとかな~れ~」さんが
複数のサンプルを元にして同じ勘違いのコードを埋め込んでしまった
可能性があります。まず、この可能性を潰しましょう。
再現性が高くないようですが、再現することのある最も短いプログラムを
ここに載せてみてはいかがでしょうか。サンプルに従って作っているつもりでも、
自分では気付かないまずい点があるかもしれません。
プログラムに問題が無い場合ですが、次に怪しいのはOSですかね。
Windows Updateをしたり、可能ならば別の環境で試したりすると良いでしょう。
次はインストールされている他のソフトかな。
Re:時折、画像に縦線が入る
>たいちうさん
レスありがとうございます。生来、遅筆の性質(たち)で、返答に少し時間のかかること、ご容赦ください。
まず、縦線の出たプログラムコードの件についてですが、恐縮ながら、
本サイトのサンプルコードをコピーしたもの(つまりまったく同一のもの)に過ぎません。
例えば右下の画像ですが、「ゲームプログラミングの館、13. 裏画面処理をして画像を動かす」
と同一のコードによる結果です。
それで、コードミスのせいではないんだなと思ったわけです。
となると確かに、他のソフトによる競合現象やOS周りということになるんでしょうかな。
ディスプレイがおかしいのだろうか……? うーん、パソコンってのは難しいですな。
レスありがとうございます。生来、遅筆の性質(たち)で、返答に少し時間のかかること、ご容赦ください。
まず、縦線の出たプログラムコードの件についてですが、恐縮ながら、
本サイトのサンプルコードをコピーしたもの(つまりまったく同一のもの)に過ぎません。
例えば右下の画像ですが、「ゲームプログラミングの館、13. 裏画面処理をして画像を動かす」
と同一のコードによる結果です。
それで、コードミスのせいではないんだなと思ったわけです。
となると確かに、他のソフトによる競合現象やOS周りということになるんでしょうかな。
ディスプレイがおかしいのだろうか……? うーん、パソコンってのは難しいですな。
Re:時折、画像に縦線が入る
DXライブラリをダウンロードするとサンプルプログラムが同梱されていますよね。
それをなんとかな~れ~さんの環境でコンパイルしてみてください。
サンプルソースは全画面なのでウィンドウモードへの変更は追記してください。
で、出来上がったexeを実行してみて
1.現象が再現する
→PCに問題があるか、他のソフトの影響を受けているか、もしくは開発ツールの設定が間違っているか。。。
2.現象再現しない
→現象が出るソースに問題ある(コピペしただけのつもりでもどっか間違えている)
今回の場合2の可能性は低そうな気もしますが、1だったらグラフィックスドライバを更新してみるといいかもしれませんね。
(グラフィックスドライバの更新方法はご使用のPCによって異なるのでメーカのHPなどで調べてください)
それをなんとかな~れ~さんの環境でコンパイルしてみてください。
サンプルソースは全画面なのでウィンドウモードへの変更は追記してください。
で、出来上がったexeを実行してみて
1.現象が再現する
→PCに問題があるか、他のソフトの影響を受けているか、もしくは開発ツールの設定が間違っているか。。。
2.現象再現しない
→現象が出るソースに問題ある(コピペしただけのつもりでもどっか間違えている)
今回の場合2の可能性は低そうな気もしますが、1だったらグラフィックスドライバを更新してみるといいかもしれませんね。
(グラフィックスドライバの更新方法はご使用のPCによって異なるのでメーカのHPなどで調べてください)
Re:時折、画像に縦線が入る
DXライブラリの画面外にまで不具合が影響するのは、単純なコードの間違いではないかもしれません。
グラフィックうカードのドライバの問題ではないでしょうか。
ドライバの更新をしても、解決しない場合は、DXライブラリの本家の方で製作者さんに聞いてもらうほうがいいかもしれません。
グラフィックうカードのドライバの問題ではないでしょうか。
ドライバの更新をしても、解決しない場合は、DXライブラリの本家の方で製作者さんに聞いてもらうほうがいいかもしれません。
Re:時折、画像に縦線が入る
皆さんが書かれている通り、ドライバ絡みかなと思いますが、
もしそうだったとしたら、(ドライバの更新など環境の改善は別にして)
当面できる対策としては
・ DxLib_Init()より前に SetUse3DFlag(FALSE)を呼ぶ。
或いは
・ DxLib_Init()より前に SetUseDirectDrawFlag(FALSE)を呼ぶ。
このどちらかでパフォーマンスはかなり落ちることになりますが
ひょっとしたら正常に動くようになるかもしれません。
一度お試し下さい。
もしそうだったとしたら、(ドライバの更新など環境の改善は別にして)
当面できる対策としては
・ DxLib_Init()より前に SetUse3DFlag(FALSE)を呼ぶ。
或いは
・ DxLib_Init()より前に SetUseDirectDrawFlag(FALSE)を呼ぶ。
このどちらかでパフォーマンスはかなり落ちることになりますが
ひょっとしたら正常に動くようになるかもしれません。
一度お試し下さい。
Re:時折、画像に縦線が入る
お返事遅れまして申し訳ありません。
まず、Mistさんの指摘にありました、DXライブラリ既存サンプルプログラムの実行ですが、
十数回試したところ、結局2、現象再現なしでした。うーん、何がトリガーになっているのか……。
そのような歯切れの悪い展開を抱えつつ、ともかく縦線の入るサンプル群に対し、
次にグラフィックドライバ及びDirectXの更新を試みましたが、効果はないようでした。
しかし、最後にJustyさんの書かれたSetUse3DFlag(FALSE);ですが、どうにも効いたようです。
本家の関数解説にあるように、動作が鈍くなるのを感じますが、どうも止まった……。
ドライバとの相性が悪いのか、何らかのソフトに変なひっかかりがあるのか……
ともかく、現時点での応急策としては、
・全画面モードで制作するか
・SetUse3DFlag関数を使うか、といったことになりそうです。
確かに、あまり突っ込んだ話は本家の製作者さんに聞いた方がいいかもしれませんね。
その場合少々マルチポストな感じであずましくない向きもありましょうし、判断の難しいところでは
ありますが、ここいらでこのトピックは解決マークを付け、一区切り付けた方がいいのかもしれませんね。
もう少し調べなおした上、改めてその必要があらば、製作者さんに話を伺ってみようと思います。
というわけで性急ではありますが、解決マークを付け、一区切りとしたいと思います。
皆さんありがとうございました。(ああ、それにしても私はあれですね、なんか硬いですね。)
まず、Mistさんの指摘にありました、DXライブラリ既存サンプルプログラムの実行ですが、
十数回試したところ、結局2、現象再現なしでした。うーん、何がトリガーになっているのか……。
そのような歯切れの悪い展開を抱えつつ、ともかく縦線の入るサンプル群に対し、
次にグラフィックドライバ及びDirectXの更新を試みましたが、効果はないようでした。
しかし、最後にJustyさんの書かれたSetUse3DFlag(FALSE);ですが、どうにも効いたようです。
本家の関数解説にあるように、動作が鈍くなるのを感じますが、どうも止まった……。
ドライバとの相性が悪いのか、何らかのソフトに変なひっかかりがあるのか……
ともかく、現時点での応急策としては、
・全画面モードで制作するか
・SetUse3DFlag関数を使うか、といったことになりそうです。
確かに、あまり突っ込んだ話は本家の製作者さんに聞いた方がいいかもしれませんね。
その場合少々マルチポストな感じであずましくない向きもありましょうし、判断の難しいところでは
ありますが、ここいらでこのトピックは解決マークを付け、一区切り付けた方がいいのかもしれませんね。
もう少し調べなおした上、改めてその必要があらば、製作者さんに話を伺ってみようと思います。
というわけで性急ではありますが、解決マークを付け、一区切りとしたいと思います。
皆さんありがとうございました。(ああ、それにしても私はあれですね、なんか硬いですね。)
Re:時折、画像に縦線が入る
どうでもいい追記ですが……。
先程何気なく、ふと「四聖龍神録」をウィンドウモードで起動してみたら、ちょろっと縦線がかかりまして、
どうやらプログラミングの問題ではなかったようです。
つまりプログラミングには支障がないわけで、少し肩の荷が下りました。
先程何気なく、ふと「四聖龍神録」をウィンドウモードで起動してみたら、ちょろっと縦線がかかりまして、
どうやらプログラミングの問題ではなかったようです。
つまりプログラミングには支障がないわけで、少し肩の荷が下りました。
Re:時折、画像に縦線が入る
SetUse3DFlag(FALSE)で改善されたとすると、結構古いPCをお使いなのでしょうか?
DXライブラリはDirectX7ベースなので少しぐらい古いグラボでもだいたい問題なく動くのですが、
結構古いビジネスユースノートPCとかだとDirectXのサポートが十分でないものもあるため、
その場合は、ご愁傷様ですが重いの我慢でSetUse3DFlag(FALSE)を使うか、PC買い換えるか・・・。
本家の管理人さんは忙しいようですぐには回答もらえないかもしれませんが、現象とご使用の
PCを書いて質問すれば何か対応してもらえるかもしれません。
#こちらのトピに本家質問のリンクだけ張ってもらえれば問題ないと思います。
DXライブラリはDirectX7ベースなので少しぐらい古いグラボでもだいたい問題なく動くのですが、
結構古いビジネスユースノートPCとかだとDirectXのサポートが十分でないものもあるため、
その場合は、ご愁傷様ですが重いの我慢でSetUse3DFlag(FALSE)を使うか、PC買い換えるか・・・。
本家の管理人さんは忙しいようですぐには回答もらえないかもしれませんが、現象とご使用の
PCを書いて質問すれば何か対応してもらえるかもしれません。
#こちらのトピに本家質問のリンクだけ張ってもらえれば問題ないと思います。
Re:時折、画像に縦線が入る
>Mistさん
承知しました。本家の掲示板に質問を貼りましたので、アドレスを載せておきます。
http://hpcgi2.nifty.com/natupaji/aska.cgi
私としては、これで解決しないのならそれはそれで仕方ないと、腹を括りました。
(考えようによっては)影響度も少ないと言えば少ないと言えますしね。
パソコンというのはこう、時に不条理な現象に見舞われるものだとも経験的に実感していますしね。
ちなみに私のパソコンはゲームに特化するでもない、そこいらの家電に(ローレベルとして)
売っているようなレベルのノートパソコンです(グラフィックデバイスSiS M760GX、メモリ64MB)。
とはいえ2005年式なので、3Dバリバリのゲームでもない限り
支障はないのではないかなと思うのですが、まあどんなものでしょうかね。
承知しました。本家の掲示板に質問を貼りましたので、アドレスを載せておきます。
http://hpcgi2.nifty.com/natupaji/aska.cgi
私としては、これで解決しないのならそれはそれで仕方ないと、腹を括りました。
(考えようによっては)影響度も少ないと言えば少ないと言えますしね。
パソコンというのはこう、時に不条理な現象に見舞われるものだとも経験的に実感していますしね。
ちなみに私のパソコンはゲームに特化するでもない、そこいらの家電に(ローレベルとして)
売っているようなレベルのノートパソコンです(グラフィックデバイスSiS M760GX、メモリ64MB)。
とはいえ2005年式なので、3Dバリバリのゲームでもない限り
支障はないのではないかなと思うのですが、まあどんなものでしょうかね。
Re:時折、画像に縦線が入る
今更ぶり返して書くほどのことでもないとは思うのですが、
管理人さんからのお答え、私の方針等決しましたので(詳細はアドレスの方を参照していただいて)、
けじめとして、ここでこのトピックは終了ということで締めさせていただきます。どうもお世話になりました。
今度はもっと実際的なプログラミングの話で質疑応答できたらいいですね。
管理人さんからのお答え、私の方針等決しましたので(詳細はアドレスの方を参照していただいて)、
けじめとして、ここでこのトピックは終了ということで締めさせていただきます。どうもお世話になりました。
今度はもっと実際的なプログラミングの話で質疑応答できたらいいですね。
Re:時折、画像に縦線が入る
丁寧にご報告くださりありがとうございます。
リンク先拝見しました。
普段DXライブラリ管理人様にご報告や要望をすれば大抵の場合、解決するか、一時的に内容を変更したバージョンを下さったりするのですが、
今回の場合はどうにもならなかったようですね・・。
2005年製のPCということでそこまで古くないのに、使えないのは少し残念ですね。
もし本格的にゲームをお作りになるのなら、是非デスクトップPCの購入を検討してみてはいかがでしょうか。
ノートと違い、パーツが安くなった現代、3~4万あればかなりハイエンドなPCが作れると思います。
私が言えるのはこの程度です;
今後ますますのご発展お祈りいたします。
リンク先拝見しました。
普段DXライブラリ管理人様にご報告や要望をすれば大抵の場合、解決するか、一時的に内容を変更したバージョンを下さったりするのですが、
今回の場合はどうにもならなかったようですね・・。
2005年製のPCということでそこまで古くないのに、使えないのは少し残念ですね。
もし本格的にゲームをお作りになるのなら、是非デスクトップPCの購入を検討してみてはいかがでしょうか。
ノートと違い、パーツが安くなった現代、3~4万あればかなりハイエンドなPCが作れると思います。
私が言えるのはこの程度です;
今後ますますのご発展お祈りいたします。
Re:時折、画像に縦線が入る
すみません、かなりハイエンドという言葉はふさわしくなかったですが
今主流となっているモデル位なら3万円代で作れるんじゃないでしょうか?
詳しい値段は調べてないですけど、だいたい
CPU E4600 13000円
HDD 500G 7000円
M/B 6000円
ケース 3000円
電源 3000円
メモリ 2GB 3200円
DVDドライブ 3500円
だとするなら3万代じゃないでしょうか?
グラフィックカードをどれにするかで大きく値段は変わるでしょうけど。
結構欲張ったモデルにしても5万代で作れるのではないかと。
先日友達にPCを作った時は5万代で結構いいもの作れましたよ。
もちろんどれも安いパーツですから、信頼性のあるパーツをそろえようとするといくらでも上がっていくと思います。
今クアッドコアCPUですら2万ちょっとですしね。
安くなったものです。
私がクアッド買った時は7万もしたのに・・・。
そしてクアッドは高いだけで、あまりクアッドに対応したソフトが無いので、あまり恩恵は受けられないという(´`;
今主流となっているモデル位なら3万円代で作れるんじゃないでしょうか?
詳しい値段は調べてないですけど、だいたい
CPU E4600 13000円
HDD 500G 7000円
M/B 6000円
ケース 3000円
電源 3000円
メモリ 2GB 3200円
DVDドライブ 3500円
だとするなら3万代じゃないでしょうか?
グラフィックカードをどれにするかで大きく値段は変わるでしょうけど。
結構欲張ったモデルにしても5万代で作れるのではないかと。
先日友達にPCを作った時は5万代で結構いいもの作れましたよ。
もちろんどれも安いパーツですから、信頼性のあるパーツをそろえようとするといくらでも上がっていくと思います。
今クアッドコアCPUですら2万ちょっとですしね。
安くなったものです。
私がクアッド買った時は7万もしたのに・・・。
そしてクアッドは高いだけで、あまりクアッドに対応したソフトが無いので、あまり恩恵は受けられないという(´`;
Re:時折、画像に縦線が入る
終わったと言っておいてレスするのもなんですが、それはそれ、時勢というものですな。
自作PCですか。それはまた熱いですね。
そんなに手ごろに(といっては語弊があるが)作れるものだとは知りませんでした。
こんなノートPCの端くれでも10万かかったことを考えると、次のパソコンは
もう少し慎重に選んでみても面白そうですなあ。
やはりパソコン使い(というのもなんですが)たるもの、一度はデスクトップ型が欲しいものです。
ノートだとメモリを増築するぐらいしかできませんしね。
自作PCですか。それはまた熱いですね。
そんなに手ごろに(といっては語弊があるが)作れるものだとは知りませんでした。
こんなノートPCの端くれでも10万かかったことを考えると、次のパソコンは
もう少し慎重に選んでみても面白そうですなあ。
やはりパソコン使い(というのもなんですが)たるもの、一度はデスクトップ型が欲しいものです。
ノートだとメモリを増築するぐらいしかできませんしね。
Re:時折、画像に縦線が入る
>tkさん
いや、pen4が悪いわけではないのですが、
それよりいいCPUが同じ位の値段で買えるのにわざわざpen4を選択される理由が何かあるのかなと^^;
>なんとかな~れ~さん
いや~もうここは質問をすることだけの為の場ではないので、雑談でも何でもお気軽にどうぞ☆
他の質問に流れそうな時は他にトピを立ててもらった方がいいかもしれませんが、雑談ならぐだぐだに長くなってもOKですm(_ _)m
自作PCをし始めるともうメーカーのPCなんか買ってられなくなりますよねぇ。
そこにメンドクササを感じない人はもうメーカー品を買う理由がなさそう。
ノートはパーツが少ないですよね~。
先日ノートPCも買ったんですが、1900x1200のモニタのノート買ったら重くて暗くて最悪でした・・orz
メモリは今1GB1800円とかで買えますし、安くなりましたよねぇ。
USBメモリなんか、2GBで800円とかで買えるんじゃないでしょうか。
32GBのUSBメモリなんかもありますし、ちょっと古いPCショップに行ったら昔の32MBのものと間違えそうですw
いや、pen4が悪いわけではないのですが、
それよりいいCPUが同じ位の値段で買えるのにわざわざpen4を選択される理由が何かあるのかなと^^;
>なんとかな~れ~さん
いや~もうここは質問をすることだけの為の場ではないので、雑談でも何でもお気軽にどうぞ☆
他の質問に流れそうな時は他にトピを立ててもらった方がいいかもしれませんが、雑談ならぐだぐだに長くなってもOKですm(_ _)m
自作PCをし始めるともうメーカーのPCなんか買ってられなくなりますよねぇ。
そこにメンドクササを感じない人はもうメーカー品を買う理由がなさそう。
ノートはパーツが少ないですよね~。
先日ノートPCも買ったんですが、1900x1200のモニタのノート買ったら重くて暗くて最悪でした・・orz
メモリは今1GB1800円とかで買えますし、安くなりましたよねぇ。
USBメモリなんか、2GBで800円とかで買えるんじゃないでしょうか。
32GBのUSBメモリなんかもありますし、ちょっと古いPCショップに行ったら昔の32MBのものと間違えそうですw
Re:時折、画像に縦線が入る
>それよりいいCPUが同じ位の値段で買えるのにわざわざpen4を選択される理由が何かあるのかなと^^;
Core 2 Duoモデルはまだ3万を上回ってますよね?
となるとAMDのAthlonとかかな…
>自作PCをし始めるともうメーカーのPCなんか買ってられなくなりますよねぇ。
>そこにメンドクササを感じない人はもうメーカー品を買う理由がなさそう。
プログラミングをするくらいですからそれくらいは苦にならないのでは?
今はメーカー製ですが、次は自作する予定です。(いつになるのやら…)
Core 2 Duoモデルはまだ3万を上回ってますよね?
となるとAMDのAthlonとかかな…
>自作PCをし始めるともうメーカーのPCなんか買ってられなくなりますよねぇ。
>そこにメンドクササを感じない人はもうメーカー品を買う理由がなさそう。
プログラミングをするくらいですからそれくらいは苦にならないのでは?
今はメーカー製ですが、次は自作する予定です。(いつになるのやら…)
Re:時折、画像に縦線が入る
いやいや、Core2Duoなら1万ちょいから買えますよ。
Core2Duo
http://www.coneco.net/SpecList/01501010 ... der/PRICE/
それに今Athlon買うならフェノムがいいですよ。
http://www.coneco.net/specList.asp?FREE ... IST_KIND=0
PCパーツなんて刻一刻と変わりますしね~。
現在のハイエンドモデルを買うと必ず損するかと・・。
その時代のミドルモデルを買うのが一番ですねb
7万でクアッドコア買った直後に価格改定で半額になったときホント泣きましたorz
Core2Duo
http://www.coneco.net/SpecList/01501010 ... der/PRICE/
それに今Athlon買うならフェノムがいいですよ。
http://www.coneco.net/specList.asp?FREE ... IST_KIND=0
PCパーツなんて刻一刻と変わりますしね~。
現在のハイエンドモデルを買うと必ず損するかと・・。
その時代のミドルモデルを買うのが一番ですねb
7万でクアッドコア買った直後に価格改定で半額になったときホント泣きましたorz
Re:時折、画像に縦線が入る
そうですね。余裕があったら日本橋で勉強しましょうか…(秋葉原はさすがに無理です。地理的にありえません。)
うーん、Athlonのほうがクロック数が速い気がしますけど、Core 2 Duoのほうが速いのですよね。
ある程度グラボ性能いいのを用意したほうがゲームには向いているかも…
うーん、Athlonのほうがクロック数が速い気がしますけど、Core 2 Duoのほうが速いのですよね。
ある程度グラボ性能いいのを用意したほうがゲームには向いているかも…