検索結果 21 件

by V30
7年前
フォーラム: C言語何でも質問掲示板
トピック: Dxライブラリ ゲームつくり
返信数: 7
閲覧数: 3956

Re: Dxライブラリ ゲームつくり

描画の処理をコンストラクタでの呼び出しにするのは、間違いです。 画像データも画像の座標データも、まず変数に格納(代入)します。 次にゲームのフレームループを開始します。 そのループ内で、 ・画像描画処理をしなくても、画像データは消えません。描画されないだけで、変数は同じ値のままです。 ・座標データも、更新しないからといって消えることはありません。変数は同じ値のままです。 ・当たり判定は、やらなければ何も起こらないだけです。 ・画像データ変数の値を変更すると、画像データは消えます。エラーになるかもしれません。元の値に戻せば、元通り描画できます。 ・座標データ変数の値を変更すると、描画座標が変わる...
by V30
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++ クラスのインスタンス?
返信数: 4
閲覧数: 3189

Re: C++ クラスのインスタンス?

ちょっと質問からズレた返答でした(汗)

どっちの型でもいいんですが、初心者の内は、
なるべく片方だけ使いましょう。
オブジェクト型のほうが安心です。

後々ポインター云々も覚えなきゃいけないので、
ちょっと安全ではないポインター型主体で勉強
してみる手もありです。

取りあえずは全く同じものと考えてもよいので、
悩むことはないと思います。
ご自身のやりやすいほうで、、、
by V30
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++ クラスのインスタンス?
返信数: 4
閲覧数: 3189

Re: C++ クラスのインスタンス?

コード:

Hoge  hoge;
は、
hoge->メンバ変数(関数)
のように指定できないし、

コード:

Hoge* hoge = new hoge();
は、
hoge.メンバ変数(関数)
のように指定できません。

コンパイルエラーになります。[VS2017の場合]

必ず、
オブジェクト型「Hoge」は「.」、
ポインター型は「Hoge*」は「->」
を使うようにしましょう。
オフトピック
例外として、
オブジェクト型「Hoge」でも「->」が使える
パターンがありますが[operator->関数]、
その時はその時で質問しましょう。
by V30
7年前
フォーラム: C言語何でも質問掲示板
トピック: [DxLib] GetKeyInputString()について
返信数: 2
閲覧数: 2297

Re: [DxLib] GetKeyInputString()について

NULL値は、記憶領域がないよって意味になります。

http://dxlib.o.oo7.jp/function/dxfunc_input.html#R5N22
に、
引数 char *StrBuffer : 文字列を格納するバッファのアドレス
と書いてあるので、
バッファを作ってから関数を使えばいいと思いますよ。

つまり、

コード:

char text[1024];
みたいに文字列格納バッファ(記憶領域)を作って、
そいつを GetKeyInputString 関数に放り込めば良い
と思います。
by V30
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++ shared_ptrの使い方
返信数: 3
閲覧数: 2542

Re: C++ shared_ptrの使い方

どちらでも同じような感じですが、安心・安全のため make_shared を使うのが常套です。

[参考]
https://msdn.microsoft.com/ja-jp/library/ee410595.aspx

解説にバッチリ書いていますよ。
by V30
7年前
フォーラム: C言語何でも質問掲示板
トピック: DirectX 9 フルスクリーンモードについて
返信数: 4
閲覧数: 19062

Re: DirectX 9 フルスクリーンモードについて

あっ!
V30 さんが書きました:
オフトピック
あと、当該コードを実行の際は、
コールバック関数に

コード:

	if (mes == WM_LBUTTONDOWN)
	{
		PostQuitMessage(0);
		return 0;
	}
のような、フルスクリーンアプリ終了手段を付加することをお奨めします。
↑上記コードをそのままご使用の場合は、

コード:

	if (g_pD3DDev) g_pD3DDev->Release();
	if (g_pD3D) g_pD3D->Release();
を然るべき所へ挿入し、メモリリーク防止しをお忘れなく。

