検索結果 239 件

by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: OutputDebugStringが動かない
返信数: 14
閲覧数: 11828

Re: OutputDebugStringが動かない

ソフト屋様ありがとうございます。
::OutputDebugString(L"aaaaaaaaaaaaaaaaaaaaaaa\n");
::OutputDebugStringA("aaaaaaaaaaaaaaaaaaaaaaa\n");
も含めた上で試しましたが表示されません・・・
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: OutputDebugStringが動かない
返信数: 14
閲覧数: 11828

OutputDebugStringが動かない

失礼します、お久しぶりです。 諸事情でしばらくコーディングできなかったのですが、久しぶりにVisual Studio2012でデバッグをしていたところ、OutputDebugStringが動作していないようなのです・・・。 いや、関数は成功してるのかもわかりませんが、出力に表示されません・・・。VCは最新の状態のはずです、どうしてでしょうか。コンテキストメニューのプログラム出力にもちゃんとチェックしてあります。 再起動やらしましたがダメです。 試しにOutputDebugStringするだけのコードも書きましたが動きません。なにか設定しないと動かない関数だったでしょうか。どうしたら動くか、誰か...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: プログラミングの上達方法について
返信数: 5
閲覧数: 1602

Re: プログラミングの上達方法について

どうでもいいかもしれませんけれど、「上手な人のプログラム」って手に入れるのは相当困難だと思います。 プログラマなんてのは技術を売る仕事ですし、公開されているのは良心や教育としてが多いと思います。このサイトに置かれているコードだって、(もちろん立派なコードですが)指摘しようと思えばたくさんできるコードです。 ソフト屋様がおっしゃっていることと意向は同じなのですが、私なりの言葉で述べてみます。 芸系の大学などの講義、小学校の図画工作の授業等で、見た絵の感想を書かされてました。国語の授業でも、読書感想文を書かされました。皆そうだと思います。 この時、文章や絵のタッチ、癖を見ることは当然大切だと思いま...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: D3D9を使ったゲームプログラムエラー
返信数: 3
閲覧数: 646

Re: D3D9を使ったゲームプログラムエラー

#include <d3dx9.h>
がコード中に無いのでは。
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談】プログラミングについて 皆さんに訊いてみたかったことなのですが・・・・
返信数: 18
閲覧数: 2646

Re: 【雑談】プログラミングについて 皆さんに訊いてみたかったことなのですが・・・・

