検索結果 23 件

by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: 急ぎです…。
返信数: 2
閲覧数: 1009

Re: 急ぎです…。

入力データ値であれば配列aに偶数であれば配列bに格納 入力データ値が奇数であれば配列a、偶数であれば配列bに格納ですかね? printf("\n奇数 合計=%.3f\n", odds_k); printf("件数=%.3f\n", k); printf("\n偶数 合計=%.3f\n", evens_j); printf("偶数 合計=%.3f\n",j); 4つ目は偶数合計ではなく件数ですね。 それとodds_kとevens_jは最初の方で0を代入したきりで使用していません。 printf("input date => "); scanf("%d", &date); if ((date %...
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: マップエディターのファイルの読み込み方。
返信数: 10
閲覧数: 1498

Re: マップエディターのファイルの読み込み方。

オフトピック
テストしていて気付いたことですが、描画の際に気になった点が2つあります。
まず、チップサイズはヘッダーからマップ情報として読み込んでいるのに定数で用意していますね。
定数の方は消してマップ情報からチップのサイズを引っ張ったやつを使ってあげましょう。
それとfor文の条件の最大値ですね。
マップのサイズを与えればいいと思います。
画面外を描画しないようにするのはスクロールと合わせてちょっと工夫は必要ですが…
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: マップエディターのファイルの読み込み方。
返信数: 10
閲覧数: 1498

Re: マップエディターのファイルの読み込み方。

あ、すいません。マップの座標と勘違いしてましたw
レイヤーだから3次元目の移動だから2次元分である座標は無視しないとですよね
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: マップエディターのファイルの読み込み方。
返信数: 10
閲覧数: 1498

Re: マップエディターのファイルの読み込み方。

GetLayerAddrの返り値、

コード:

    return m_pLayerAddr + m_fmfHeader.dwWidth * m_fmfHeader.dwHeight * bySize * byLayerIndex;
となっていますが、レイヤー全体の先頭アドレスに対してマップのサイズを足しちゃダメじゃないですかね?
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: 早急にお願いします。
返信数: 11
閲覧数: 1994

Re: 早急にお願いします。

1.61kmを1.61kmで割ると1になりますよね?
これが1マイルです。
じゃあ逆にマイルをキロメートルに直すなら?
マイルに1.61kmを掛けることでキロメートルに変換することができます。

あとはこれをマイルからキロメートルへ、キロメートルからマイルへ変換する関数として実装するだけですよ。

ちなみに単純な単位の変換はみんな同じように計算するので、米ドルと円の変換とかも同じように計算することができます。
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: 例外がスローされました:GameがNullPtrでした。を解消するにはどうすればいいですか?
返信数: 5
閲覧数: 3519

Re: 例外がスローされました:GameがNullPtrでした。を解消するにはどうすればいいですか?

keito94 さんが書きました:Stage.cppでCPlayerを初期化しようとすると、GameがNullptrだったという例外がスローされてしまいます。
Gameがnullptrということはそれまでに0やNULL、nullptrを直接的・間接的を問わず代入してしまっている可能性があります。
ここに至るまでの処理を見直すことをお勧めします。
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: calloc + strcpyについて
返信数: 10
閲覧数: 2408

Re: calloc + strcpyについて

わん さんが書きました:

コード:

  a = (char*)calloc(20,sizeof(char));
  b = (char*)calloc(20,sizeof(char));
メモリがaとbで連続した領域を確保できたため、事実上のa[40]になったことが原因だと思います。
プログラム実行直後だから起きた出来事ですね。
何度もメモリの確保と解放を繰り返した影響でメモリが断片化した状態で行えば、a[20]とb[20]で別々の場所にメモリが確保されるはずのなので、再現できる可能性は限りなく低いと思いますよ。

C++、メモリ断片化しますよね?(そこが自信ない
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: 自動変数の初期化方法
返信数: 7
閲覧数: 1694

Re: 自動変数の初期化方法

たしかグローバル変数とローカル変数で初期値が違います。
グローバル変数で試してたりしません?
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: 自動変数の初期化方法
返信数: 7
閲覧数: 1694

Re: 自動変数の初期化方法

佐藤 さんが書きました: どの言語か忘れたが
例えば int x[100] = {0}; のような書き方で、xの諸要素が全部0になります。
それC++ですね。(純粋なCはわからないけど、おそらくCから引き継いだ機能です。)
まあ他にもできる言語があるかもですが。
カンマ区切りで指定した部分までは指定した数を代入するけど、指定されなかったやつらは軒並み0にさせられます。

多分0以外で同じ値をまとめていれたい場合は、for文(もしくはfor each)で代入するかmemsetでメモリの先頭アドレスとサイズを渡して一括で上書きするくらいしかなかったはずです。
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: エラーが出て実行できません
返信数: 4
閲覧数: 1131

Re: エラーが出て実行できません

「つまりこういうこと?」と思い、プロトタイプ宣言の方のコードを以下のように書き換えてみたりしましたがダメでした void fSHOT1(int *shotx[10], int *shoty[10], int, int, int, int); 逆ですね。むしろ定義の方を宣言に合わせるべきでした。 配列というのは、添え字を付けなければ配列の先頭のポインタの扱いになります。 その為、渡した関数の中でも元の場所と同じように配列変数として扱えます。(1次元のみ。2次元以降は少し工夫が必要になります)         fSHOT1(&shot1[10].x, &shot1[10].y, player.x...
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: エラーが出て実行できません
返信数: 4
閲覧数: 1131

Re: エラーが出て実行できません

003系 さんが書きました:

コード:

    void fSHOT1(int *shotx, int *shoty, int, int, int, int);
003系 さんが書きました:

コード:

void fSHOT1(int *shotx[10], int *shoty[10], int px, int py, int width, int height) {
宣言と定義で引数が違いますね。
他にも問題が多数あるようなので細かい指摘については後ほどまとめてあげますね。
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: Visual C++のインストール方法について
返信数: 7
閲覧数: 1531

Re: Visual C++のインストール方法について

VC++を使うのであれば、個人的にはVisualStudio2010以降をお勧めします。 VisualStudioの2008までと2010以降ではIDE(開発環境ソフトのこと)の使い勝手が全然違います。 いずれ最新のバージョンを使うことを想定するのならなおさらです。 ちなみに、ネット上で公開されているものは、古いせいで2008でしか動かなかったり、逆に新しいために2008では動かなかったりすることがあります。(実際にゲームを組み始めてからでないと影響ないかも オマケ 開発環境のOS対応一覧 (これはあくまで公式の発表ですので実際はマシン差が出る可能性もあります。) [hr] >・ISOではなく...
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: 値を返さないコントロール パスがあります。と出て当たり判定が実装されない。(初学者)
返信数: 2
閲覧数: 978

Re: 値を返さないコントロール パスがあります。と出て当たり判定が実装されない。(初学者)

1>コードを生成中... 1>c:\users\keito940\documents\visual studio 2017\projects\スタアド\スタアド\collision.cpp(74): warning C4715: 'CCollision::CheckMap': 値を返さないコントロール パスがあります。 エラーというより警告では? POINT CCollision::CheckMap(int x, int y) {     POINT pt[] = {         {x + mPt[0].x,  y + mPt[0].y},//左上         {x + mPt[1]...
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: マップ表示プログラムのデバック中に例外がスローされた。
返信数: 15
閲覧数: 4297

Re: マップ表示プログラムのデバック中に例外がスローされた。

F10で起動してF10とF11を用いて一度ソースを1行ずつ丁寧にデバッグしてはどうですか?
オフトピック
他人のソースをコピペしたり質問をしてそのまま実装したりするのを悪いとは言いませんが、その意味を理解していないと何かあった時他者の手助け無しではバグ取りの1つもできない事態に陥ります。
配列の仕組みなども含めたポインタ全体の勉強を一度しっかり時間をかけて理解するまでやることをお勧めします。
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: ジョイパッドの入力のデバックでアクセス違反が発生した。
返信数: 3
閲覧数: 1004

Re: ジョイパッドの入力のデバックでアクセス違反が発生した。

オフトピック
newはあくまで変数の実体を生成するものであって、生成した変数を利用するためには生成した変数の存在する場所(アドレス)の入れ物(ポインタ型変数)が必要になります。
deleteはポインタ型変数に行うことによって格納しているアドレスに存在する変数を削除、メモリの解放を行うものです。
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: ジョイパッドの入力のデバックでアクセス違反が発生した。
返信数: 3
閲覧数: 1004

Re: ジョイパッドの入力でアクセス違反が発生した。

Main.cppの30行目だったかな?

コード:

new CPlayer(InitX,InitY);

コード:

Player = new CPlayer(InitX,InitY);
にすれば解決すると思います。

newしたものはポインタ型変数に代入しないとポインタ型変数の参照先がnullptr(0x00000000)のままになってしまいます。
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: C2079エラーによってプログラムがコンパイルされない。
返信数: 14
閲覧数: 3250

Re: C2079エラーによってプログラムがコンパイルされない。

どうやらポインタ型を知らないようなのでとりあえずポインタ型を調べることをお勧めします。 Main.hにPlayer.hをインクルードしてクラス内に実体を持つやり方でもいいですが、そのようなやり方だといずれクラスの相互参照によるコンパイルエラーになりかねません。 クラスが相互参照し、ヘッダーも相互参照するとなかなか気付くことができず、気付いても書き換えに時間のかかる面倒なコンパイルエラーを招きます。 これを避けるためにクラスの前方宣言とポインタ型を用いてヘッダーへのインクルードの必要をなくし、インクルードをヘッダーではなくソースファイルで行えるようにします。 それとnewとdeleteはCPla...
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: C2079エラーによってプログラムがコンパイルされない。
返信数: 14
閲覧数: 3250

Re: C2079エラーによってプログラムがコンパイルされない。

クラスの前方宣言で利用できるのはポインタ型の宣言です。
実体を持つためにはサイズの割り当てのためにクラスの中身を知らないといけないため、利用する以前に前方宣言ではなくクラスの定義そのものが必要になります。
Main.h 7行目

コード:

CPlayer Player;
をポインタ型に変更し、InitでnewしてFinでdeleteすればいいと思います。

ちなみにこれはなんですか?
Main.cpp 25行目

コード:

new CPlayer(0.0F, 0.0F);
変数に割り当てていないためメモリリーク一直線なのですが…
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: 複数のコードに分けてコンパイルしようとしたら、C2512エラーが出た。
返信数: 5
閲覧数: 1345

Re: 複数のコードに分けてコンパイルしようとしたら、C2512エラーが出た。

YuOさんの言う通り、引数無しコンストラクターがないのに引数無しのコンストラクターを利用しようとしていることが原因だと思われます。 対策は CCharMoveAndMap()=default; これをCCharMoveAndMapのヘッダー部に記述すれば動くと思います。 ダメだったら CCharMoveAndMap(){} とでも記述すればいいと思います。 通常コンストラクターが存在しない場合、コンパイルする際自動的に引数無しのデフォルトコンストラクターを生成します。 しかし、引数有りのコンストラクタを書いてしまうと、デフォルトコンストラクタは生成されなくなります。 ですが、 main.cpp...
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: 日付を進めるプログラム
返信数: 6
閲覧数: 1149

Re: 日付を進めるプログラム

7行目 if ((++(*d)) > 28) ここでは先に日付を進めてから28を過ぎたか判定をとっていますが、 10~16行目 if (*d == 31) { (*m)++; *d = 1; } else if(*d == 30 && ((*m == 4||*m == 6)||*m == 11)) { (*m)++; *d = 1; }else if(*d == 28){(*m)++; *d = 1;} } これでは内部的には月の変わり目なため、表示上では月が替わるのが1日早くなってしまいます。 7行目 if ((++(*d)) > 28) それと、28日は過ぎているのに28日と同じか判定を...
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: どうすれば画像が読み込めますか?
返信数: 4
閲覧数: 861

Re: どうすれば画像が読み込めますか?

画像は「画像/(画像名)」とのことなのでみけCATさんの仰った場所に画像ディレクトリ(フォルダ)を作成、その中に入れればいいと思います。

それとコンパイルエラーの方ですが、ソースがないため予想ではありますが、「int Handle1」が書かれている場所とそれを利用する場所のブロック({}で囲われたエリア)が違いませんか?
「int Handle1」が書かれたブロックの中にあるブロックならいいのですが、書かれたブロックの外などだと利用可能エリアを抜けてしまいます。
「C++ ブロック」と調べるといろいろ出てきますよ
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: [DXLIB]プレイヤーの背面から敵を映すカメラ
返信数: 5
閲覧数: 867

Re: [DXLIB]プレイヤーの背面から敵を映すカメラ

まず相対座標ですが、この変数自体は回転していないプレイヤーに対してどの位置にカメラがあるかを決めるものなので、基本的に初期化で値を決めたら弄らないでください。 じゃあどうやって回転後の座標を格納するかといったら、別に回転後の座標を格納する変数を用意しておいてください。 次に回転の仕方ですが、行列の作成は問題ないです。ただし、行列を用いてベクトルを変換する場合は、VTransform関数を使います。あっという間に変換してくれる優れものです。 今回は回転だけなのでVTransformSRでも動くかもしれません。動くならSRの方が計算が少ないため、軽いです。 ここで回転させた値は回転後の座標として、...
by 梅衣堂ひよ
2年前
フォーラム: C言語何でも質問掲示板
トピック: [DXLIB]プレイヤーの背面から敵を映すカメラ
返信数: 5
閲覧数: 867

Re: [DXLIB]プレイヤーの背面から敵を映すカメラ

※追記
気になっていたのですが、
17行目なんですが、DxLib_Initは0が正常終了なのでこれだと正常終了した時に異常と判断されてしまいます。
それと、どうしてもわからない場合は言ってくださいね。一応DxLibを用いて組んでみたので動作確認済みですから。

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