検索結果 28 件

by tonari
1年前
フォーラム: 作品お披露目掲示板
トピック: 避けゲーを作りました
返信数: 0
閲覧数: 5352

避けゲーを作りました

FlyingGhost

フリーゲーム夢現に作品を投稿しました!
幽霊を操作して障害物をひたすらよけるお手軽なゲームです
ハイスコアが保存されるのでどれくらい得点を稼げるかチャレンジできます!
遊んでみたい方は、下記リンクよりダウンロードお願いします。
https://freegame-mugen.jp/action/game_6887.html
by tonari
1年前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクト(四角)の色の変更ができない
返信数: 2
閲覧数: 530

Re: オブジェクト(四角)の色の変更ができない

みけCATさん。回答ありがとうございます。仕様変更をしないほうで最初に試したところ、うまくいきました。この後はみけCATさんから教えていただいた仕様変更の部分もやってみます。
おかげで原因もわかり、問題も解決しました、ありがとうございます!
by tonari
1年前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクト(四角)の色の変更ができない
返信数: 2
閲覧数: 530

オブジェクト(四角)の色の変更ができない

閲覧ありがとうございます。今私は、クラスの設計を勉強しているのですが、以下の内容でつまづいています。 CircleクラスとBoxクラスのコンストラクタで色の指定をし、MY_Draw~()で実際に描画しているのですが、Boxクラスの色指定処理部分がうまく反映されません。Circleは正しく描画されています。回答お待ちしています。 VC++2017 ※初めてのクラス設計です。 ※headerはすべてpublicで、宣言のみです //Figure.cpp #include "Figure.h" #include "DxLib.h" Box::Box() { x = 0, y = 0, w = 0, ...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: チェスプログラミング、コマの選択の判定について
返信数: 7
閲覧数: 2088

Re: チェスプログラミング、コマの選択の判定について

すみません、返信が遅れました。 指定したマスというのは、カーソルを合わせていてかつZキーを押したときです。 その指定した状態を表す変数はbool型のcursor.selectで判断するようにしているつもりです。 Check_Input()がtrueなら置けるということなので、cursor.select = true。(cursor.select == trueなら自分のコマの選択が正しく行われている状態) 「駒の有無や所有者をチェックする処理」は、        //何もない場所を指定したとき if (board[y][x].piece == nullptr) { return false; ...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: チェスプログラミング、コマの選択の判定について
返信数: 7
閲覧数: 2088

Re: チェスプログラミング、コマの選択の判定について

返信ありがとうございます、まずInput()の全面捜査ですが、これには全く意味がないので治します、(消しても問題なく動きました)、次に何もない場所を指定することですが、これはボードの中にコマがない場合は、nullptrを指定しています
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: チェスプログラミング、コマの選択の判定について
返信数: 7
閲覧数: 2088

Re: チェスプログラミング、コマの選択の判定について

返信ありがとうございます 入力部分はこのようになっています //入力 int Input(int ¤tPlayer) { for (int y = 0; y < BOARDSIZE; ++y) { for (int x = 0; x < BOARDSIZE; ++x) { if (Key(KEY_INPUT_Z) == 1 && cursor.select == false && currentPlayer == BLACK && CELLSIZE * x == cursor.x && CELLSIZE * y == cursor.y) { if (Check_Input() ==...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: チェスプログラミング、コマの選択の判定について
返信数: 7
閲覧数: 2088

チェスプログラミング、コマの選択の判定について

こんにちは、今私はチェスのコマの判定で、以下のような処理を行いたいのですがうまくいきません。 1,コマの選択 2,選択したコマを置ける場所に置く(細かい条件は未実装) 3,ターンの切り替え この処理の中で、コマの選択をする場合の条件を //入力が正しく行われたか bool Check_Input() { for (int y = 0; y < BOARDSIZE; ++y) { for (int x = 0; x < BOARDSIZE; ++x) { //何もない場所を指定したとき if (board[y][x].piece == nullptr) { return false; } //相...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの分割がうまくいかない
返信数: 11
閲覧数: 1047