私なんて参考にならないでしょうが 1、プログラミングに興味を持ったのはいつであるか、また勉強し始めたのはいつか? 中3?中2だったかもしれない 2、何に触発されてプログラミングに興味を持ったか 日本Falcomのゲーム 3、(C、C#、C++、Java)のなかでどの言語を一番初めに触れたか。(おそらくCかJavaだとは思いますが・・) C++(今思えばアホ) 4、上記4つの言語で自分の中で最も熱中した言語は何か? C++ 5、言語をある程度勉強して、自分でも何か作ろうと思い、初めに完成した当時の自信作?はどのようなものでしたか?(大雑把で結構です) ゲームですねー コンソール上のゲーム 6、プ...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: 「(☝՞ ਊ ՞)☝」などの文字をデバッグ出力に表示する方法
返信数: 4
閲覧数: 3050

Re: 「(☝՞ ਊ ՞)☝」などの文字をデバッグ出力に表示する方法

>YuO様 設定上なさそうですね。 OutputDebugStringWですが,元々 OutputDebugString function (Windows) に OutputDebugStringW converts the specified string based on the current system locale information and passes it to OutputDebugStringA to be displayed. As a result, some Unicode characters may not be displayed correctly. ...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: 「(☝՞ ਊ ՞)☝」などの文字をデバッグ出力に表示する方法
返信数: 4
閲覧数: 3050

「(☝՞ ਊ ՞)☝」などの文字をデバッグ出力に表示する方法

「(☝՞ ਊ ՞)☝イェェェェェwwwwwウッヒョオオwwww✌✌✌✌✌✌( 'ω')✌✌✌✌✌✌ _| ̄| Σ・∴'、-=≡( ՞ਊ ՞)ドコドコドコwwww」 この文字列を、VisualStudioデバッグ出力ウィンドウに表示すると、 「(?? ? ?)?イェェェェェwwwwwウッヒョオオwwww??????( 'ω')?????? _| ̄| Σ・∴'、-=≡( ???)ドコドコドコwwww」 となります。コンソールも当然表示されません。 これをせめてデバッグ出力に正常に表示することはできますでしょうか? プロジェクトの文字コードはUnicodeにし、OutputDebugSt...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: 俺、私の自己流C言語コーディング
返信数: 7
閲覧数: 1179

Re: 俺、私の自己流C言語コーディング

自己流でいい!というのなら遠慮無く書いてみようかな。行単位の見やすさ重視で、1ページに表示される行が~~とかは気にしない派です。それならディスプレイ大きくしようぜ!ってなります。 使える環境ならタブインデント多用します。幅は4です。 /*! * @brief 関数要約 * * 関数の詳しい説明 * @param param1 引数の説明 * @param param2 〃 * @param param3 〃 * @param param4 〃 * ...必要に応じて更に使用方法とか、コードにドキュメント付けします。 */ int hogeFunction( int param1, double...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: ■ 新年の挨拶トピック~2013~ ■ 今年の抱負 ■ [雑談]
返信数: 25
閲覧数: 2525

Re: ■ 新年の挨拶トピック~2013~ ■ 今年の抱負 ■ [雑談]

あけましておめでとうございます。 最近は私情が忙しくて相当顔を出していませんが、このコミュニティにはとてもお世話になっております。 http://dixq.net/forum/gallery/image.php?album_id=109&image_id=552&mode=thumbnail 今年の抱負は・・・「IDEを起動しては終了し、また起動しては終了する癖をやめる」ですかね(ぇ 2012年はDirect3D11やDirect2D、シェーダとかを勉強していましたので、それを引き続き頑張っていきたいですかね。 関係ないけど、WRLを使わないとネイティブC++のみでWindowsStoreアプ...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: STGクラス設計
返信数: 15
閲覧数: 2284

Re: STGクラス設計

あ、セッタが不要だという文に集中してて効率の話をし忘れてました(^p^)
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: STGクラス設計
返信数: 15
閲覧数: 2284

Re: STGクラス設計

エラーについてですが、自身で見つけられるようにしてたほうがいい設計ができるとおもいます。 というのも、オブジェクト指向的な設計は「バグを作らせない」、そして「バグを見つけやすい」という特徴があったりします。(アクセス制御もバグを作らないようにする一環ですね)。ですので、せっかくのバグなのでどうやったら今のバグを見つけやすいか、考えてみるのもよいでしょう。ちなみに今回のミスは、描画と演算を分けていたおかげで数分で見つかりました。モジュール化も、バグを見つけやすくすることにつながりますから、積極的にしていくべきですね。 今回setterが異常に多くなってしまった原因の、コンストラクタを使うという部...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: STGクラス設計
返信数: 15
閲覧数: 2284

Re: STGクラス設計

正しく動かない理由はCMyBulletManage::setBulletのせいです。以下のように修正してください。 void CMyBulletManage::setBullet(CMyBullet& mybullet){ for(int i=0;i<MY_BULLET_MAX;i++) { if( ! myBullet[i].isAllocated() ) // ==TRUE では絶対に真を返しません。 { printfDx("set\n"); myBullet[i].set(mybullet.getX(),mybullet.getY()); break; // breakしないと・・・ }...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: STGクラス設計
返信数: 15
閲覧数: 2284

Re: STGクラス設計

まず、前回と比べてコードが綺麗になったのではないでしょうか? 前回指摘した、描画と演算の分離、基本的にはできていますね。 せっかくならCGame::Processも描画部分を別のCGame::Drawに分けてしまっても良かったかも知れませんが、これだけでも、だいぶコードが修正しやすくなると思います。 そして、まさかのenumハック。突然だったのでびっくりしました。いいと思います。 すごく細かい点ですが、 int i; for(i=0;i<MY_BULLET_MAX;i++){ if(MyBullet[i].IsAllocated()==TRUE){ MyBullet[i].Draw(); } ...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: STGクラス設計
返信数: 15
閲覧数: 2284

Re: STGクラス設計

詳細をまだ見ていないのですが先に答えられる点を答えます。 今回のものですが、挙動が不安定というか、弾を出すとものすごくかくつくんです。パソコンがフリーズしたり、プログラムが落ちたりするわけではないのですが、なんだか怖いので先にそのことだけ書いておきます。 WaitTimer(17) ; // 約60fps を消してください。DxLibは標準で垂直同期を取るので不要ですし、17msは絶対に60fps出ません。 それにGetも...関数の書き換えが頻繁にあったので、アクセス制御が頭から吹っ飛んでいました...すみません... ええ、でしょうね。 だからこそ前述のとおり、まずすべてconstを付けて...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: STGクラス設計
返信数: 15
閲覧数: 2284

Re: STGクラス設計

お疲れ様です。 ずうずうしいのは分かっています。でも、本当に僕一人だとどう頑張ってもできないんです。 いえ、とても試行錯誤されたのなら図々しくなどありませんよ。 まずパッと目についた間違いを指摘すると、関数のconst指定の仕方が間違っています。前回私が言ったので参考にして下さったんですね、ありがとうございます。しかし、constの位置が違います。例えば const void CMyBullet::Draw(){ DrawString(CMyBullet::x,CMyBullet::y,"|",0xffffff); } void CMyBullet::Draw() const { DrawSt...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: [雑談]プログラミングで一番嫌な経験は?
返信数: 24
閲覧数: 2188

Re: [雑談]プログラミングで一番嫌な経験は?

史上最悪のデスペナ さんが書きました: ちなみに、私は
バグを見つけたとき、すぐにAという対処方法を思いついたけれど、それは求める動作に対する別のアプローチになるので
何とかして今のアプローチのままで直したいと思い、1日かけたけど結局Aという対処をするしかないという結論に達した時ですね
1日が無駄になったと思ってしまうので^^;
私はそれはとても得をした思いますけどね。その試行錯誤が大事でしょう。



ちなみに、私はZソートですかね

Z ソ ー ト で す か ね 
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: ダウンキャストはやっていいの?
返信数: 9
閲覧数: 2128

Re: ダウンキャストはやっていいの?

あーーなるほど

うーんなかなか複雑ですねぇ・・・
そうですね・・・

勢力を考慮するのがキャラどうしだけで、今後仕様が変わらないのなら、ダブルディスパッチはどうでしょう。
こちらを参照してみてください。
これを応用して、ContactAreaのオーナ毎に振る舞いを変えるのも手です。
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: ダウンキャストはやっていいの?
返信数: 9
閲覧数: 2128

Re: ダウンキャストはやっていいの?

あーそういうことでしたか。
んー・・・
ひょっとすると、もうEntityはインターフェースクラスということを割りきってすべての継承先で必要になる純粋仮想関数を宣言しといたほうがいいのでしょうか?
細かい仕様分かりませんがあまりイイ事である気はしません。
インターフェイスは見せるモノを絞るのに使ったほうが良いでしょうし、全部まとめてしまっては意味が無いのでは。


えっとー・・・具体的にどこでダウンキャストしちゃってるんですか?
一向に肝心のダウンキャストの部分が見えないのですが。
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: ダウンキャストはやっていいの?
返信数: 9
閲覧数: 2128

Re: ダウンキャストはやっていいの?

まずEnergyInformationクラスとCollisionInformationクラスを用意します。 EnergyInformationクラスに勢力情報を取得する純仮想関数の宣言し、CollisionInformationが更にそれを継承(勢力情報を取得する関数はまだ定義しない)、ここには当たり判定に必要な関数を純仮想関数で宣言します。そしてCharacterクラスより下の具体クラスで全て定義します。 Entityには自分(Character)のthisポインタをCollisionInformationとして渡し(暗黙的なアップキャスト)、当たり判定で当たっていた場合、接触元へ返す際に...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: ダウンキャストはやっていいの?
返信数: 9
閲覧数: 2128

Re: ダウンキャストはやっていいの?

文章だけなのと継承関係の矢印の向きがはっきりしない(想像はつきますが)のでよくわかりませんが、 当たり判定を出した時情報を欲しいから、Character型にキャストするのは良いのか、という話だと解釈します。 結論から言うと、良いとは思えません。 インターフェイスを使ってはどうでしょう。 Entityクラス・・“実体クラス”?そのあたりの関係性がよくわからないのですが。 例を挙げるなら、 まずEnergyInformationクラスとCollisionInformationクラスを用意します。 EnergyInformationクラスに勢力情報を取得する純仮想関数の宣言し、CollisionIn...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: STGクラス設計
返信数: 8
閲覧数: 1117

Re: STGクラス設計

ええ、時間をかけて直してみてください。

いろんなモノを作ってみるのも大切ですが、一度書いたコードをより良い物に直そうとするのはプログラムの勉強で最も大事だと私は勝手に思っています。頑張ってください(*´∀`*)

※あーあと私結構この掲示板見ないことも多いので、ここのコミュに登録するとかしてトピ立てたら私にメッセージ送ってくれれば確実に返信できます
まぁ他の方も返信してくれるでしょうし大丈夫でしょうが
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: STGクラス設計
返信数: 8
閲覧数: 1117

Re: STGクラス設計

main.cpp #include "Game.h" #include"DxLib.h" // main関数の開始 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(TRUE) ; // debug用ウィンドウサイズ if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1 ; // エラーが起きたら直ちに終了 } SetDrawScreen( DX_SCREEN_B...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: STGクラス設計
返信数: 8
閲覧数: 1117

Re: STGクラス設計

void CMyShip::Shot(CMyBulletManage& MyBulletManage){ MyBulletManage.Set(CMyShip::x,CMyShip::y); } void CMyShip::Process(CMyBulletManage& MyBulletManage){ CMyShip::Move(); CMyShip::Shot(MyBulletManage); CMyShip::Draw(); } というように書き換えれば弾が表示されます(宣言の方も直してください。) さて・・・とりあえずやっと思うような動きになったと思われるので、設計について見ていき...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: STGクラス設計
返信数: 8
閲覧数: 1117

Re: STGクラス設計

コンパイルし、画像を用意しましたが、自機だけ表示されて弾が表示されませんね。 ・・・指摘する点が、多すぎですねこれは(・ω・`;;;) まず演算と描画は分離してください。そうすることで、見た目を変えたい時は描画関数だけ書き換えたり出来たほうが柔軟です。コードも見やすくなります。 弾が描画されないのは void CMyShip::Process(CMyBulletManage MyBulletManage){ CMyShip::Move(); CMyShip::Shot(MyBulletManage); CMyShip::Draw(); } でCMyBulletManage MyBulletMa...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: STGクラス設計
返信数: 8
閲覧数: 1117

Re: STGクラス設計

MyShip.h /// CMyBulletManageの宣言がない 前方宣言で対処します MyBullet.hをここでインクルードしてもよい(MyBullet.hの多重インクルードを防止すれば) MyShip.cppに関連注釈 class CMyBulletManage;  /// ☆ class CMyShip{ private: int x,y,v; int GraphHandle[4]; int handlec,c; public: CMyShip(); void Move(); void Draw(); void Shot(CMyBulletManage MyBulletManage...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: STGクラス設計
返信数: 8
閲覧数: 1117

Re: STGクラス設計

懸念通りというか・・・まず、プログラムのコンパイルから失敗しましたか。
今から添削してみます。
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのクラス設計について
返信数: 11
閲覧数: 3814

Re: ゲームのクラス設計について

ISLeさん、 新月の獅子さん、返信ありがとうございます。 何となくわかったような、わからないような...少しもやもやした感じがします。 具体的に何が理解できてないかはわからないので何も言えないですが... 新月の獅子さんの例にある、クラスA,Bの違いですが、機能的な違いは分からないです。 ポインタの使い道や、使うと何がいいのかというところは分かっていません。値渡し、参照渡しくらいしか理解していないです。 なので、絶対使わないようにしています。 とりあえず、自機の座標を弾に与える方法についての目途がたったと思うので、もう一度考えてみます。 次は何かしらコードを乗せられるよう頑張ってみます。 ...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: 潜在的なエラーの発見方法
返信数: 2
閲覧数: 446

Re: 潜在的なエラーの発見方法

あくまでも一つの方法でしかないですけども、newにファイル名、ライン番号を持たせ、デバッガのメモリリーク吐き出しの時に同時に一緒に吐き出方法もありでしょう。(VCでのやり方しか知りませんが(´=ω=`)なのでできれば例外安全なコードを意識するのが一番大事です。
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのクラス設計について
返信数: 11
閲覧数: 3814

Re: ゲームのクラス設計について

関連はクラス内の関数にクラスが入るものかなと考えました。 関連は、インスタンスのポインタを保持すると説明しました。 class A { private: Object object; }; class B { private: Object* object; }; タンタルさんのポインタについての理解の程がわからないので聞きますが、このAとBのクラス、何が違うかわかりますか? ところでなのですが、自機クラスと関連付けるのは弾クラス、弾管理クラスどちらがいいのでしょうか... 弾管理クラスと関連付けたほうがやりやすそうな気がするのですが、普通に考えれば関連あるのは自機と弾のはずです。 いまさら...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのクラス設計について
返信数: 11
閲覧数: 3814

Re: ゲームのクラス設計について

まず、抱合ってなんでしょうか? もしかすると、包含(ほうがん)でしょうか? 包含だという前提でお話します。 包含とはhas-a関係と呼ばれ、「AはBを保持している」という事になります。 今回タンタルさんは、「弾は自機が保持している」というのは正しい設計か、というお話だと解釈します。 正しい設計か、それはタンタルさんが決めることですが、私は 絶対にしません 。 包含というのは、OOPにおいて「最も依存関係の強い設計」であることをよく理解してください。 TOMYさんも指摘していますように、has-aの場合、自機が死ねば弾も死ぬことになります。要は、運命共同体です。 さて、ここでこの設計は、保守性が...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクト指向プログラミングについて その2
返信数: 5
閲覧数: 1163

Re: オブジェクト指向プログラミングについて その2

涼雅さんの言っていることは多態化とは少し違うのでは・・・むしろ、多態化はコードが増えることが多いのでは。 このように一つの要素(この場合はD3DXVECTOR3構造体)を"複数の用途"で利用すること というのは違うと思います。自分の見解を説明してみます(私も、まだまだ初心者なので他の方の返信と合わせて参考程度に)。 多態化とは、“複数の用途で利用できる”、ではなく、“複数の実装を同じ振る舞いで扱う”ことだと思います。 これは変数の数を減らしたり同じ役割を持った変数同士を纏めることが目的ではなく、様々な型の動作を同じ条件で違う動作をさせること、それによるコードの構造化、及び抽象化を行う技術だと思...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: クラスと管理クラスの関係
返信数: 15
閲覧数: 1206

Re: クラスと管理クラスの関係

ぐだぐだち引き伸ばしてしまい、本当に申し訳ありませんでした。 いえそれは気になさらないでいいんですよ。理解しようとしてるのは伝わってきますから時間をかけて理解してください。オブジェクト指向をこんなんで理解できる方があり得ないです。 set,getを全て書いている点について。 これは、保守性が高いと思いますか?考えてみます。 このsetは、星クラスにアクセスさえできれば誰でも変数を変更できるということです。 これでは誰かが変更してしまうかもしれません。と言っても一人で書いてるならそんな事はない、と思うかもしれませんが、コードが肥大化すればありえない話ではないでしょう。 それに、アクセッサを変数...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: クラスと管理クラスの関係
返信数: 15
閲覧数: 1206

Re: クラスと管理クラスの関係

みなさん言ってますがgetter/setterは全部書いとけばいいってものじゃないんですよ。
結局管理クラスを使ってないのですが、mainのごちゃごちゃしたところを別の関数にまとめ、それをメンバ関数に含むクラスを作れば、それが管理クラスになるのかなと考えています。
それクラスにする必要無いですよね?
クラスを使ったオブジェクト指向プログラミングをしようと思ったら、ISLeさんの返信などをよく読んで理解しようとしてください。

そうでないなら、C++で書く必要は微塵もありません。
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: クラスと管理クラスの関係
返信数: 15
閲覧数: 1206

Re: クラスと管理クラスの関係

詳しく読んでないのでわかんないんですけど、とりあえず急ぎでも肝心な星配列をアクセスできないところに置かないでください(^p^) まず星配列はmainに置くべきではないですよね。急ぎでもこれは設計に大きく関わります。 星配列(の要素)たちは、それらを管理するものが所持するべきです。私ならまず可変長配列を使いますが、今回は固定します。(あとこの例はC++11の機能とかstdとか極力使わないようにしてるんで普段の書き方と違ってミスってるかもしれないです) ※話に合わせて少し関数名を変えました。 namespace { const int numberStar = 20; } class StarFa...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: クラスと管理クラスの関係
返信数: 15
閲覧数: 1206

Re: クラスと管理クラスの関係

しかし、こうすると今度は星管理クラスから星クラスにアクセスできなくなります。つまりフラグをいじれないのです。
なぜ、そうなるのでしょうか。星管理クラスから星クラスへアクセスできるように設計すれば良いわけですが、タンタルさんはなぜアクセスできないとお考えなのでしょうか?
できれば試しにコードを書いてみせていただけますか。思い通りの挙動でなくても構いません。書くだけ書いて、一度見せていただけるとアドバイスがしやすくなるとおもいます。
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: 滑らかに数値を増減させたい
返信数: 6
閲覧数: 1277

Re: 滑らかに数値を増減させたい

float speed = 1.f; bool flag = true; while( true ) { if( CheckHitKey(KEY_INPUT_UP) == 1 ) { if( !flag ){ flag = true; speed = 1.f } speed*=1.1f; value += static_cast<int> ( speed ); } if( CheckHitKey(KEY_INPUT_DOWN) == 1 ) { if( flag ){ flag = false; speed = 1.f } speed*=1.1f; value -= static_cast<...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: クラス間の変数のやり取りについて
返信数: 25
閲覧数: 5389

Re: クラス間の変数のやり取りについて

個人的には、実践しないで質問を繰り返すことも丸投げだと思います。 このトピックを立てる時も、自分で出来る範囲での試行錯誤をしています。 そしてトピックで質問をして、返信をもらう訳ですが、理解できなければ実践も出来ません。 また、質問を修正してから「どうしたらよいのですか」の一点張りになっていますよ 共有するデータを保持するクラスのインスタンスを、離れた2つのクラスにどの様に渡せばよいのでしょうか。 共有するデータを保持するクラスのインスタンスは2つのクラスから参照できて、かつ必要な間ずっと存在してなければならないですよね? これをどうやって実現するのでしょうか。 宿題ではないでしょうが丸投げ...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: クラス間の変数のやり取りについて
返信数: 25
閲覧数: 5389

Re: クラス間の変数のやり取りについて

Abstract Factoryパターンというほどたいそうなものでなくて良いのですが、共有するデータを保持するクラスのインスタンスを引き出す関数とかを用意すれば良いのでは? グローバルにアクセスできてしまうのが気持ち悪いのならば、コンテキストとしてクラス間でリレーするオブジェクトを用意して、そこに含める形になると思います。 すみません。私には理解できませんでした。 「遠い距離にあるクラス間に関係がある設計」は、オブジェクト指向の設計として好ましいものなのでしょうか。 他の方も返信されてますように好ましいかはその時々です。ただ、遠くたって正しい設計の場合はあると思います。 それと前々の返信から...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームの設計について
返信数: 4
閲覧数: 657

Re: ゲームの設計について

わたしはまだまだ初心者ですが、綺麗な設計をしようと思ったらまず汚い設計とは何かをまなぶのが手っ取り早いと思います。

どうするかって?まずひたすらコードを書きます。
半年後、見返します。

半年かかりますが気づくことは多いと思います。
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: 関数スタイルキャストとは?
返信数: 3
閲覧数: 2916

Re: 関数スタイルキャストとは?

Cスタイルキャスト→(int)a
関数スタイルキャスト→int(a)
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: 抽象クラスの使いどころが解りません
返信数: 5
閲覧数: 1005

Re: 抽象クラスの使いどころが解りません

>派生クラスでオーバーライドしなければならない関数を含むクラス

これは見方を変えれば「間違いなくその関数が存在している」という事になります。
これは結果的に派生クラスのポインタを抽象クラスのポインタとして扱う事ができます。

例えば抽象クラスのポインタの配列を作り、そこに複数の異なる派生クラスをすべて抽象クラスの方として挿入したりできます。
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: 派生クラスなのに”抽象クラス”になる
返信数: 4
閲覧数: 2741

Re: 派生クラスなのに”抽象クラス”になる

些細な事ですが
>// 仮想デストラクタの”定義”は抽象クラスでも必要なようですね
純仮想デストラクタですね
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: {}の位置
返信数: 15
閲覧数: 6344

Re: {}の位置

コレはたしかに気になりますよね~ 完全にルールのない自由な場合(更に言えばC++の場合)、私は // class class Hoge :public Oya { private: int hoge; public: Hoge( hogeee ) :Oya() ,hoge( hogeee ) { // inline method } int getHoge() const; }; // method int Hoge::getHoge() const { if( true ) { // } else // まずこんな書きかたする人他にいないと思うんだけど、ifが重なるときはifの位置を揃えたく...
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: 宿題が解けないけん、教えてください
返信数: 4
閲覧数: 695

Re: 宿題が解けないけん、教えてください

フォーラムルールをお読みください。
課題の丸投げ(問題文だけ書く事)は禁止です。

ただし上のように記載してもらえればこれは当てはまりません。

自分でどこまでやったのか、今どこが解らないのかを明確にして下さい。

さっぱり解らず、手も足も出ない時は、その事を明記の上、

勉強方法からアドバイスを受けましょう。

どうしても提出期限の関係で答えが欲しい時はその事をしっかり明記の上、

回答者さん達の理解を求めるようにしましょう。
また、名前を変えて同じ質問をしているようですがそれも禁止です。
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dで、奥にあるはずのモノが手前に描画される
返信数: 5
閲覧数: 390

Re: 3Dで、奥にあるはずのモノが手前に描画される

コード読んでませんが、まずZバッファをオンにしていますか?
そして、問題のあるテクスチャに半透明要素はありませんか?
by nullptr
7年前
フォーラム: C言語何でも質問掲示板
トピック: 派生クラスなのに”抽象クラス”になる
返信数: 4
閲覧数: 2741

Re: 派生クラスなのに”抽象クラス”になる

「抽象クラス」と出たらまず純仮想関数の定義が抜けていると思ったほうがいいです。今回は純仮想デストラクタです。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: クラス間の変数のやり取りについて
返信数: 25
閲覧数: 5389

Re: クラス間の変数のやり取りについて

今回のAやBなどの抽象的な例えで、それらがどういう目的や関係性なのか、Bのメンバ変数がどういう目的、範囲で使用されるかもわからないのですから、こちらは一案を提示するしか無いわけですが。 > ですが、コンストラクタ経由で渡しても、クラス間の距離が今回よりも遠い場合は、リレーが長くなって結局汚いコードになってしまうと思います。 知りません。 リレーが長くなっても、たとえ汚くなっても、それが正しい設計の場合だってあると思います。 BやDそれぞれのクラスの役割や依存の仕方がわからない以上、私にはそれを判断することはできません。 ただ、今回DはBの情報を知りたいわけです。この時、実装はともかくDはBに関...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: クラス間の変数のやり取りについて
返信数: 25
閲覧数: 5389

Re: クラス間の変数のやり取りについて

まず、「保持」について確認ですが > クラスAが両方の インスタンスを 保持しているので ということは、BとCがAに 包含されている という解釈で良いのでしょうか? それともインターフェイスを保持しているのでしょうか? まあそれはそれとして、Bのメンバ変数をDに渡す方法がいくらでもあるのはわかると思います。 そのうちどうやって渡すのが良いかというのはケースバイケースだと思います。 ただ、オブジェクト指向的にやるとして一般的なの方法はBのインターフェイスをDに渡す方法ではないでしょうか。 渡したい変数がint型targetという仮定で例えのコードを描くなら、 class InterfaceB {...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: n角形の図形を三角形の集合にわける方法
返信数: 13
閲覧数: 1631

Re: n角形の図形を三角形の集合にわける方法

ミスありです。
ss_035.png
ss_035.png (30.93 KiB) 閲覧数: 1419 回
ss_036.png
ss_036.png (26.77 KiB) 閲覧数: 1419 回
この2つの画像見ればあらかた検討付きますが一応ご報告まで。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 自作関数でアドレスを呼び出した時
返信数: 16
閲覧数: 746

Re: 自作関数でアドレスを呼び出した時

ぜり さんが書きました:次から囲むように気をつけます><
すいませんでした;

int x[]には&a[1]のアドレスの値が入らずに
a[1]の値が入るということなのでしょうか?(x[]となっているのでa[1],a[2],a[3]の値も入っていくとは思うのですが)

正直そのあたりの理由がわかっていません…
いえ、ですからちゃんとxにアドレスは渡されていますよ。
返ってくるのが中身の値なだけです。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 自作関数でアドレスを呼び出した時
返信数: 16
閲覧数: 746

Re: 自作関数でアドレスを呼び出した時

コードはタグで囲んでください。インデントも整えましょう。コードタグについて

数字が出るのはfunc関数は「int型を返す」ように書いてあるからです(int func( int x[] ))。そしてそのとおりにint型の実体をreturnしているからです(return x[2]+i;)。
引数としてアドレスを与えていたとしても、戻ってくる値がアドレスとは限らないです。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 壁との接触でスムーズに滑らせたい。
返信数: 6
閲覧数: 1169

Re: 壁との接触でスムーズに滑らせたい。

どうやら少し語弊が出てますね、区切り方と言葉足らずで申し訳ありません
まず、「キャラクタを真似」したらまずアウトです。東方二次創作ゲームでキャラ真似てるのは黙認されてるだけでアウトです。
というのは
「東方二次創作ゲームでキャラ真似てるのは黙認されてるだけで、キャラを勝手に使うことは著作権的によろしいことではありません。」
という意味で言っていました。そして私の言う黙認とは暗黙的な許可という意味です。確かに明示的でしたかもしれません、すみません。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 壁との接触でスムーズに滑らせたい。
返信数: 6
閲覧数: 1169

Re: 壁との接触でスムーズに滑らせたい。

beatle さんが書きました:
新月獅子 さんが書きました:まず、「キャラクタを真似」したらまずアウトです。東方二次創作ゲームでキャラ真似てるのは黙認されてるだけでアウトです。
あれ、そうでしたっけ?
東方シリーズのキャラや設定を使って二次創作物を作るのは、ZUNさんが公式に許可していると思っていました。
参考上海アリス幻樂団創作物の二次創作・使用関連ページ
確かにこの文章のように許諾という言い方もできますが、結局それも「黙認」ですよね?「著作権を手放したわけではない」とそのページにも書いてあります。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 壁との接触でスムーズに滑らせたい。
返信数: 6
閲覧数: 1169

Re: 壁との接触でスムーズに滑らせたい。

その5 反射ベクトルと壁ずりベクトル あと一つ疑問なのは、東方やその他サークルのゲームを真似て作った物を、 配布、販売してもいいのでしょうか? ちゃんと記載しているサークルもあるのですが、 橙汁のようになにもかかれていないサークルもありますし、 できれば完成して「ダメ」と言われたくない・・・。 「真似」の度合いによると思います。 法律的にも明確な線引きの難しい問題ではありますが。 ちゃんと記載しているサークルならそれに従えば良いです。そうでない場合、決してフリーではなく「書くまでもなく良識と法律に従え」という意味ですね。 まず、「キャラクタを真似」したらまずアウトです。東方二次創作ゲームでキ...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dで弾の尾を引くようなエフェクト
返信数: 6
閲覧数: 1503

Re: 3Dで弾の尾を引くようなエフェクト

前座標 x',y',z'
現座標 x,y,z

たとえばこの二つの座標をDrawLine3Dで結び、座標が更新される度に結んでいけば軌跡が線で描けますよね?
線では味気ないでしょうからポリゴンにすればいいです
ソフト屋さんのいう十字とはポリゴンを作ってクロスさせろって話でしょう。

DXライブラリならDrawPolygon3Dで可能だと思います。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談?】オブジェクト指向プログラミングについて
返信数: 19
閲覧数: 1511

Re: 【雑談?】オブジェクト指向プログラミングについて

難しいお話は他の方がしてくださるでしょうし私も初心者なんで思ったことだけ書きますね(^_^;。 というかみなさんの答えにはとても経験が詰まっているのを感じます。 読んでいて「あるぇ?私が話すことなくね??言われちゃってるジャン」ってなりました。何度も反復して読み直すといいかもしれませんね。 管理人様も言っているようにC++ってマルチパラダイムですから、意外とオブジェクト指向「を」C++で学ぼうと思うと他より混乱する気もします。 (でも私個人的にはそれはC++の柔軟性なんですが・・・関係ないか オブジェクト指向でよく言われることとして「カプセル化」があって。でもなんで隠蔽するんだ?そう思ったこと...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 判定は誰がする?
返信数: 19
閲覧数: 3676

Re: 判定は誰がする?

上で > 武器はプレイヤーや、敵が持っているのではないでしょうか・・? と言った通りで、私はプレイヤーや敵と同じ階層に武器クラスがある設計がよくわかりません。 武器はキャラクターが持っているのですから、キャラクターの持ち物であるべきではないでしょうか? 従って当たり判定は、判定したい対象を元にプレイヤーが持っている武器クラスが行うべきではないかと思います。 また、物をオブジェクトと捉えるオブジェクト指向設計において、「判定」というクラスは少しおかしいのではないかと思います。 管理人様はこう仰っていますが、私はそうは思いません。(ただし私より管理人様のほうがはるかに経験者ですから納得イカなかっ...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談】と言うかテストのお願い。【gzipで高速化したよ】
返信数: 23
閲覧数: 1936

Re: 【雑談】と言うかテストのお願い。【gzipで高速化したよ】

・接続直後で5秒以内に表示されるか。 1~2秒でした ・「発売日リスト」の画面(起動時の画面)でリストはスムーズにスクロールするか? はい ・「発売日リスト」の画面でページを切り替えた場合は数秒で切り替わるか? 1~2秒でした ・「発売日」と【作者・キーワード】はボタンでちゃんと切り替わるか? はい 動作したブラウザはCoolNovo(旧ChromePlus。だいぶ仕様がChoromeと違うので一応報告) ADSL、有線です。詳細は忘れました‥‥相当古いルータなので比較的には遅いかと。あとやっぱ世間的には光のほうが多いと思いますよ、自身で調整できない人なんかはADSLじゃつらいでしょうから‥‥...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 判定は誰がする?
返信数: 19
閲覧数: 3676

Re: 判定は誰がする?

横から失礼。 C++の知識が乏しいのでよくわからないですが、 PosGettableから継承したEnemyクラスはPosGettableのインスタンスを持っているって事で、 マネージャークラスはEnemyクラスからPosGettableの成分だけポインタだけ取り出せるって事ですか? 継承というのはEnemyクラスのメンバにPosGettableのメンバが追加されるだけ・・って思ってたのですが・・・ 継承の概念は、AがBを継承している場合、「A is a B」となり、これをis-a関係とか言うことが多いです。 なんぞそれ、っていうと、ようは「AはB」なんです。この場合、 EnemyクラスはPos...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: fps制御
返信数: 3
閲覧数: 560

Re: fps制御

関係ないことですが黒はbrackではなくblackですよ
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 5758

Re: 改行判定につまづいている

関係あるのか知りませんが、WSAStartupを二回呼んでいるのはなぜ?
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 画像の縁取り
返信数: 5
閲覧数: 392

Re: 画像の縁取り

先に描けば下になるんですね、ありがとうございました
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 画像の縁取り
返信数: 5
閲覧数: 392

Re: 画像の縁取り

やっぱりそうなってしまうのでしょうか。。。いえ、まぁ、それが普通だとは思いますが。

ちなみに同じ座標に画像を重ねたりして描画が乱れたりしたりはしないのでしょうか?
3DですのでZ座標を若干奥にずらすとかするとカメラの向きによって処理を無駄にややこしくするのでしたくないですし。。。
同じ座標に重ねると、どちらが先に描かれるのかわからないと思うのですが。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: C言語以外にも勉強すべきもの
返信数: 6
閲覧数: 503

Re: C言語以外にも勉強すべきもの

嘘ではない・・・ですが・・・・・
本当ではないかもしれない・・・・


結局アナタの言う「シューティング」がコマンドプロンプトインベーダ程度でいいのか3Dグラフィックスをがんがん使った最新シューティングなのか。それで答えはイエスにもノーにもなるんじゃないでしょうかね。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 画像の縁取り
返信数: 5
閲覧数: 392

画像の縁取り

 いつもお世話になってます。
なんとなくコレどうやったらできるんだろーなーと思ったので質問させて頂きます。

[thumbnail]http://2style.net/leonhardt/aaa.png[/thumbnail]
↑の画像みたいに(2つの黒人間は同じ形ということにしてください・・・)、ある画像を縁取ることはできますか、というかどういう処理でできるでしょうか?

 ただし、縁取りバージョンを用意するというのはなしで、、、つまり縁は動的な生成で。
それと、3Dのビルボードで使えればなあと思います。

 とりあえずDXライブラリということで宜しくお願いします。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: マウスの移動認識
返信数: 10
閲覧数: 1100

Re: マウスの移動認識

補足的になりますがDXライブラリを使う場合はウィンドウプロージャを操作できませんのでオンクリックやアウトクリックを使う場合はDXライブラリの関数を利用して自身で実装するしか無いと思います。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 派生クラスの動的確保をやめたい
返信数: 2
閲覧数: 331

Re: 派生クラスの動的確保をやめたい

弾ならともかく敵は動的確保でもいい気はしますが・・・気になるなら動的確保の回数を減らす工夫をするとかでも十分じゃないでしょうかね。
どうしても動的確保はしたくないのなら配置newなりなんなりでアロケータを実装すればいいと思います。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談】パソコンのスペックとモニターのサイズについて
返信数: 18
閲覧数: 1638

Re: 【雑談】パソコンのスペックとモニターのサイズについて

ここにいる人たちって基本プレイヤーではなく作り手側ですけど参考になるんですかね‥‥?


OS:
 Windows7 Professional 64bit

CPU:
 Intel(R) Core(TM) i3-2120 @ 3.30Ghz
 コア数:4

GPU:
 チップ:ATI Radeon HD 5450
 メモリ:512MB
 コアクロック:650MHz
 メモリクロック:800MHz
 合計メモリ帯域幅:12.8GB/s

物理メモリ: 4G(増設なし
画面解像度: 1680*1050
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: プログラミング初心者。今後の勉学方針をかためる編!
返信数: 33
閲覧数: 2148

Re: プログラミング初心者。今後の勉学方針をかためる編!

昨今の携帯端末ゲームは、ゲーム自体のプログラムは正直小学生でも頑張れば作れるような気がするものばかりですが、 ゲームとは別の技術として通信関連の技術というものが必要になってくるわけです。 なにやらオンラインゲームに興味がおありのようですが、まず一般的な人は言語習得に半年から数年、オフラインで簡単なゲームを作るのでさえ更に半年はかかるものです。RPGなどならもっとかかるでしょう。 なにかに興味があって調べる、聞くというのは素晴らしいと思います。 ですが、書き込みを見るとまだゲームを実際に作ったこともないようですし、逆コンパイルやチートだとか、侵入対策だとかを考えるのは早いと思いますよ。 きっと本...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: htmlからプログラミング初心者。ブラウザのバージョンについて
返信数: 2
閲覧数: 430

Re: htmlからプログラミング初心者。ブラウザのバージョンについて

ブラウザを判定するコードですね。 trueというのは二値論における「真」を表すものです。 JavaScriptは最近扱っていないですから正しいかはわかりませんが、brver = eval(0 + navigator.appVersion.charAt(0)); は単にブラウザUA名を格納し、 NN6 = (brver >= 5 && navigator.appName=="Netscape"); は、ブラウザバージョンが5以上かつ UAのな前がNetscapeならtrueを格納、 IE5 = (brver >= 4 && navigator.userAgent.indexOf("MSIE")!...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: FPSがうまく制御できない
返信数: 22
閲覧数: 3180

Re: FPSがうまく制御できない

ISLeさんご返答有り難うございます。 60FPSで60フレーム目から61フレーム目に切り替わるのは1000*60/60ミリ秒後ですと書きましたよ。 1000/60*60ではないですよ。 1000*60/60です。 違いが分かりますか? しっかりと文章を読まず本当に申し訳ありませんでした。 ご指摘のように1000*60/60で計算するようにし、今まではwallを浮動小数点数に直してましたが逆に他のものを__int64に直し浮動小数点数での計算をなくし、 FPSの計測は1秒ごと(60フレームごと)に計算するようにしたところ、ほぼ60FPSで一定になるようになりました。 長々と聞いてくる私に丁寧に...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: FPSがうまく制御できない
返信数: 22
閲覧数: 3180

Re: FPSがうまく制御できない

const float test = 1000.f/Fps*1000000.f; このtestを60(Fps)回足したものを表示してみてください。 GetNowHiPerformanceCountのほうは2回呼び出している間の誤差です。 大ざっぱに言うとprintfDxに掛かっている処理時間による誤差ですかね。 もう1フレームずつウェイトを求めているわけではありませんのですが、キリの良いところでつじつまが合うようにするということはキリの良くない59フレームは大雑把で60フレーム目だけ1秒に細かく調節すれば良いという解釈でよいのでしょうか? つじつまを合わせるというのは、60FPSなら60フレ...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 明日までの宿題です・・・
返信数: 32
閲覧数: 2260

Re: 明日までの宿題です・・・

じゃあスコープについて少し。例えばグローバル変数は実はグローバル領域と呼ばれる空間に所属しています。グローバル変数はそのまま使えますが、その場合たとえばint a;というグローバル変数を使うときはa = 0;とかというように使いますが、明示的に使うならスコープ演算子を使い::a = 0;とします。(厳密なC言語では出来ませんが多分C++のコンパイラを使っているでしょうからできると思います。) 若干語弊はありますが簡潔に言えば所属してる空間の名前(名前空間)などが総じてスコープと呼ばれます。 おそらく名前空間てなんぞ?と思うでしょうが難しくないです、例えばhoge関数の中は全てhoge名前空間に...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: FPSがうまく制御できない
返信数: 22
閲覧数: 3180

Re: FPSがうまく制御できない

すみません、どこでオーバーフロー対策しているのかわかりませんでした(汗) 具体的にどうしているのか教えて頂けませんでしょうか 最新の時刻(GetNowCount())と前回記録した時刻をそのまま比較せずに減算しているだけです。 オーバーフローがあると時刻を比較した結果は定まりませんが差は常に正しく求まります。 32ビットintなので1フレームに25日間程度掛かる負荷があると破綻しますがそれはあり得ないと想定してます。 というかおそらく数分でハングアップとみなされますよね。 スタンバイや休止状態で25日間程度放置されたらマズイですけど、そのあたりはウィンドウの移動とか最小化(非アクティブ状態)...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 明日までの宿題です・・・
返信数: 32
閲覧数: 2260

Re: 明日までの宿題です・・・

ゴハッミスってたオーバーロードや

寝たほうがいいんかねこれ
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 明日までの宿題です・・・
返信数: 32
閲覧数: 2260

Re: 明日までの宿題です・・・

全部忘れろ~(^ν^)
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 明日までの宿題です・・・
返信数: 32
閲覧数: 2260

Re: 明日までの宿題です・・・

どうでもいいしいやたぶんどうでもよくはないけど好みだからアレなんだけど関数の命名はPascal記法がいいと思います。全部小文字とかってのは標準ライブラリとかとかぶるので・・・sort()とか
別にオーバーライド(ちゃうちゃうオーバーロードです。申しわけない)できるとはいえ呼び出し側はわかりにくくなると思います(標準ライブラリとの判別が)。わたしは、ですが。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: FPSがうまく制御できない
返信数: 22
閲覧数: 3180

Re: FPSがうまく制御できない

すみません。3つ目の点ですが、これってオーバーフローとかしそうな気がするんですがそんなことはないんでしょうか? オーバーフローしますよ。 わたしのコードはオーバーフローしてもちゃんと動くように作ってあります。 boost::timer::nanosecond_typeも整数型なのでオーバーフローしても大丈夫なようにできると思います。 すみません、どこでオーバーフロー対策しているのかわかりませんでした(汗) 具体的にどうしているのか教えて頂けませんでしょうか それと2つ目の意味がよくわかりません。えっと、ウェイト処理を分けるというのはどういうことでしょうか・・・すみません教えて頂けますでしょう...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 明日までの宿題です・・・
返信数: 32
閲覧数: 2260

Re: 明日までの宿題です・・・

すみません。これでどうでしょうか?まだ初心者なので・・・ #include <stdio.h> #define MAX 10 int sort(int n[],int m){ int N=0,i=0,j=0; for(i=0; i<m; i++){ for(j=i+1; j<m; j++){ if(n[i] > n[j]){ N = n[i]; n[i] = n[j]; n[j] = N; } } } return(n[m]); } int main(int argc, char *argv[]) { FILE *fpi, *fpo; int m=0, i=0; int n[MAX]; if...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: FPSがうまく制御できない
返信数: 22
閲覧数: 3180

Re: FPSがうまく制御できない

ISLe さんが書きました:
  • 1フレームずつウェイト時間を求めるので誤差が出る
    →1秒(60フレーム)といったキリの良いところでつじつまが合うようにする
  • ウェイト処理を分けるので誤差が出る
    →1フレーム全体の経過時間で判断する
  • 経過時間を記録した後にタイマーをリセットするので誤差が出る
    →途中でタイマーをリセットせず常に差分を使う
すみません。3つ目の点ですが、これってオーバーフローとかしそうな気がするんですがそんなことはないんでしょうか?
それと2つ目の意味がよくわかりません。えっと、ウェイト処理を分けるというのはどういうことでしょうか・・・すみません教えて頂けますでしょうか?
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: FPSがうまく制御できない
返信数: 22
閲覧数: 3180

Re: FPSがうまく制御できない

なるほど・・・とりあえずここまで来たんで勉強も兼ねて№1のコードを修正してみます。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 明日までの宿題です・・・
返信数: 32
閲覧数: 2260

Re: 明日までの宿題です・・・

れお さんが書きました:
新月獅子 さんが書きました:N≦10なら
if(m>=MAX){ //10こ以上の入力の判断
じゃなくて
if(m>MAX){ //10こ以上の入力の判断
なんじゃ‥‥いやさらっと見ただけなんで見当違いなら申し訳ないです

*完全にミスりました忘れてくださいorz


いや、それで解決しました。。ww多分

そこ直しただけではだめですか??;
あら?解決したんですか?;流れがわからないのでアレですが、宿題ならとりあえず動くならそれで出しちゃえばいいと思いますが‥‥さらっと見てて「ん‥?」と思うとことかあるので綺麗なコードが書けるまで修正することはオススメします
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 明日までの宿題です・・・
返信数: 32
閲覧数: 2260

Re: 明日までの宿題です・・・

N≦10なら
if(m>=MAX){ //10こ以上の入力の判断
じゃなくて
if(m>MAX){ //10こ以上の入力の判断
なんじゃ‥‥いやさらっと見ただけなんで見当違いなら申し訳ないです

*完全にミスりました忘れてくださいorz
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: FPSがうまく制御できない
返信数: 22
閲覧数: 3180

Re: FPSがうまく制御できない

DXライブラリを抜いても60FPSで安定しないんでしょうか? FPSはOutputDebugString で出力できますし。 原因をはっきりするためにも抜けるものは抜いて計測してみるとか、DXライブラリの関数(ScleepFlip等)にかかっている時間を計測してみるとか色々手はあると思います。 【追記】 あと時間計測関数自体が遅いと言うのも考えられます。 DXライブラリ一切なしで№1のコードを試したところ59.9で一定でした‥‥ SetWaitVSyncFlag(FALSE);を呼び出していること以外は一切アレンジはしておりません。ディスプレイドライバの設定もいじってません。DXライブラリの...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: FPSがうまく制御できない
返信数: 22
閲覧数: 3180

Re: FPSがうまく制御できない

softya(ソフト屋) さんが書きました:今思いつきましたがSetWaitVSyncFlag(FALSE);をDxLIb_Init();の前に呼んでいないとかありませんよね?
ご返答ありがとうございます。いえ、ちゃんとDxLib_init();の前で呼び出してありますね。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: FPSがうまく制御できない
返信数: 22
閲覧数: 3180

Re: FPSがうまく制御できない

ISLeさんお返事ありがとうございます。 >わたしのブログのFPS制御コードは参考にしなかったんですね。 いえ、考え方はとても勉強になりましたし、本当に参考になったんですが、ISLeさんのコードで垂直同期を外すフラグを立てたところ、62FPS(のまま一定)になってしまいまして。完全にコードが理解できているわけではないので、もしかしたら垂直同期を利用する上でFPSを制御するコードだったのか思い、とりあえず一旦自分なりにコードを書いてみたところ、自分のコードも思ったように動かず、理由を知りたい、という状況です。決して参考にしなかったわけでは無いんです、すみません。 おかしいですね。 わたしのコード...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: FPSがうまく制御できない
返信数: 22
閲覧数: 3180

Re: FPSがうまく制御できない

boostのcpu_timerの精度は知りませんけど、floatの精度がナノ秒には足りないんじゃないですかね。 フレームごとに差分を蓄積していく方法だと浮動小数点数を使おうと誤差も蓄積していきます。 それ以外の部分が原因で下がることはありますけど、タイマーの精度が低くても振り幅があるだけでそれ自体でFPSが下がったままになるといったことはありません。 わたしのブログのFPS制御コードは参考にしなかったんですね。 GetNowCountを使っているので安定しなかったのでしょうか。 タイマーの精度は単位とは関係ありません。 精度が15ミリ秒というのは15ミリ秒ごとに15ミリ秒分ずつ値が増えるとい...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: FPSがうまく制御できない
返信数: 22
閲覧数: 3180

Re: FPSがうまく制御できない

boost::timer::cpu_timerって確か15ms程度の精度しか無いと聞いたことがありますので、精度を確認してみてください。勘違いかもしれません。 ご返信ありがとうございます。15ms程度の精度?というのがどういう意味なのかわかりませんが、FPS制御をするにあたり事前に様々なタイマーを試しましたが、cpu_timerは数百ナノ~数千ナノくらいの単位まで計測できました。 少なくとも、DXライブラリのGetNowCountよりも確実に精度が高く安定しており、GetNowHiPerformanceCountと同じ精度かそれ以上でした。 他にもtimeGetTimeとかも試しましたが、な...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: FPSがうまく制御できない
返信数: 22
閲覧数: 3180

FPSがうまく制御できない

いつもお世話になっております。FPSを垂直同期を使わずに制御するコードを簡単に書いてみましたが、なぜか59.8ほど(59.8のまま一定)になってしまいます。 タイマーはboost1_49_0のcpu_timerを使っています。どうして59.8になってしまうのでしょうか。環境はVC++2010pro、DXライブラリ使用(垂直同期は使わないよう設定)、Windows7です。 ご教授宜しくお願いします。 // 宣言と初期化まわり const float Fps = 60.0f; // FPSは60 float Wait = 0.f; boost::timer::cpu_timer Timer; bo...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリ FPS不足
返信数: 4
閲覧数: 1046

Re: DXライブラリ FPS不足

FPSが出ないプログラムコードを提示していただければ何かアドバイスが出来るかと思います。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: ゲーム作りについて part.1
返信数: 14
閲覧数: 1095

Re: ゲーム作りについて part.1

じゃあ私も少し。一番気になったのは、命名規則がバラバラなことです。一般的でない命名規則を使っているのも気になります。 例えば、Key[256]やcounter、can_or_cannot関数とPlayerDraw関数など。 まぁ個人製作ならどんな命名規則を使うかは好みで使えばいいと思いますが、変数や構造体や関数の名前の命名規則は統一したほうが見やすいし、タイプミスも減ると思います。 あとコメントですが、 //////////////////////////////////////////////////////////////////////////////// //プログラム ///////...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: Releaseモードでビルドするとエラーが発生する場合の原因特定方法について
返信数: 8
閲覧数: 14264

Re: Releaseモードでビルドするとエラーが発生する場合の原因特定方法について

loweさん、ソフト屋さん、回答ありがとうございます! すいません。言い方が悪かったです。 releaseモードでデバッグ実行できるのは知ってます。 でもその状態だと該当のエラーは発生しないんです。 リリースモードで、「デバッグなしで開始」、もしくはリリースビルドされた実行ファイルから実行した場合のみ、 該当のエラーが発生します。。 >発生する場所もバラバラなので >というのがよくわかりませんが、とりあえずこれで怪しいところを探すのはひとつの手段だと思います。 例えばメッセージボックスをエラーが発生する前の箇所に置けば、そのメッセージボックスのメッセージが表示されるじゃないですか? つまりエ...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: Releaseモードでビルドするとエラーが発生する場合の原因特定方法について
返信数: 8
閲覧数: 14264

Re: Releaseモードでビルドするとエラーが発生する場合の原因特定方法について

Microsoft visual c++ 2008を使っています。 あるプログラムを書いて、デバッグモードでコンパイルしたときは問題なく動作したんですが、 リリースモードでコンパイルして動かしたときに以下のエラーが発生して強制終了してしまいます。 This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. 色々ググったのですが、 ヒープを破壊?しているとかランタイ...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: Releaseなのにファイルパスがexeに含まれる
返信数: 10
閲覧数: 1287

Re: Releaseなのにファイルパスがexeに含まれる

あと、ファイル名などのスタティックな文字列はですね、
"Data/data.png"という文字列を直接書くのではなく暗号化して、ロード関数でそれを解読して読みこむように変えれば大丈夫でしょう。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: Releaseなのにファイルパスがexeに含まれる
返信数: 10
閲覧数: 1287

Re: Releaseなのにファイルパスがexeに含まれる

作ったもののexeファイルを他人に送る必要があり、 exeファイルをバイナリエディタでみていたら、 C:\Documents and Settings\Administrator\My Documents\~~~\Release\*********.pdb とReleaseフォルダにあるデバッグ用ファイル?へのパスが入っていました。 また、dxaファイルの中身のファイル名も入っていました。 一応管理人さんの龍神録Plusのexeファイルも確認してみましたが C:\Users\Dixq\Desktop\四聖龍神録Plus_ソースコーチEver2.80\Release\RyuJinRoku.pd...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: 会話やリザルト画面等に利用するウィンドウの表示方法
返信数: 7
閲覧数: 1625

Re: 会話やリザルト画面等に利用するウィンドウの表示方法

RPGツクールやウディタなんかだと、小さくて3*3に分割できる画像一つを使って 大きなウィンドウも描画できますよね? ツクールやウディタを触ったことが無いのでよく理解ができてないのでもし見当違いだったら申し訳ないのですが、 メインウィンドウとは別のサブウィンドウを作るということでしょうか・・・? C++界隈ではそういったウィンドウは、基本的にどのように描画されていますか? やっぱりそういった素材であらかじめ好きな大きさのウィンドウを作り、 それを画像として表示するんでしょうか? もしくは、自分の考えたやり方ですが 枠の部分は座標指定で逐一描画、 その下に窓の中身となる部分を描画してしまう、と...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: Releaseができない
返信数: 9
閲覧数: 1978

Re: Releaseができない

2008までには無いキーワードなのでよくわからないです。 名前からすると追加オプションのことでしょうね。 もしかして間違えて追加オプションにC:\lib\boost_1_48_0/bootstrapを書いたってことは無いですか? ありがとうございます。 追加オプションですか・・・まったく記憶に無いですね。プロパティとかいろいろ確認してみましたがVisualC++からだとC:\lib\boost_1_48_0/bootstrapという単語すら見つかりません。 そもそもあまり余計な操作はしていないのですがね・・・ ただ、プロジェクトファイルから件の行を消去したところ無事Releaseビルドが成功...
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: Releaseができない
返信数: 9
閲覧数: 1978

Re: Releaseができない

softya(ソフト屋) さんが書きました:VC++2010に詳しくなくて申し訳ないのですがvcxproj(でした?)プロジェクトのファイルはxml=テキストなのでダメな方と比べてみると何か分かると思います。
ありがとうございます。これってXMLだったんですね、とりあえずダメな方でboost_1_48_0を検索してみたところ、「<AdditionalOptions>C:\lib\boost_1_48_0/bootstrap %(AdditionalOptions)</AdditionalOptions>」というものがありました。
おそらく原因はこれだと思うんですが、一体コレは何なのでしょうか・・・。
by nullptr
8年前
フォーラム: C言語何でも質問掲示板
トピック: Releaseができない
返信数: 9
閲覧数: 1978

Re: Releaseができない

VC++のバージョンがわかりませんがプロジェクトではなく、オプションの設定等別の場所にC:\lib\boost_1_48_0/が書いてないでしょうか? ご返答ありがとうございます、誠にすいません、肝心な環境を書いておりませんでした。 環境はVisualC++2010Pro、Windows764bitProです。 それで、オプションの設定とはどこのことでしょうか?とりあえず[メニュー][ツール][オプション]かなと思いひと通り目を通してみましたがそれらしいものは見つかりませんでした・・・。 ***追記 実は今日、プロジェクトを新しく作り設定をし直しファイルをすべて新しいプロジェクトに移してみた...

詳細検索ページへ移動する