検索結果 34 件

by 雨ガエル
10年前
フォーラム: C言語何でも質問掲示板
トピック: C++ クラスのコンストラクタで別クラスのポインタを渡して使う
返信数: 6
閲覧数: 5514

Re: C++ クラスのコンストラクタで別クラスのポインタを渡して使う

beatleさん、h2so5さん、softya(ソフト屋)さん、ISLeさん、回答ありがとうございました。
クラスのポインタをコピーして使うのは問題ないのですね。
deleteすると思い通りの動作をしないことがわかりました。
ありがとうございました。解決しました。
by 雨ガエル
10年前
フォーラム: C言語何でも質問掲示板
トピック: C++ クラスのコンストラクタで別クラスのポインタを渡して使う
返信数: 6
閲覧数: 5514

Re: C++ クラスのコンストラクタで別クラスのポインタを渡して使う

すみませんでした。deleteの問題は自己解決しました。
ポインタのコピーはアドレスをコピーしているだけなので、
deleteすると他の場所で使えなくなるのでdeleteしてはいけませんね。
by 雨ガエル
10年前
フォーラム: C言語何でも質問掲示板
トピック: C++ クラスのコンストラクタで別クラスのポインタを渡して使う
返信数: 6
閲覧数: 5514

C++ クラスのコンストラクタで別クラスのポインタを渡して使う