Re: ファイルの分割がうまくいかない

散々悩んだ挙句、そういうミスをすると脱力しますよね(笑
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの分割がうまくいかない
返信数: 11
閲覧数: 1047

Re: ファイルの分割がうまくいかない

みけcatさんの通り1フレームだけオセロをする処理を書いたところうまくいきました。 以下がソースコードです //Game.cpp #include "DxLib.h" #include "Input.h" #include "Game.h" #include "SceneManager.h" //確定的な値 static const int SCREEN_WIDIH = 840, SCREEN_HEIGHT = 640, //8方向の判定用 vec_y[] = { -1,-1,0,1,1,1,0,-1 }, vec_x[] = { 0,1,1,1,0,-1,-1,-1 }; //途中で変更する...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの分割がうまくいかない
返信数: 11
閲覧数: 1047

Re: ファイルの分割がうまくいかない

大変申し訳ありません
Put関数内の処理に致命的なミスがあったので直しておきます
変更前
for(vec=0;vec<0;++vec)
変更後
for(vec=0;vec<BOARDSIZE;++vec)
です。
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの分割がうまくいかない
返信数: 11
閲覧数: 1047

Re: ファイルの分割がうまくいかない

返信ありがとうございます。 自分のやりたいことをまとめるとSceneManager.cppですべてのシーン(タイトルなど)とゲームの処理をまとめて、 メインループには、ChangeScene()と、シャットダウンする処理のみを書くつもりで設計しています。 なので、ChangeScene()内の引数のある関数をそのファイル内でも使えるようにしたいのです。 そもそもそれは可能なのでしょうか?見当違いでしたらすみません。自分の勉強不足です。 もっと言うと以下のソースコードの内容を分割コンパイルし、またあとからシーンを切り替えたり、 機能の追加をしやすくするために、SceneManager.cppを作...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの分割がうまくいかない
返信数: 11
閲覧数: 1047

Re: ファイルの分割がうまくいかない

返信ありがとうございます
enumのexternを直しました。
extrenを使うと外部ファイルからでもプロトタイプ宣言した関数や
グローバル変数を参照できるという認識であっているのでしょうか?
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの分割がうまくいかない
返信数: 11
閲覧数: 1047

ファイルの分割がうまくいかない

以前からオセロの質問をしていたものです 今度はシーンごとに分けてプログラムを書きたいのですが、 SceneManager.cpp内のChangeScene()の中で Me_PutPice(board_y, board_x, turn);とAI_PutPice(board_y, board_x, turn); の扱いに困っています。 外部ファイルのグロ-バル変数を参照するためにextern宣言をしているのですがこの変数の定義が Game.cpp内の初期化関数にあるのでうまくいってないのだと思っています。 今行いたい処理は、前回質問した通りのプログラムが動いてくれればいいのですが、このシーンを管理...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: オセロプログラミング、パスができない
返信数: 3
閲覧数: 766

Re: オセロプログラミング、パスができない

返信ありがとうございます。
わかりやすい説明で助かりました。
教えていただいた通りに打ち込んでみたところ、無事にパスができました。
今度はもう一度最初から作り直し、ゲームの完成度を高めたり、
AIの作り方の勉強もするつもりです。
ずっと悩んでいたのですっきりしました。
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: オセロプログラミング、パスができない
返信数: 3
閲覧数: 766

オセロプログラミング、パスができない

オセロプログラミングの質問をしていたものです。 あれからいろいろとコードをいじっていたところ、無事AIを実装できました。 ですが今度は置けなくなったときににパスが発生しなくなってしまいました。 パスをするcheckEnd関数はあるのですが、どのように関連させるのかわかりません。 どのように関連させればいいでしょうか。 以下がコードの内容です //CPUと自分がパスがされない #include "DxLib.h" #include <stdio.h> int key[256]; int gpUpdatekey() { char tmpkey[256]; //現在のキーの入力状態を格納 GetHi...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: オセロプログラミング、コマの処理
返信数: 9
閲覧数: 1533

Re: オセロプログラミング、コマの処理

返信が遅くなって済みません。
確かに返せるコマを計算できる処理があれば、ただ適当に置くAIよりも面白みがありますね。
今のところAIの実装ができそうでできない、といった感じです。
最近質問してばかりだったのでもう少し自分でやってみます。
アドバイスをありがとうございます。
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: オセロプログラミング、コマの処理
返信数: 9
閲覧数: 1533

Re: オセロプログラミング、コマの処理

質問に対しての指摘を受けたので、最終的なソースコードを書いておきます。 CheckFlip関数と、盤面がすべて埋まった時の処理を追加しました。 これで一応、人間対人間のオセロは完成したと思います。 不自然な部分や、後々の学習のために直したほうが良いところなどがあればまた指摘をお願いします。 次は簡単なAI(置ける所があれば置くようなもの)を実装するつもりです。 しばらく一人で考えて解らなかった場合, また別のトピックを立てて質問したいと思います。 #include "DxLib.h" #define SCREEN_WIDIH 840 #define SCREEN_HEIGHT 640 #def...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: オセロプログラミング、コマの処理
返信数: 9
閲覧数: 1533

Re: オセロプログラミング、コマの処理

返信ありがとうございます。 ソースコードを以下のように直したところ、バグが治りました。 単に0をちゃんと返せてないだけ(breakしてた)でした。 ありがとうございます。 int CheckFlip(int y, int x, int turn, int vec) { int flag = 0; while (1) { y += vec_y[vec]; x += vec_x[vec]; //盤面の外に出ていたら終了(盤面内か?) if (x < 0 || y < 0 || x > BOARDSIZE - 1 || y > BOARDSIZE - 1) { return 0; } //空きマス(...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: オセロプログラミング、コマの処理
返信数: 9
閲覧数: 1533

Re: オセロプログラミング、コマの処理

返信ありがとうございます。 本当にしょうもないミスでした・・・。 以下は直した部分です。 //コマを置く処理 void PutPice(int by, int bx, int &turn) { for (int y = 0; y < BOARDSIZE; ++y) { for (int x = 0; x < BOARDSIZE; ++x) { if (board[y][x] == EMPTY && key[KEY_INPUT_Z] == 1 && CELLSIZE * x == cursor.x && CELLSIZE * y == cursor.y) { if (Put(y,x, turn)...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: オセロプログラミング、コマの処理
返信数: 9
閲覧数: 1533

オセロプログラミング、コマの処理

今私はオセロのプログラミングでコマの判定はできたのですが、 表示しているコマの色と実際に処理が行われているコマの情報がおかしくなって困っています。 このプログラムだと、表示しているコマ(置いたコマ)は黒なのに、ひっくり返す判定は白になってしまいます。 また、白を置いた場合は、判定は黒になってしまいます。 おそらく、コマを置いた瞬間にターンが切り替わり、置いたコマの情報が変わってしまっていると思います。 わかりずらい文章ですが、どこがおかしくてどう変えればいいか指摘をお願いします。 (プログラム歴は3か月未満です) #include "DxLib.h" #define SCREEN_WIDIH ...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: カーソルで選んだ場所にコマを置きたい
返信数: 2
閲覧数: 404

Re: カーソルで選んだ場所にコマを置きたい

返信ありがとうございます。
その通りに書いたら行いたい処理ができました。
本当にありがとうございます。
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: カーソルで選んだ場所にコマを置きたい
返信数: 2
閲覧数: 404

カーソルで選んだ場所にコマを置きたい

void PutPice()の中で、選択した場所にコマを置きたいのですが、 どのようにしてその座標の情報を変えたらよいのかわかりません。 今の状態だと当然ながら、EMPTYという状態がすべて書き換わってしまいます 例えば、座標の(0,0)はボードの配列[0][0]ということなので、その場所だけの情報を変えたいです。 どのような記述をすればよいでしょうか? #include "DxLib.h" #define SCREEN_WIDIH 840 #define SCREEN_HEIGHT 640 #define CURSOR_MAX 480 #define BOARDSIZE 8 #define ...
by tonari
2年前
フォーラム: 作品お披露目掲示板
トピック: 自作ゲーム(ブロック崩し)を投稿しました
返信数: 0
閲覧数: 2950

自作ゲーム(ブロック崩し)を投稿しました

プログラミング初心者が初めて作ったゲームです。
あたり判定とか、ポーズ機能などを頑張りました。
BGMや一部のSEは私が作りました。
こちらでダウンロードできます。
https://freegame-mugen.jp/puzzle/game_6216.html
よろしければソースの改善点などをこちらか、フリーゲーム夢現のコメントで教えていただけると嬉しいです。
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: 撃った弾の軌道を変更したい
返信数: 4
閲覧数: 593

Re: 撃った弾の軌道を変更したい

悩んだ末にこのようになりました、 まだ改善しなければならないところがありますがひとまず解決しました。 ありがとうございます。 #define _USE_MATH_DEFINES #include "DxLib.h" #include <math.h> #define SCREEN_WIDIH 1000 #define SCREEN_HEIGHT 900 #define SHOTS_MAX 10 //キーの実装 int key[256]; int gpUpdatekey() { char tmpkey[256]; //現在のキーの入力状態を格納 GetHitKeyStateAll(tmpkey)...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: 撃った弾の軌道を変更したい
返信数: 4
閲覧数: 593

Re: 撃った弾の軌道を変更したい

返信ありがとうございます。 とりあえずボールとのあたり判定の部分を以下のように変更したのですが、 今度は配列に格納されている弾の情報が、反射するとそれ以降ずっと45度になってしまします、 反射して弾がfalseになったらまた通常通り上方向に撃てるようにしたいのですがどうすればよいでしょうか? if (shot[s].y <= mirror_ball.y + mirror_ball.r && shot[s].y >= mirror_ball.y - mirror_ball.r  && shot[s].x >= mirror_ball.x - mirror_ball.r && shot[s].x ...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: 撃った弾の軌道を変更したい
返信数: 4
閲覧数: 593

撃った弾の軌道を変更したい

撃った弾がボールに当たると特定の角度に軌道を変えるという処理を行いたいのですが。 うまくいきません。ボールに弾が当たっていないのに勝手に角度が変わってしまったり,ちゃんと当たった後に変わったりします どうすればボールに当たった時だけ弾の軌道を変更することができますか?おそらくvoid HitCheck()の中の角度を変える部分が間違っていると思うのですが・・・ #define _USE_MATH_DEFINES #include "DxLib.h" #include <math.h> #define SCREEN_WIDIH 1000 #define SCREEN_HEIGHT 900 #de...
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: 自機から弾を発射したい
返信数: 4
閲覧数: 627

Re: 自機から弾を発射したい

ありがとうございます。無事、やりたいことが実装できました
by tonari
2年前
フォーラム: C言語何でも質問掲示板
トピック: 自機から弾を発射したい
返信数: 4
閲覧数: 627

Re: 自機から弾を発射したい

返信ありがとうございます。以下のように変更したところ、弾の座標が自機と同期しないで撃てるようになりました。 あとは、画面外から出た時の処理なのですが、画面から弾が出たらfalseにしてもう一度撃てるようにしたいのですが。 どのような変更を加えればよいでしょうか?(構造体が2つもいらなかったので、修正しました) #include "DxLib.h" #define SCREEN_WIDIH 1000 #define SCREEN_HEIGHT 900 //キーの実装 int key[256]; int gpUpdatekey() { char tmpkey[256]; //現在のキーの入力状態を...

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