スマポの使いすぎで、解放作業を忘れていました。m(_ _)m
by V30
7年前
フォーラム: C言語何でも質問掲示板
トピック: DirectX 9 フルスクリーンモードについて
返信数: 4
閲覧数: 19062

Re: DirectX 9 フルスクリーンモードについて

D3DFMT_UNKNOWNは、ウィンドウモード時のみ有効です。 window_parameter.BackBufferFormat = D3DFMT_UNKNOWN; を、 window_parameter.BackBufferFormat = D3DFMT_A8R8G8B8; のように変更すれば、INVALIDCALLは出ないかと思います。 但し、D3DFMT_A8R8G8B8が、必ずしも有効であるとは限りません。 フルスクリーンモードで使用可能なフォーマットは、 IDirect3D9::CheckDeviceTypeメソッドで検証します。 [参考] https://msdn.micros...
by V30
9年前
フォーラム: C言語何でも質問掲示板
トピック: 空のinitializer_listに関して
返信数: 4
閲覧数: 2938

Re: 空のinitializer_listに関して

クラスの作りがどうであれ、

コード:

s = {};
で、全てのメンバ変数を0初期化しているからだと思います。
by V30
9年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリ 画面のある一部だけ色を変えたい
返信数: 6
閲覧数: 4997

Re: DXライブラリ 画面のある一部だけ色を変えたい

PCや他のコードとの絡みで、処理時間にかなり幅がある事が判明しました。 以下のコードは、付け焼刃で只今作ったものです。 VS2013 Core-i7 920 2.67GHz 環境下で素で比べてみると、 殆ど同じ処理時間でした(汗)。 平均処理時間を出したい場合は、画面下部に表示されるテキストのコードを ご参考下さい。 しかしながら…… こんな感じでアプリが完成するまでちょこちょこ様子を見ながらどの 方式がベストかをチョイスするのが一見良いみたいですが、実際に 裏側で行われている処理(レンダリング)を考慮すると、このコードで 見える数値だけでは断定できないです。 私はDXライブラリの内部設計につ...
by V30
9年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリ 画面のある一部だけ色を変えたい
返信数: 6
閲覧数: 4997

Re: DXライブラリ 画面のある一部だけ色を変えたい

私個人的には、『白色の画像を作り描画』するのがベストだと思います。 矩形の描画命令を使用するのは微塵ほどですけれど負荷がありますし、 画面消去後、シンプルにグラフィックハンドルからの画像を貼るのが 高速で良いと思います。 その他、DXライブラリを無視した描画方法も数通りありますが、結局 やる事は『矩形描画命令』『白画像を貼る』の二択が基本になります。 実行メモリを微塵でも減らしたいのであれば、『矩形描画命令』でも 問題ないレベルの負荷だと思います。 ***DXライブラリのウインドウ(800×600サイズ)での処理時間*** ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓...
by V30
10年前
フォーラム: C言語何でも質問掲示板
トピック: デバッグ中、配列の中身が「?」で表示されるんですが
返信数: 16
閲覧数: 9969

Re: デバッグ中、配列の中身が「?」で表示されるんですが

>>ISLe()さん 2010は一見2013と同じ様ですが、長時間触っていると色々細かい所が違いますね。新鮮味を感じました。 すっかり忘れていましたと言うより、そもそも2010自体ちゃんと使い熟せていなかったような… ・コンテキスト外については、?ではなくて、通常のコーディング時と同じ宣言名のみが表示されると認識しております。  私の誤認識でしたら、この質問は殆ど解決ですね!(汗) ・2012は分からないですが、手元の2010と2013では確かにDXLibアプリのウインドウだけ固まっています。 ・表裏で動いている全てのプログラムが影響を与えている可能性があると書いた方が解りやすかったですね。 ...
by V30
10年前
フォーラム: C言語何でも質問掲示板
トピック: デバッグ中、配列の中身が「?」で表示されるんですが
返信数: 16
閲覧数: 9969

Re: デバッグ中、配列の中身が「?」で表示されるんですが