「クラスのコンストラクタで別クラスのポインタを渡し、コピーして使う」という使い方は、オブジェクト指向プログラミングとして正しいのでしょうか。 また、これが正しい場合コピーしたクラスのポインタはdeleteする必要はあるのでしょうか。 class A { public: void funcA(void) { // 省略 } }; class B { private: A *a; public: B(A *a) { this->a = a; } ~B(void) { delete a; } void funcB(void) { a->funcA(); } };
by 雨ガエル
10年前
フォーラム: C言語何でも質問掲示板
トピック: アクションゲーム
返信数: 9
閲覧数: 3754

Re: アクションゲーム

2Dスクロールのどんなゲームですか? 2Dアクションゲームだと仮定して書きます。 例えばスーパーマリオなどのファミコンゲームでは、背景を一枚の画像にするのではなく、 小さく区切った画像(チップ)を用意し、並べて描画することで背景にするという方法が一般的です。 これは、画像サイズを小さくするためです。 この方法では、各チップに番号をつけていき、その並びを配列などで管理します。 例) チップ 0 □ チップ 1 ■ チップ 2 × チップ 3 ○ 背景データ 00000000000000000000 01111111111111111110 01000000000000000010 0100000...
by 雨ガエル
10年前
フォーラム: C言語何でも質問掲示板
トピック: DOS窓を一時停止させるには
返信数: 6
閲覧数: 3429

Re: DOS窓を一時停止させるには

KORYUOHさんの補足です。
system("PAUSE") を使うには stdlib.h をインクルードする必要があります。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: 【C#/WPF】画像サイズの挙動について
返信数: 2
閲覧数: 6593

Re: 【C#/WPF】画像サイズの挙動について

WPFはあまり使ったことが無いのですが、試してみました。 自分の環境ではBMP画像を指定すると拡大されて表示されました。 これはBMPファイルの解像度の情報を元に描画していて、 その解像度とディスプレイの解像度に違いがあることによって生じる問題らしいです。 解決策としては、 1. PNGやJpg形式の画像を使う 2. bmpの解像度をディスプレイに合わせる だと思います。 参考URL: Bitmap(ビットマップ)ファイルをDrawImageで描画すると勝手に拡大・縮小されてしまう - DrawImageで描画される画像の大きさが変わる 参考URL2: [C#] ビットマップ画像の解像度をディ...
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: 初めてです。
返信数: 14
閲覧数: 9167

Re: 初めてです。

ポインタは、"変数へのショートカット"と考えていいかもしれません。
ポインタ変数はメモリのアドレスなどを格納するものです。
このアドレスをもとに変数の値を書き換えることができます。

構造体は、複数のデータを1つの変数のようにまとめることができます。

詳しくは、こちらのページを読んでみてはいかがでしょうか。わかりやすいと思いますよ。
苦しんで覚えるC言語 http://9cguide.appspot.com/

このサイトの16と17にポインタと構造体について書かれています。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: LoadGraph~DrawGraphで画像が表示されません。
返信数: 8
閲覧数: 6842

Re: LoadGraph~DrawGraphで画像が表示されません。

グラフィックスの描画先がバックバッファに設定されているのではないでしょうか。 DrawGraphの後に ScreenFlip(); を書いてみてください。 ScreenFlipはバックバッファに描画された内容をフロントバッファにコピーします。 これで描画されなかったら、描画先をバックバッファに明示的に設定してみてください。 DxLib_Init(); のあとに SetDrawScreen( DX_SCREEN_BACK ) ; です。 (参考までに)フロントバッファに直接描かずに、バックバッファに描いてからコピーする。という方法をダブルバッファリングといいます。 参考URL http://ho...
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: ボタン操作によるグラフィックの描画に関しまして
返信数: 37
閲覧数: 35025

Re: ボタン操作によるグラフィックの描画に関しまして

いったんLoadDivGraph関数でグラフィックをすべて読み込んで、 モーションごとに用意した配列に必要な部分だけコピーしてはどうでしょうか。 例: モーション1では4枚のグラフィックを使用、 モーション2では2枚のグラフィックを使用、 モーション3では8枚のグラフィックを使用するとします。 〇〇〇〇◇◇◇◇ 〇〇◇◇◇◇◇◇ 〇〇〇〇〇〇〇〇 〇:使うグラフィックス ◇:使わない部分 int motion1[4]; int motion2[2]; int motion3[8]; int graphics[24]; LoadDivGraph("test.bmp",24,8,3,16,16,g...
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: 「C#」 ハンドルされていない例外
返信数: 5
閲覧数: 5624

Re: 「C#」 ハンドルされていない例外

絶対パスを指定するときは、
@"C:\test\sample.bmp" と書くか、
"C:\\test\\sample.bmp" と書きます。
"C:/test/sample.bmp"でも良かったかもしれません。(覚え書きなので確認してみてください。)

それより、相対パスを使ってはどうでしょうか。
おそらく、初期状態では実行ファイルのあるフォルダにパスが通っていると思うので、
プロジェクトフォルダ/bin/debug/ここ
にファイルを置いて試してみてはどうですか。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: char配列をint型に代入する方法について
返信数: 14
閲覧数: 4300

Re: char配列をint型に代入する方法について

int型は数値を入れますよね。char型は文字を入れますよね。 ですが実際はchar型変数に入っているものも数値です。 各数値に対応する文字が決めてあって、その数値を文字として扱っているわけです。 num = data[i]-'0'; この時data に'3'という文字が入っていたとします。 このdata を数値で表すと、 0x33 です。 '0'という文字を数値で表すと、 0x30 です。 ではdata から'0'を引く、すなわち 0x33 から 0x30 を引いたらどうなるでしょうか。 希望どおり3が得られます。 この例はASCIIという文字コードの場合ですが、仕組みはこんなかんじです。 ...
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: orについて
返信数: 7
閲覧数: 2970

Re: orについて

>>aは1から打ち込んだ値まで値が変化するので aは入力した値のまま変わりませんね。 変わるのはiです。iは1から入力した値(a)まで、1 2 3 4 ・・・と増えていきます。 jについても同じです。 (例としてa = 3, b = 4だったとしましょう。) for(i=1; i<=3; i++) { for(j=1; j<=4; j++) { if( i==1 || j==1 || i==a || j==b ) { printf("#"); } else { printf("."); } } printf("\n"); //次の列に移る } この二重のforループでは 〇→→→\n →→→→...
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: orについて
返信数: 7
閲覧数: 2970

Re: orについて

コードはcodeタグで囲んでください。

printf("#");が実行されるのは
i が 1 の時
j が 1 の時
i が a の時
j が b の時
ですよね?

一番上の列ではiが常に1なので、すべて#が出力されます。
一番下の列ではiが常にaなので、すべて#が出力されます。
その他の列ではiは1でもaでもありませんが、jが1の時と、jがbの時は#が出力され、
そのほかは.が出力されます。

よって四角の枠のように#が並べられます。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: vector<int>を引数として、intの静的配列として私たい
返信数: 4
閲覧数: 5272

Re: vector<int>を引数として、intの静的配列として私たい

vectorで確保した領域は配列のようにメモリ上に連続して並んでいるので、
配列を要求する関数に渡すときは、下のようにデータの先頭のアドレスを渡します。

コード:

#include <vector>
int func(int* cint) { return 0; }
int main(void)
{
     vector<int> vint(10);
     func(&vint[0]);  //先頭データのアドレスを渡す
     return 0;
}
参考URL http://www.geocities.jp/ky_webid/cpp/library/002.html
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談】プログラミングについて 皆さんに訊いてみたかったことなのですが・・・・
返信数: 18
閲覧数: 9348

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

1、プログラミングに興味を持ったのはいつであるか、また勉強し始めたのはいつか? 中学2年の時です。プログラミングの勉強を始めたのも中学2年ですね。 そのころ自由に使えるPC(家にPCはあったのですが、それまでは自由に使えませんでした。)を手に入れて、 ゲームの改造ツールで遊んでいました。そのソフトが結構本格的で、いじっているうちに 自分で1からゲームを作ってみたい。という気持ちが生まれました。 それと同時くらいにPCに詳しい友人がプログラミングの存在を教えてくれて、プログラミングでゲームが作れる! と思い、VisualStudio Expressをインストールして勉強を始めました。(無料のID...
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: ウィンドウサイズの変更について
返信数: 3
閲覧数: 2178

Re: ウィンドウサイズの変更について

DXライブラリを使用しているなら、SetGraphMode関数でウィンドウの解像度を変更できます。

↓リファレンス SetGraphMode
http://homepage2.nifty.com/natupaji/DxL ... .html#R4N1
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: クラスからGameMainの関数にアクセスする方法
返信数: 6
閲覧数: 3323

Re: クラスからGameMainの関数にアクセスする方法

ホヅミさんのおっしゃった方法で子フォームから親フォームの関数を呼び出すことができます。 別の例を挙げます。 //親フォーム class Form1 : Form { public Form1() { InitializeComponent(); Form2 f2 = new Form2(); f2.Show(this); //f2の親をForm1にする } public void Func() { this.Text = "Func関数が呼ばれました。"; } } //子フォーム class Form2 : Form { public Form2() { InitializeComponent...
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: クラスからGameMainの関数にアクセスする方法
返信数: 6
閲覧数: 3323

Re: クラスからGameMainの関数にアクセスする方法

C#のDXライブラリはよくわかりませんが、GameMainクラスのメンバ関数をほかのクラスから呼び出したいのなら class GameMain { public void Func() { //Sampleクラスから呼ばれる } } class Sample { GameMain game; public Sample() { game = new GameMain(); game.Func(); } } のようにGameMainクラスのメンバ関数にpublic修飾子をつければアクセスできるようになります。 ※期待外れの回答だったらすみません。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリ上でピスコラ利用したい
返信数: 19
閲覧数: 6738

Re: DXライブラリ上でピスコラ利用したい

DLLからLIB不ファイルを生成する方法です。 参考URLを貼っておきます。 http://s.ameblo.jp/nana-2007-july/entry-10101317623.html 参考URLを見た方が分かりやすいと思いますが、一応書きます。 ① 作業用フォルダを作り、 dumpbin.exeとlib.exe、link.exe、mspdb80.dllとpxtoneWin32.dllを探してコピー。 ② コマンドプロンプトを開き、①で作ったフォルダに移動。 (例: cドライブ直下にフォルダを作った場合 cd c:\フォルダ名 のコマンドで移動できます。) ③ コマンドプロンプトに du...
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリ上でピスコラ利用したい
返信数: 19
閲覧数: 6738

Re: DXライブラリ上でピスコラ利用したい

ピストンコラージュの作者さんのホームページに Windowsアプリケーションでピストンコラージュ の曲を再生するサンプルプロジェクトが用意されています。 サンプルを参考にしつつDXライブラリように少し修正すれば 再生できます。 http://hp.vector.co.jp/authors/VA022293/pxtone/index.html [http://を追加 by softya(ソフト屋)] (下のほうに小さくサンプルのダウンロードリンクがあります。) なお、PXTONEの生成時にウィンドウハンドルを指定する必要があるので、 DXライブラリで使う場合は、GetMainWindowHand...
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: ブロック崩し
返信数: 3
閲覧数: 1819

Re: ブロック崩し

確認していませんが、上と下のコードでは、違いがあります。
下のコードでは、

コード:

if(shot[0].x <30)
    shot[0].dx *=-1;
if(shot[1].x >400)
    shot[1].dx *=-1;
のチェックを2回行っています。
上のコードのような動作にするには、

コード:

if(i==0)
{
    if(shot[0].x <30)
        shot[0].dx *=-1;
}
else if(i==1)
{
    if(shot[1].x >400)
        shot[1].dx *=-1;
}
のようにすればいいと思います。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: DXUTのSDKsoundで音を鳴らす
返信数: 8
閲覧数: 3313

Re: DXUTのSDKsoundで音を鳴らす

DXUTについて少し勉強してみました。 メッセージボックスで確認してみましたがどうでしょうか。 INT WINAPI wWinMain( HINSTANCE, HINSTANCE, LPWSTR, int ) { #if defined(DEBUG) | defined(_DEBUG) _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); #endif DXUTCreateWindow( L"DXUT_TEST" ); DXUTCreateDevice( true, 640, 480 );    TCHAR Window...
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: DXUTのSDKsoundで音を鳴らす
返信数: 8
閲覧数: 3313

Re: DXUTのSDKsoundで音を鳴らす

DXUTについてよく分かりませんが、
DXUTCreateWindow( L"タイトル", NULL, NULL, NULL, 0, 0 );
のように第二引数以上を指定してみてはどうですか?
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: C# panelの自動スクロールバーを常に表示する
返信数: 4
閲覧数: 26076

Re: C# panelの自動スクロールバーを常に表示する

解決にチェック忘れていました。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: C# panelの自動スクロールバーを常に表示する
返信数: 4
閲覧数: 26076

Re: C# panelの自動スクロールバーを常に表示する

h2so5さん、沖 滉均さんありがとうございました。
panelのLayoutイベント発生時にVerticalScrollプロパティとHorizontalScrollプロパティのVisibleをtrueに設定することで実現できました。
ありがとうございました。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: C# panelの自動スクロールバーを常に表示する
返信数: 4
閲覧数: 26076

C# panelの自動スクロールバーを常に表示する

panelコントロールのAutoScrollをtrueにすると内容に応じて自動的にスクロールバーがでますが、
このスクロールバーを常に表示しておく方法(panel内の内容がはみ出していなくてもスクロールバーを表示しておく方法)はありますか?
by 雨ガエル
11年前
フォーラム: 作品お披露目掲示板
トピック: C# レイヤーピクチャーボックスコントロールを作ってみました。
返信数: 0
閲覧数: 6155

C# レイヤーピクチャーボックスコントロールを作ってみました。

C#のフォームアプリケーションで画像表示にPictureBoxコントロールが便利ですが、
レイヤー機能を実装しようと思った時になかなかめんどくさかったので
LayerPictureBoxというコントロールを作ってみました。

今のところレイヤーは3枚までです。
使い方は付属のReadme.txtを読んでください。

ぜひ使ってみてください。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: C# ステージエディタのバケツツール
返信数: 3
閲覧数: 2268

Re: C# ステージエディタのバケツツール

softyaさん、参考URLありがとうございます。
とても参考になりました。
ステージデータにラベリング処理をして別の2次元配列に結果を書き込んで、
マウスでクリックした座標のラベルの部分を別のチップで置き換えれば
よさそうです。
がんばってみます。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: C# ステージエディタのバケツツール
返信数: 3
閲覧数: 2268

Re: C# ステージエディタのバケツツール

ちなみにチップの並びはbyte[,]Dataという2次元配列に入っています。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: C# ステージエディタのバケツツール
返信数: 3
閲覧数: 2268

C# ステージエディタのバケツツール

現在2Dアクションゲーム用のステージエディタを作っています。
大まかに完成して使える状態になったのですが、
ペイントソフトなどにある”バケツ”の機能をつけたいと考えています。

ステージエディタのバケツツールでは
「同じチップが並んでいる範囲に別のチップを敷き詰める」
ということをやりたいです。
SnapCrab_No-0000.png
SnapCrab_No-0000.png (2.16 KiB) 閲覧数: 2268 回
(たとえばこの画像の状態でブロックが並んでいるところをクリックすると別のチップに置き換わる)

同じチップが並んでいる範囲を見つける方法が思い浮かばず困っています。
よろしくお願いします。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: C# Bitmapクラス
返信数: 2
閲覧数: 1866

Re: C# Bitmapクラス

別の方法を探そうと思います。
すみませんでした。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: C# Bitmapクラス
返信数: 2
閲覧数: 1866

C# Bitmapクラス

Bitmapクラスをnew Bitmap(/*サイズ*/)で実体化したとき、
何も描かれていない透明なBitmapができると思うのですが、
そこに何か描画して、元の透明な状態に戻すにはどうしたらいいでしょうか。

透明な色で作成したBitmapを塗りつぶせばよさそうですが、やりかたがわかりません。

よろしくお願いします。
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: 【終了】 2000万アクセス感謝イベント開催 【告知/雑談】
返信数: 12
閲覧数: 20798

Re: 【終了】 2000万アクセス感謝イベント開催 【告知/雑談】

今回は都合が会わず、参加できませんでした。
すごく楽しみにしていたので残念です。

次回は絶対参加します!!
by 雨ガエル
11年前
フォーラム: C言語何でも質問掲示板
トピック: 関数での素朴な疑問。
返信数: 6
閲覧数: 2358

Re: 関数での素朴な疑問。

戻り値について説明します。変数に型がありますが、関数にも型があります。 この”関数の型”は「関数の戻り値の型」です。 void型の関数は値を返しません。 したがってint rei(int a)という関数はint型の数を返します。 もしvoid rei(int a)にしてしまったら、値を返さないので、 int n = rei(100); はうまくいきません。 まとめると int型の関数はint型の数を返す。 void型の関数は値を返さない。 です。 うまく説明できていないかも知れませんが、関数の戻り値はこんなものです。 たとえば 引数に指定した二つの数を足す、int plus(int A,int...

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