>ashiato45さん SkypeA2Aやhamachi等について調べてみて、こういったネットワークのシステムが あることを知り大変勉強になりました。 本題の方ですが、LANを超えての通信をテストしていた友達のネットワーク環境に 問題がある事が分かりました。試しに別の友達と通信したところ、無事接続する ことができました。 お騒がせして申し訳ありません。そしてashiato45さんアドバイスありがとうございました。
単なる通りすがりですが。 LANを超えようとするとNAT越えとかいろいろ面倒なので、 「hamachi」で調べてみるとかもうあまり聞かなくなりましたが SkypeA2A通信とかで代替したほうが楽かもしれません。 横槍すみません。では。
DXライブラリによって私はプログラミングを学ぶことが出来ました。 日ごろからDXライブラリに感謝しております。 本日はネットワーク機能についての質問をさせて頂きたく掲示板に参りました。 リファレンスページの通信関係に載っているIPを用いた通信プログラムの サンプルをそのまま実行したところ、(IPの部分だけ変更しました) LAN内での通信は成功したのですが、インターネットを介した通信では 相手のPCへ接続する事が出来ませんでした。 グローバルIPによる通信をするにはどうすれば良いのでしょうか?
> 管理人さん いろいろ調べていただきありがとうございます。 私の環境でもリンクできるようになりました。 といっても本当に試してみたかったことがこれでやっと確認できる ようになったところなので、また質問に繰るかもしれませんが よろしくお願いします。
セットアップ関係質問用に掲示板を一つ用意した方が良い気がしてきました 因みに部屋の片付けはまだ終わってません orz > Willさん 調べてみました。 どうやら Turbo C++ で作成されるプロジェクトに標準で付加される条件定義に NO_STRICT が追加されてしまっているのが原因のようです。 とりあえず NO_STRICT を無効にする設定を加えたらリンクが通りましたので 宜しければお試しになってみて下さい。 ====================== プロジェクトを開いた状態で「プロジェクト」→「オプション」 でプロジェクトのオプションダイアログを開きます 左側のリストから「C++コンパイラ」→「パスと定義」を選択 右側の「指定された識別子の条件定義としての定義を無効にする(-U)」の チェックボックスをチェック その下にある文字列入力ボックスに NO_STRICT と入力します 「OK」ボタンで決定 ====================== これで標準で設定される NO_STRICT が無効になります。 > 白河飛翔さん 個人的には値段が高くなった、というよりは Visual Studio .net 2003 辺りから言語単体での販売が無くなったからまとめ買いするしかなくなって 結果として購入金額が高くなった、という印象があります。 確かに Visual Studio 2008 は全部入りの割には安いですね。 そろそろ購入しないと・・・
>コンパイラは日々進化しているので、新しいコンパイラを搭載した >ソフトの方が生成されるマシン語コードが高速です。 回答ありがとうございます。 ではVS2008に、移行したいと思います。 というか、コンパイラって今「滅茶苦茶」安いのですね。 VS.NET2003の時は学生だったので、アカデミック版を何とか買いました。 それ以外は馬鹿みたいに高かったですよね? ソフト系の仕事をしているワケでは無いので、記憶がその時のままですw なので、ずっとコレを使い続ける気でいましたw もうVS2008STあたりを購入したほうが、手っ取り早いのと VBやC#(.net)で遊べるのでイイかもしれないと思ってきました(汗
作りたいゲームの都合上、開発環境をTurbo C++ Explorer + DXライブラリ(BCC用)に変えました。
プログラムしていて気がつたのですが、SetUserWindowのように引数にHWNDを持つ関数を使用するとリンク時に必ず外部参照エラーになります。
[リンカ エラー] 外部シンボル 'SetUserWindow(void *)' が未解決(C:\WORK\TEMP\TEST\UNIT1.OBJ が参照)
いろいろ試しているのですが解決できないでいます。
詳しい方が居られましたらお知恵をお貸しいただけませんでしょうか?
<私が試してわかったこと>
1.HWNDを引数に持たないDXライブラリ関数は問題なく使える
2.HWNDを引数に持つ自作もしくは開発ツール標準の関数は問題ない
3.GetMainWindowHandleのように戻り値の型がHWNDの関数は問題なく使用できる
4.C++ Builder Ver.5、およびVer.6でも現象は同じ
5.コマンドラインからbcc32.exeを使って下のようなサンプルプログラムをコンパイルした場合は問題ない
#include "DxLib.h"
int main(void) {
HWND aaa;
SetUserWindow(aaa);
return 0;
}片付け終わりませんでした orz > dxさん はい、DirectXはフルスクリーンモードでのみフリップが使用できるので フルスクリーンモードのほうがウインドウモードより高速に動作させる ことができます。 (GPUには「VRAM上のどの部分をディスプレイに表示するか」 というのを設定することができますので、フルスクリーン時は ScreenFlip ( DirectX7 的には Flip、DirectX8 以降は Present ) が呼ばれた際にディスプレイに表示するVRAM位置を裏画面が 格納されている箇所に変更するだけで「表画面←→裏画面」の 切り替えができます。 対してウインドウモードでは画面上には自分のソフトの画面以外に デスクトップ上の他のソフトの画面も表示されているので、勝手に 「ディスプレイに表示するVRAM位置」を変更することができません。 その結果として裏画面の内容を表画面にコピーする必要が生じるので、 コピーにかかる時間分だけウインドウモードの方が パフォーマンス的に不利になります) > 白河飛翔さん 開発ソフトの違いによる動作の差は恐らく 生成される実行ファイルの処理速度の差や バグ検出精度の違いだと思います コンパイラは日々進化しているので、新しいコンパイラを搭載した ソフトの方が生成されるマシン語コードが高速です。 (新しいソフトの方がより高いマシン性能を前提として開発されて いるので、それ以前では処理時間が掛かり過ぎたり必要メモリ量が 多すぎる等の理由で実装できなかった最適化処理が実装されていたりします) また、検出されるバグの精度も、 例えば VisualC++6.0 ではスルーされてしまうメモリの不正な アクセスも VisualC++ 2005 ではしっかりエラーとして表示 されたりします。 というわけで、開発ソフト自体の動作負荷が問題にならないのでしたら なるべく新しい開発ソフトをお使いになることをお勧めします。
技術的な質問ではない気がするので、こちらに書込みをさせていただきました。 くだらない質問だったらすみません。 今まで、VS.NET2003 + DXLIB でプログラミングをしていました。 ノートPCに、サブ的な意味で無料のVS2008EEを入れたのですが、 いつのまにか殆どノートPCでの作業ばかりになってしまいました。 ファイル管理的な問題もあるので、もうノートPCに移行しようと思うのですが、 VS.NET2003の開発環境も引越しさせるべきでしょうか? VS.NET2003とVS2008EE(無料)で、全く同じプロジェクト(ワーニング対策記述と アイコン付け方法の差はあり)をビルドしたとき、どういう差があるのでしょうか? 動作速度や動作機種(汎用性?)の差があったりするのでしょうか? 「そんなのプログラム内容によって変わる」というのが答えな気がしますが、 一般的にどうなのか、というのを知ってる方が居る事を期待しているという 滅茶苦茶な書き込みになりましたが、どうか怒らないでくださいorz
>DXの縦線 以前「DXの性能を最大に引き出すのはフルスクリーン」という記事を見たことがありますよ。 つくーるのゲームをウインドウ起動すると画面がちらつくのもそのせいらしいです。
先週の土日から部屋の片付けを始めたら終わらなくなりました orz 週末の間になんとかしたい・・・ > なんとかな〜れ〜さん この辺の煩わしい問題をクリアしてPCで3Dゲームを開発している ファルコムは本当にすごいと思います。(・・; (かなり古く、癖のあるGPUでも低解像度、低フレームレートで なんとか動くようにしてしまっているようですし・・・) > Dixqさん 完成おめでとうございます! 前作のパワーアップ版ですかー・・・デモ動画を拝見しましたが・・・凄いの一言です。 片づけが終わったらプレイさせて頂きます。(^^ DXライブラリ、お役に立てた用で何よりです。 最近私の予想を超える作品が多くなってきました。(汗
管理人様を初め、多くの方々に助けられて、また一つゲームが完成しました。 四聖龍神録Plusという名前で東方風のSTGを作製しました。 以前四聖龍神録を制作しましたが、今回はそのバージョンアップ版です。 DXライブラリで、私の生活は一変しました。 毎日充実した日々をすごさせていただいています。本当にありがとうございます。 以下、そのゲームを紹介させて頂きます。 h ttp://l.huu.cc/sr/ 記事右上の「web sight」からも辿れます。 (紹介動画) h ttp://www.nicovideo.jp/watch/sm3847955 DXライブラリ愛好家ですが、また更にDXライブラリが大好きになりました。 これからも自サイトでDXライブラリは素晴らしいライブラリなんだ!という事を、 アピールさせて頂きたいと思います!><b 本当にありがとうございました。
> 管理人様 ご返信ありがとうございます。 そうですね、やはり内部的(ハード的)な「何か」が原因のようですなあ……。 あまり内部的な話は存じませんが、パソコン内に多数に存在する(しかも無数のメーカーの)部品が種々のプログラムと精確に連関し合うということは、大変なことなのでしょうね。 一口に相性ということも聞きますしね。 となると確かに、仮にこの問題を修正したデータができ、提供していただいたとしても 他の正常なものとの汎用性を失ってしまい、実用的ではありませんね。 ただ、機能のAやBなど、複数の機能やその使い方(引数など)の微妙な差異というのは 面白そうなところではありますね。DXライブラリやDirectXを使って作られたゲームの全てに縦線が走る わけではないようですから、何かあるのかも知れませんね。 後は個人的なハードディスクの中身を総点検するとしまして、ゆるゆる調べつつやっていきたいと思います。 どうもお世話になりました。今度はこんな訳の分からぬことではなく、実際的なプログラミング についてもっと考えていかなきゃならんですね。
> なんとかな〜れ〜さん dixqさんのスレッドを拝見しました。 うーん・・・これは・・・ハード、若しくはドライバの不具合である可能性が高いですね・・・ DXライブラリは基本的に DirectX の機能を使用して描画処理を行っているので、 DirectX が扱っているグラフィクスデバイスのドライバやグラフィクスデバイス自体に 不具合がある場合は手を出すことができません。 ただ、例えば何か描画処理に不具合があった場合「Aという機能を使って描画すると 不具合が発生するが、Bという機能を使って描画すると不具合が発生しない」といった 事があります。(例えば画像をポリゴンで描画しようとした場合、指定する頂点の順番 によって1ドットずれたりずれなかったり) なので、なんとかな〜れ〜さんがお使いのPCでも別の方法で描画処理を行えば 症状が改善されるかもしれません。 ただ、それをすることにより今度は今までのプログラムでは正常に動作していた環境で、 不具合が発生するという事態になる可能性があるので、ちょっと修正には慎重になりたい というのがあります。 なので、申し訳ありませんがとりあえず様子見をさせて下さい。m(_ _;m なんとかな〜れ〜さんの方で出来る改善策は・・・ドライバの更新や、常駐されている ソフトの中で何か原因となりそうなものはないかを調べる等ですが、メーカー製ノートPC である以上OSのクリーンインストールなどは難しいと思いますので、現状で既にできる ことはされているのではないかと思います。 お力になれず申し訳ありません・・・
どうもこんにちは。 標記の件のように、プログラムを実行した際、画像のいずれかに縦線の入ることがあります。 実はこの問題について、先日Dixqさんのホームページ(ゲームプログラミングの館)内の 掲示板で相談させていただきまして、どうもグラフィックドライバの問題ではないかということになり、 ドライバの更新を行いましたが改善が見られなかったので、製作者さんに聞いてもらっては どうかということで、こちらに来させてもらいました。(ちなみにその掲示板のトピックは ttp://www.play21.jp/board/formz.cgi?action=res&resno=17825&page=&id=dixq&rln=17857 です。) 現時点で分かっていることを列挙しますと、 ・ウィンドウモード特有の現象である(フルスクリーンモードだと起きない) ・必ずしも起きるわけではなく、また、どこに縦線がかかるかは不定 ・SetUse3DFlag(FALSE)を使うと現象を止めることができる ・本サイトコーナーにある、皆様の作品紹介ページの作品群にはこの現象が起きないようだ? といったところです。 次に、私の周辺環境を示します。 ・OSはXP、パソコンの型は2005年式(NEC LaVie LL350/C)ノート型、メモリは1GB ・ディスプレイのデバイス名はSiS M760GX(メモリ64MB)、オンボード ・グラフィックドライバはSiSGRV.dll(version6.14.0010.3840(英語))、日付(更新日)2008 ・DirectX version:9.0c 私個人のみに起きる現象のようですので、プログラミング自体には影響ありませんし、 また、縦線は微弱なものであり、フルスクリーンで作成すれば影響ないことなどから、 このままの状態でも構わないといえば構わないのですが、ご足労ながら、 何か解決の糸口等ありましたら、御一報いただければ幸いです。 正直、パソコンというものはどこかしか、気まぐれなる不具合があるものだと、半分諦めていますが……。
最近、DirectX に関して、個人的なものですが大発見がありました。(・_・; > BCI-3eさん 30日以上の利用にはユーザー登録が必要だったはずですが、 使用期限は無かったはずです・・・ VisualC++ 2005 Express Edition の初期版は確か1年間の使用期限が あったと思いますが・・・ > Qzさん ご指摘ありがとうございます。 修正しておきました。m(_ _)m
そうですか^^ わざわざ調べていただきありがとうございました。 DXを使う範囲で問題なければほとんどのゲームが作れると思っているので少し安心しました。
>一応、無償の商品登録キー入力のときに出てきたような気もしますが気のせいだったですかね^^; 私は有料版のほうを使用していますので、無料版に関してはHPで見れる範囲までしか 調べていません。登録キー入力の際に一年限定と出てきたのであれば、 一年限定になってしまうのでしょうね。 有料版と無料版の違いは純粋に機能の違いとなります。 以下のMSのページを見ると、確認しやすいと思います。 ttp://www.microsoft.com/japan/msdn/vstudio/products/vs08/compare.aspx 少なくともDXライブラリを使用する範囲では、支障がでることはないかと。
一年かんではなかったかな^^; 一応、無償の商品登録キー入力のときに出てきたような気もしますが気のせいだったですかね^^; 思い違いだったのかもしれません。ごめんなさい。 期間限定で無ければ少し安心です。わざわざ調べていただいてお手数かけました。 あと、MSコンバイラには有料と無償の二つがあると聞いた事があるのですが何が違うのでしょう? ゲーム製作に支障が無ければいいのですが・・・・・
>1年間無償で使えますよね? MSのページのどこを見ても、期間限定と書かれている場所が見つからないのですが どこに一年限定と書かれているのでしょうか?
ちょっと疑問があるので教えてください^^ マイクロソフトのフリーで出ているc++208のコンバイラって 1年間無償で使えますよね?もし1年を過ぎたらどうなってしまうんでしょう? また、無償版と有料版とでは何が違うのでしょうか? わからなければいいですが、ちょっとした疑問だったので・・・・・ 〆(´Д` ;A'`ィ コメント終了・・・
->Qzさん 3つ目に「Visual C++ 2005 Express Edition」というのがあったんですが、公開が停止になったため、リンクが2つになったんだと思われます。
このサイトの/natupaji/DxLib/dxuse.htmlに 「下記三つは無償提供されているので何も持っていない方でもOK」とありますが 2つしか載ってません。何か別のものがあったのが消えたんでしょうか?
>>管理人様 setDrawBlendModeの説明読んでたら加算ブレンドとかの単語で躓く始末。 おもしろそうなのでいろいろ勉強してきます。 レスありがとうございました。
なるほど! 確か前回も同じことで躓いた気がします; ホント成長しませんね(汗 助かりました!ありがとうございました! わざわざ長文を読んでくださりありがとうございました><
>Dixqさん 2枚のpng画像の画像サイズはそれぞれ200x200だったので128x128に調整しなおしたらつながりました。 (細かくソースは読んでいないので間違っていたらごめんなさい) リファレンスでDrawPolygon3Dを見ると <制限> ポリゴンに貼り付ける GrHandle が持つグラフィックの幅、 高さはそれぞれ2のn乗 (2、4、8、16、32、64、128、 256、512、1024、2048等)である 必要があります。 (幅と高さが同じ(つまり正方形)である必要はありません) との記載があったのでこれが原因ではないでしょうか? つまり128x128とか256x128ピクセルなどと画像はペイントソフトなどで適宜調整してやる必要があります。
管理人様が3D関係の関数の要望について懸念されていらっしゃる所恐縮なのですが; DrawPolygon3Dについて質問させて下さい。 この関数で表示させるとどうしても思った表示とはずれてしまうのです。 y座標は6点全て同じにして、z座標を奥行きを持たせるように変えてみました。 つまり「地面」を表現したいのです。 x座標 左側の点320-100 右側の点320+100 y座標 全て240-100 z座標 手前-200 奥0 という座標で一枚(2枚組み)描画し、もう一枚はxy座標は上記のままでz座標だけ z座標 手前0 奥200 にしました。この2枚を描画すると、地面が繋がっているように、切れ目無く つなげる事が出来るはずだと思いました。でも実際に描画してみると このようになるのです。 h ttp://l.huu.cc/img/tecs.PNG 途中で切れ目が入ってしまいます。z座標は繋がっているので繋がるはずだと思うのですが・・。 最新バージョンのライブラリでも試しました。 表示に使ったプログラムはこちらです。 h ttp://l.huu.cc/zip/tecs.zip (VisualStudio2005) 何かプログラムが間違っているのでしょうか・・。 アドバイス頂けると幸いです。 よろしくお願いいたします。
> かたわれさん フェードアウト、フェードインだけでしたらブレンド画像を使用する必要はありません。 フェードアウトするときは全ての描画処理が終わった後に真っ黒のボックスを少しづつ 透明度を下げながら描画することで、フェードインするときはその逆(透明度を徐々に 上げる)をすることで実現することができます。 (使用する関数は SetDrawBlendMode と DrawBox となります) > P.S まあDXライブラリを使用して頂いたこと自体が謝礼みたいなものですし。(汗) 応援ありがとうございます。 > ポリゴン ほんと機能が少なくて申し訳ありません・・・ ただ、本格的な3Dができるかのように見えるほど機能を整備してしまうと 3D関連の機能追加の要望がたくさん来てしまうので、最低限の機能で留めています。 現状では本格的な3Dを扱える程の機能整備をする時間的余裕がない、というより、 個人的にそれ以上に優先したいことがあるので暫く実装する予定はありません。 (2D主体のゲームに演出として使われる程度の3D表現くらいはできるようには したいと思っているのですが・・・) なので、DirectY さんの仰る通り本格的な3Dをやりたい場合は DirectX を 直接触る、もしくはもっと3Dの機能が充実したライブラリを使用するのが 良いのではないかと思います。
BlendGraphの件、解決してないけど解決しました。 うまく動かなかったのは元の画像が読み込めていなかった、という情けないものでした。 GetDrawScreenGraph()を使って、画像を取り込んでいたつもりだったが SetDrawScreen(DX_SCREEN_BACK)で裏バッファ(?)に書き込んで〜と設定したあったため 何も書き込まれていない裏バッファの画像をGetDrawScreenGraphで取り込んでいたのです。 ただ、前回もった疑問の@、Aが解決したわけではないので、教えていただければ幸です。
ポリゴンの中心を設定する件、解決しました。 MATRIX mat; CreateViewportMatrix(&mat,CX,CY,X,Y); SetTransformToViewport(&mat); これが、デフォルトでは ・X=横の解像度, Y=縦の解像度 ・CX=X/2, CY=Y/2 となっているようです。 つまり解像度(800*600)で消失点を左に200ドットずらしたい場合 float X=800.f, Y=600.f; // ウィンドウのサイズ float Xd=-200.f, Yd=0.f ; // 消失点の移動量 MATRIX mat; CreateViewportMatrix(&mat, X/2.f+Xd, Y/2.f+Yd, X, Y); SetTransformToViewport(&mat); この行をメイン関数の前に書くだけで実現出来ました。 この実装にはEuris様にアドバイス頂きました。 ありがとうございました。
>tkさん すみません、もう少し詳しく聞いていいでしょうか。 MakeGraphでグラフィックを作成して、そこに描画後、 そこからGetDrawScreenGraphで欲しい部分を切り取って、生成した画像を 左部分へずらして描画すればいいという事でしょうか? 1秒間に60回これを繰り返して低スペックPCでも計算しきれますかね?
->Dixqさん 申し訳ありません。MakeGraphの前に、SetDrawValidGraphCreateFlag(TRUE)を、後にSetDrawValidGraphCreateFlag(FALSE)を呼ぶ必要がありますね。
->Dixqさん 実行していないのでできるかどうかわかりませんが、次のような方法はどうでしょうか? 1.MakeGraph関数で空のグラフィックを生成する。 2.SetDrawScreen関数でその作成したグラフィックのハンドルを指定する。 3.そこにポリゴンを描画して、描画したい画面が完成したらDrawGraph関数で裏画面に一気に描画 とすれば、可能性はあがります。
>DirectYさん 横から失礼します。 言いたいことはうなずけるのですが、言い方がちょっと酷いのではないでしょうか? 管理人様のやる気を削ぐような発言はここでするべきではないと思います。
>DirectY様 ご回答ありがとうございます。 凝った3D処理をさせるのならDirectXを勉強するべきなのですね。 DXライブラリはとても大好きなので、是非使い続けたいと思っていたのですが‥。 DXライブラリはよく、「出来ない」と思ったことも非公開関数を利用すれば出来たりした 経験がよくあったので、今回も何とかならないかと思ったのですが、ヘッダファイルを見ても それらしいものはなく。。。 おっしゃるようにDXライブラリではどう頑張っても実装出来ない仕様なんでしょうか; 今作っているゲームが完成間近で、ここの仕様だけなんとか実装したいのですが・・。 私は、いつも自分の知識内で実装しようとする悪い癖があるので、 新しいものにも挑戦しないといけないなと思っています。 次回は是非勉強して実装しようと思いますm(_ _)m
ビューポート変換行列でDrawPolygon3Dの座標系を変えるのだと思いますが、 DXライブラリのリファレンスにはそういう関数はありませんね〜。 そもそも、DXライブラリで凝った立体表現を作るよりは、DirectX 9.0を覚えたほうが早いかと。 Dixqさんは能力があるので、いつまでもDXライブラリに閉じこもらずDirectX 9.0に挑戦してみては如何でしょうか。 もっと複雑で高速なグラフィックスが表現できると思います。
いつもお世話になっています。 DrawPolygon3Dで表示する中心は設定出来ないのでしょうか? 現在宇宙の中を飛んでいるような映像を作っています。 リファレンスのサンプルと同じ要領でDrawPolygon3Dを描画して このような映像を作りました。 h ttp://l.huu.cc/movie/tentai.wmv 今、この中心を左にずらしたいのですが、どうすればいいでしょうか? というのはこの画像の上のような状態(映像の中心は全体の中心)になっています。 h ttp://l.huu.cc/img/chusin.png これを画像の下のように、映像の中心を左に寄せたいのです。 吸い込まれていくその中心を左にずらしたいのですが、 どうすればいいでしょうか? どなたかご教授頂けると光栄です。
現在ドラクエもどきのRPGを作っています。 マップ切替時にフェードアウトして次のマップを表示したいのですが、うまくいきません。 理解しきれていないと思われる箇所が二箇所あります。 @LoadBlendGraphで読み込む画像ファイルがどういう意味を持っているのか理解していない。 ADrawBlendGraphの引数を理解していない。 @については現在表示されている画面と同じ大きさで真っ黒なファイルを用意しています。 A4、6、7引数が理解できていません。 @、Aそれぞれいろいろ変えてやってみたところ、一回だけうまく動作したのですが、 まったく設定を変えていないはずなのに日を改めて実行するとうまくいかなかったりします。 どなたかご教授いただけませんでしょうか? P.S. 管理人様 おめでとうございます。 コレだけがんばっているのだから少しくらい謝礼が出ても良いのになー、 なんて素人考えで思ったりしてます。 へたれな僕ががんばってソース書いていけるのもDxLibのおかげだと思ってます。 これからもがんばってください。
先月の初旬辺りから書籍内のゲームプログラムの解説にDXライブラリが使用されている 「14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2008編」が 書店に並び始めたようです。 タイトルの名の通り今回から Visual Studio 2008 Express Edition のインストール用DVDが 本に付属しているので、書籍内で前提とするプログラミング環境が Visual C++ 2008 Express Edition と なっています。 また、タイトルは殆ど同じですが、内容は全8章中6章を全面的に改訂されたそうで、 サンプルプログラムで扱っている内容もシューティングゲームからアクションゲームに 変更されています。(というか殆ど新しい本です) 都内の、パソコン書籍も置いてあるような電器店ではゲームプログラム系の棚で平済みされていました。 初代の時は1・2冊棚に置かれているだけだったので驚きました。 因みに、はしゃいでいますが著者は私ではなく初代と同じく大槻有一郎さんです。(^^; 今回も私は本の内容には一切関わっていませんし、何冊売れても金銭的な利益はありませんが、 なんか嬉しいので宣伝しちゃいます。 > Dixqさん ご報告ありがとうございます。 早速修正しました。m(_ _;m
管理人様へ 現在PlaySoundとPlaySoundFileという関数は同じ機能としてどちらの名前でも使えるようになっているのですよね? よくリファレンスページに「PlaySound関数と同じです」みたいな記載があり、クリックするとPlaySoundFile関数に飛ぶのですが、 PlaySound関数とPlaySoundFile関数が同じ機能の関数であることを知らないと少し混乱すると思うので、PlaySoundFileで統一してはいかがでしょう? 何か意図があっての記載でしたら誤解してすみません。 お忙しいと思いますし、そこまで必要性があるものでもないと思いますので、 参考程度に頭においていただければ・・と思います。
やっと少し作業が進みました。 仕事ですが・・・ 流石に2日使うと進みます。 > tkmakwins15さん、通さん、JEXさん ご意見ありがとうございます。 もしアンダースコアが付いている関数がリファレンスに載っていたら 直ぐにでも対応しなくてはいけませんが、幸い非公開の関数ですので とりあえずは現状のままでいこうかと思います。 > 憂煉さん ご指摘ありがとうございます。 たまたま FALSE と NULL の値が0だったので正常に動作していたようです。 動作に支障はありませんが、混乱の元なので FALSE に変更しておきます。
管理人様へ DxGraphics.cpp内のST_GetValidRestoreShredPoint関数は真偽値を返してますよね。 DxWin.cpp内のDxLib_WinProc関数のWM_ACTIVATEを受ける場所あたりで 上記関数が呼ばれ、戻り値がNULLと比較されてるんですが… これは意図したコードなのでしょうか?
私も今のままで良いのではと思います。(関数名におかしいのとかありましたっけ?) DXライブラリの最大の魅力はC言語の参考書と相性が良いという点とC++を一切覚えなくても使える点だと思うので。 (私自身C言語しか知らなかったのでDXライブラリ以外のライブラリは敷居が高く感じていましたし)
>名前空間 明示名前空間はC++の機能なので、 VCとかならオプションでCのみのコードでも、 C++としてビルドできますが、それでも せっかくCのみで使えるのだから、 その強みをつぶすことは無いかと。。。 Cでも構造体に関数ポインタメンバを用意して、 外見えはそれっぽくすることはできるかもしれませんが、 あまり現実的ではないでしょうね。。。 やっぱり、憂煉さんか管理人さんのおっしゃるように、 関数名を妥当なものにするのが確実かと。
->管理人さん どうせなら、名前空間の導入という手を考えてみるのはどうでしょうか?
orz > 通さん なるほど・・・ では、今後同じ様な例があった場合は末端にアンダースコアを付けるようにします。 (そんなんでいいのか、という気もしますが・・・ (・・;)
アンダースコアで開始される識別子は
「予約済み識別子」になるので、規格上、
動作が未定義になりますので。
(ここでいう「予約済み識別子」とは規格や処理系が使用するものをいいます)
よく仕事でバグ修正するときに構造体とか調べると、
Windowsヘッダとかのまねをして、
typedef struct __aaaa__{
int hoge;
int huga;
}AAAA, *LPAAAA;
なんてやってるコードを目にするのですが、
わざわざ見づらくしなくたってと思ったり・・・^^;
実際のところ実害はほぼないのでしょうが。。。
GWはあまり有意義に使えませんでした。orz もっと自分に厳しく生きないと良くない結果が待っていると確信しました。 > Dixqさん 負荷ランクを付けるのはちょっと・・・ 負荷が高い関数も、関数毎に負荷が大きくなる原因は違うのでやるとしたら 関数毎に注意文を追加することでしょうか・・・ # 山登りの疲れは未だに引きずっているような気がします。(汗) # もっと運動しないと・・・ > GreenDayさん ShotAdd関数を弄るだけでは実現することは出来ません。 ENEMYSOT 構造体にメンバ変数を追加して、WinMain 関数内の「弾の処理」の部分に 手を加える必要があります。ちょっと掲示板の一言返信ではカバーできません。 > 憂煉さん GetSystemInfo は Win32API に同名の API があるので衝突を避けるためにアンダースコアを付けました。(汗) アーカイバの件は了解致しました。 > ななしさん ご指摘ありがとうございます。 ただ、あの説明文は「ポインタを理解している人にしか分からない」という指摘もありましたので、 手を加える場合は全体的に書き直すことになると思います。
>>Jackさん 確かに。 まあ文法上間違ってる訳じゃないのでスルーしてたんですがやっぱ気になります。 >>管理人様 時間のある時にゆっくりと修正をお願いします。 それと、以前のアーカイバの件なんですが思った以上に作業に時間かかっちゃってます。すいません
> 最初にアンダースコアが来てますけど それを言ったら、__DXLIBなどのマクロも変えた方がいいですね。
- Aska BBS -