デバッガが停止中に変数の値が変わる、しかも元に戻ったりするなんて、 もしかしたらコードとは関係ない所に原因があるのかも知れませんね。 VS2013を長い間使っている素人の言葉なので参考にはならないかも知れませんが、 VS2010を久々に起動してどんな使い勝手だか思い出してみました。 私の場合、デバッガ中断時の変数確認は直接コードにマウスカーソルを合わせるのではなく、 【メニュー→デバッグ(D)→ウィンドウ(W)→ローカル(L)】 で表示されるウインドウにて確認をする事が多いです。 そのウインドウを見ている最中に変数内容が変わった事は一度もないので、VSのアップデート確認や立ち上げをやり直したり...
by V30
10年前
フォーラム: C言語何でも質問掲示板
トピック: 浮動小数点の科学記法と整数のキャスト
返信数: 9
閲覧数: 7567

Re: 浮動小数点の科学記法と整数のキャスト

1.2345678e+9 = 1.2345678 × 10の9乗 ↓1.2345678の小数点を右に9桁移動する。 つまり、 1234567800 を意味する。 1.23456e+789 = 1.23456 × 10の789乗 ↓ 小数点を右に789桁移動する。 つまり、 123456000…000[0の数は全部で784個] を意味する。 ちなみにeに続く数値が-の時は、 1.2345678e-9 = 1.2345678 × 10の-9乗 ↓ 1.2345678の小数点を左にに9桁移動する。 つまり、 0.0000000012345678 を意味する。 という風になります。 プログラミングの利...
by V30
10年前
フォーラム: C言語何でも質問掲示板
トピック: アセンブラを学習したいのですが・・
返信数: 7
閲覧数: 8109

Re: アセンブラを学習したいのですが・・

こんにちは。 上記のお二方と似通っておりますけれど… あくまでも私個人的な考え方ですが、C言語の基本命令だけで迷いなく普通にゲーム等のプログラムが組める ようになれば、アセンブラも容易に学習できると思います。 どんな言語でも最終的にはマシン語に変換されて実行ファイルになるので、マシン語の記述そのものであるアセ ンブリ言語を先に覚えておけば、後で一般的なプログラミング言語を学習する時に大いに役立つと思います。 つまりは、どうせ覚えるんだったら先にやった方が後から覚えるより効率がいいかも?って事です。 実行ファイルの中身は、メモリ間のデータ転送・2つのデータの演算や比較・実行位置のシフト等、CPU...
by V30
10年前
フォーラム: C言語何でも質問掲示板
トピック: 複数のファイルに分けてコンパイルする
返信数: 3
閲覧数: 2453

Re: 複数のファイルに分けてコンパイルする

素人の回答で申し訳ございませんが、同じVS2013を使っている者として返答させて頂きます。

DxLib.hの読み込みエラーが出ていない(ちゃんと読み込めている)みたいだから、
player.hをDxLib.hの存在するフォルダに移動すれば、とりあえずエラーはなくなると思います。

あと、
#include <DxLib.h>と、
#include "DxLib.h"は、
意図的なものですか?

<>と""は、使い方(インクルードパスの設定)によっては混ざっていても問題ありませんが、
同じhファイルを読み込むのであれば、どちらかに統一した方が良いと思います。
by V30
10年前
フォーラム: C言語何でも質問掲示板
トピック: ■ 新年の挨拶トピック~2015~ ■ 今年の抱負 ■ [雑談]
返信数: 14
閲覧数: 11447

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

明けまして、おめでとうございます。 あちこちに挨拶しまくっていたら、遅くなりました。 最近は超早寝早起き型生活なので、こんな時間まで起きていて頭が回りませんが、 プログラミング的な事で言えば、人に見せられる様なキチンとした物を作りたいです。 とは言っても、大物を作る技量も情熱もないし、絵心がないから画像の用意も大変だし、 ゲーム以外のジャンルは思いつかないし・・・まぁ、ミニゲームって結論になります。 初心の頃は、素人制作?の麻雀ゲームや光栄の信長の野望(多分初代)等のプログラムをイジって、 都合の良いように改造して遊んでいました。 それから25年以上経った現在でも、進歩していないと言うか、まん...
by V30
10年前
フォーラム: C言語何でも質問掲示板
トピック: 思い出話など 【雑談トピ】
返信数: 5
閲覧数: 4893

Re: 思い出話など 【雑談トピ】

こんばんは。1コメゲット! 今更ですが、管理人様、初めましてでございます。 当サイトのまだ見ていない部分が結構ある、ライトな利用者です。 つい最近、5・6年前?に見たニコ動でペットボトル振り回していた若者が管理人さんだと認識しました。(汗) (薄々は、気づいていましたよ!) このサイトは最近あまり利用していないし、登録前の昔の事はよく分かりませんが、あまり芳しくないみたいですね。 個人的には、結構落ち着いている風に感じております。 質問者も回答者も三者三様で、お互いが総当たりすると考えると、どんなルールであれ膨大なドラマが生まれるのは必然かな?と・・・ 私的宇宙論だと、人も石っころも空気も水も...
by V30
10年前
フォーラム: C言語何でも質問掲示板
トピック: ノベルゲームのテキストエンジン[C/C++]
返信数: 7
閲覧数: 7941

Re: ノベルゲームのテキストエンジン[C/C++]

今日から、RPGのコメント的な物をクラスとして作成に取り掛かっています。只今、疲れたので途中でプロジェクトを放り投げています。

画面更新をカウントしてメッセージBOXや文字の表示開始時刻や次の文字表示までの時間を制御したり、その他仕様を細かくしていますが、やりたいことは全く同じなので、有段者の返信コメントを拝見だけさせて頂きます。

私はまだまだド素人なので、適切な助言はできません。

お互いに頑張りましょう。
by V30
10年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのプログラム設計について
返信数: 4
閲覧数: 3800

Re: DXライブラリのプログラム設計について

再びのご回答、ありがとうございます。非常に参考になる文献です。早速、コピペして使わさせてもらいます。 取り敢えず力任せでコーディングして、後から訂正・改良してダメな所を減らす手段を取っていますが、コードが大量になって来るとまとめ方も混乱してきて、最近は動けばいいやの放置状態で勉強不足でした。 externを使いたくないのが理由で代わりにクラスのインスタンスを利用する事により始まった迷宮から、ようやっと抜け出せそうな気がします。 ポインタの基本は理解しているので結構利用していますが、同時にクラスの抽象・継承も使いこなして自分なりの改良を試みます。とは言っても、参考文献に関しては改良の余地はないで...
by V30
10年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのプログラム設計について
返信数: 4
閲覧数: 3800

Re: DXライブラリのプログラム設計について

softya(ソフト屋) 様、ご助言ありがとうございます。 サンプルプログラムで、質問の説明をさせて頂きます。 "Class_Game.h" #include <DXLib.h> //ゲーム本体クラス class Game() { int exitflag; //終了フラグ //計算処理 void Calc(){} //描画処理 void Draw(){} //入力処理 void Input(){} //メインプログラム int Main() { Input(); //入力処理 Calc(); //計算処理 Draw(); //描画処理 return exitflag; //終了フラグ返還 }...
by V30
10年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリのプログラム設計について
返信数: 4
閲覧数: 3800

DXライブラリのプログラム設計について

初めまして。この度登録させて頂いた者です。 VS2013 ExpressのC++とDXライブラリを使ってゲームを作り始めて1年程になります。 熟れてきて、クラスを作るようになってきた時からの疑問です。 ゲーム本体のクラスを作り、それとは別に用意したスタートアップ用cppファイル中のWinMain()のDXLibの初期化と終了処理間で、インスタンス化したそのゲーム本体クラス自身が持つメインループ関数「While(){ClsDrawScreen()~ScreenFlip()}」を呼び出すという、いつの間にか教科書と違った組み方をしています。教科書(一般書籍)通りだと、クラスは使わずグローバル変数を...

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