検索結果 6102 件

by みけCAT
3日前
フォーラム: C言語何でも質問掲示板
トピック: 画像のように3D っぽい2Dの9マスA~I上をキャラにキー入力で移動させたい
返信数: 14
閲覧数: 333

Re: 画像のように3D っぽい2Dの9マスA~I上をキャラにキー入力で移動させたい

迅速な解答感謝いたします。 こちらの方で見れますでしょうか。お手数をお掛けします https://onslaughta.imgur.com/all/?third_party=1 見れません。imgur: the simple 404 pageが出ます。 Imgurの現行仕様では、投稿した画像の画面の投稿した画像にマウスカーソルを当てると 点が3個描かれたボタンが出て、そこを押すと表示されるGet share linksを押すと BBCodeが表示されるので、それをコピーして使うといいでしょう。 例 投稿した画像の画面: https://imgur.com/a/168L9DD https://...
by みけCAT
3日前
フォーラム: C言語何でも質問掲示板
トピック: 画像のように3D っぽい2Dの9マスA~I上をキャラにキー入力で移動させたい
返信数: 14
閲覧数: 333

Re: 画像のように3D っぽい2Dの9マスA~I上をキャラにキー入力で移動させたい

例えば、DXライブラリの機能で実際に3Dで描画し、そこから座標の情報を得る方法があります。 たとえばこのような実装ができます。 #include <DxLib.h> #include <cmath> #include <sstream> // 自分の環境で3D描画が壊れたようなので、その対策モードの切り替え #if 1 #define SET_NO_3D #endif // 各キーが何フレーム押されているかをまとめて取得する int getKeyStatus(int keyStatus[256]) { char keyBuffer[256]; if (GetHitKeyStateAll(key...
by みけCAT
3日前
フォーラム: C言語何でも質問掲示板
トピック: 画像のように3D っぽい2Dの9マスA~I上をキャラにキー入力で移動させたい
返信数: 14
閲覧数: 333

Re: 画像のように3D っぽい2Dの9マスA~I上をキャラにキー入力で移動させたい

座標Eに関しては真ん中をEとして表せていると思います。 あとの残りは斜線っぽい感じの座標で、座標を指定して、そこにキャラが移動する形になると考えています。 [img​]https://mail.google.com/mail/u/0?ui=2&ik=65460f62c3&attid=0.1&permmsgid=msg-f:1642577236477548528&th=16cb9b4b386317f0&view=att&disp=safe[/img] イメージとして以下のようにドットキャラを置きます。 [img​]https://mail.google.com/mail/u/0?ui=2&ik...
by みけCAT
3日前
フォーラム: C言語何でも質問掲示板
トピック: 画像のように3D っぽい2Dの9マスA~I上をキャラにキー入力で移動させたい
返信数: 14
閲覧数: 333

Re: 画像のように3D っぽい2Dの9マスA~I上をキャラにキー入力で移動させたい

3D っぽくなるように座標を前もって指定して 指定した座標を配列に入れておきます。 (例として適当な値を入れてあるが、きちんと計算した方がいいかも?) int drawCoords[5][5][2] = { {{0}}, // どうせここには来ない {{0, 0}, {60, 60}, {100, 60}, {140, 60}, {0, 0}}, {{0, 0}, {50, 100}, {100, 100}, {150, 100}, {0, 0}}, {{0, 0}, {40, 160}, {100, 160}, {160, 160}, {0, 0}}, {{0}} // どうせここには来な...
by みけCAT
3日前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 725

Re: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。

ありがとうございます。あの、ちなみに、私の載せたプログラムは後なにを付け足せば、右に一マス動くでしょうか。 以下のコードが元のコードです。 if ( nx == 3 && idou[nx + 1][ny + 0] == idou[3][2]) {// 移動可能にして、その座標に移動する //nx == 3は移動するxの座標として書きました。 idou[nx + 1][ny + 0] == idou[3][2]; playerphoto = gh[7]; } else if (nx == 1 && idou[nx + 1] == idou[2]) { // 移動不可能 playerphoto ...
by みけCAT
3日前
フォーラム: C言語何でも質問掲示板
トピック: 最初に描画された画像から一瞬横に向くようにしたいです。
返信数: 3
閲覧数: 132

Re: 最初に描画された画像から一瞬横に向くようにしたいです。

usao さんが書きました:
3日前
とりあえずplayerphotoの値をwhileループ内の先頭で毎回初期化している時点で
視認できるほど長い期間だけ値を保持できているとは思えないので,
「視認できるほど」どころか、書き換えたplayerphotoで描画した後、
それを画面の表示に反映する前に初期化したplayerphotoで上から描画してしまうので、
全く表示されないと予想できます。
by みけCAT
4日前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 725

Re: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。

idou[nx + 1][ny + 0] となりidou[2 + 1][2 + 0] =idou[3][2] となるように書いてみたのですが、 idou[nx + 1][ny + 0] == idou[3][2]; は「idou[nx + 1][ny + 0]の値とidou[3][2]の値が等しいかを比較し、その結果にかかわらず何もしない」 というコードです。 Ouxiyさんは、このコードによって何をしてもらうことを期待したのでしょうか? 実行フィルのキャラは右に動かず静止したままでした。なぜでしょうか。 キャラを右に動かす(キャラのX座標を大きくする)コードが無いからですね。 また、ディス...
by みけCAT
4日前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 725

Re: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。

ちなみに、 if (ny != 0) { // キャラが移動しようとしている場合 // 移動先に障害物が無いかをチェックする if (idou[my][mx] != 0) { // 障害物があるので、移動不可能 nx = 1; } else { // 障害物が無いので、移動可能 nx = 0; } はキャラのyに関しての移動できるかどうかの判断するプログラムの部分ですが、 x,y両方に関しての判断を行っています。 nyという変数名は、元のコードとの差分を少なくするために使っているだけで、y座標という意味ではありません。。 以下のようにny == 0 && idou[ny + 1] などのよう...
by みけCAT
5日前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 725

Re: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。

どうか今の自分のコードに何が足りなくて何がダメだったのか知るため、動画のような動きをさせるためにどうすればいいのか勉強するために、 私のコードを修正した物を頂けないでしょうか。 まず第一に、「キャラがマップのどのマスにいるか」から「キャラを画面のどの位置に描画するか」に 変換するための処理が無いのがダメですね。 こんな感じでどうでしょうか? #include "DxLib.h" int Key[256]; // キーが押されているフレーム数を格納する // キーの入力状態を更新する int gpUpdateKey() { char tmpKey[256]; // 現在のキーの入力状態を格納す...
by みけCAT
6日前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 725

Re: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。

どのような動作を「移動」と呼んでいるのかわかりませんが、 #11のコードで右キーにキャラが反応することを確認できました。 まず、charall.pngとして以下の画像を用意しました。 charall.png これを読み込める状態で#11のコードを実行すると、以下の画像のようになりました。 (4倍に拡大し、左上を切り抜いています) sukusyo1-trim-large.png DrawGraph(dx, dy, gh[5], FALSE);により、(dx, dy)すなわち(2, 2)の位置に gh[5]の画像が描画されていることが確認できます。 この状態で右キーを押すと、以下の画像のようになり...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 725

Re: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。

あの、int dx, dy = (2, 2);という書き方ではなぜdx = 2, dy = 2のように1個ずつ初期化されずに実質2になってしまうのですか?また実質2とは何の2でしょうか?座標ではないと思いますが、、、。 C++の規格書(のドラフト)である N3337 から引用します。 まず、8 Declaratorsの1より、変数宣言のうち型(と修飾子)を除いたdx, dy = (2, 2)にあたる部分の文法は init-declarator-list:   init-declarator   init-declarator-list , init-declarator init-decla...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 725

Re: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。

オフトピック
ちなみに、Pythonなら

コード:

dx, dy = (2, 2)
でdxにもdyにも2を代入できます。
どうしてもこのような書き方をしたいのであれば、Pythonを使うのもいいかもしれません。
DXライブラリも使えるようです。
例:PythonでDXライブラリを利用してみた - 気まぐれ雑記(仮)
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 725

Re: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。

ポインタを使ってidou[ny + 1]の出力をint型(整数)と出来るということでしょうか? 「idou[ny + 1]の出力」の意味がよくわかりませんが、 idou[ny + 1]はint*型(ポインタ)になります。 (sizeof演算子に渡す場合などの例外は除く) 間接演算子*を用いてデリファレンスすることで、idou[ny + 1]からint型(整数)の値を得ることができます。 出力がidou[1]だった場合は進めると判断され、 idou[2]の場合は進めないと判断されるということでしょうか? 「出力」がidou[ny + 1]の値のことだと仮定すると、 &&演算子の左辺の条件により...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 725

Re: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。

nx==0でidou[nx + 1]がidou[1]の時移動可能にして、その座標に移動する、nx==1でidou[nx + 1]がidou[2]の時移動不可能 は、 if (nx == 0 && idou[nx + 1]==idou[1]) { // 移動可能にして、その座標に移動する } else if (nx == 1 && idou[nx + 1] == idou[2]) { // 移動不可能 } else { // 不明 } と書けます。 ただし、(nxがint型のとき)nx==0のとき常にnx+1は1、nx==1のとき常にnx+1は2なので、 各条件文の後半は常に成り立ち、実質nx...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 725

Re: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。

そのまんまidou[ny + 1]と書けばいいと思います。 まず、idouは「int型の要素5個の配列」型の要素5個の配列です。 idou[ny + 1]はidouの要素である「int型の要素5個の配列」であり、 式中では一部の例外を除いてその配列の先頭要素(int型)へのポインタに変換されます。 したがって、idou[ny + 1]は例えばint*型の変数に代入できます。 あとは、どう使うかですね。 提示されたコードには、 文法エラーがある 未初期化の自動変数の値(不定)が計算に使われている if文のカッコの後に余計なセミコロンがあり、条件分岐が効かない int playerX,player...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 配列の1の位置をplayerX、playerYとしたい、
返信数: 7
閲覧数: 293

Re: 配列の1の位置をplayerX、playerYとしたい、

idou[3][3]を int idou[5][5] = { {1,1,1,1,1 }, {1,0,0,0,1 }, {1,0,1,0,1 }, {1,0,0,0,1 }, {1,1,1,1,1 }, }; と書かなくても、 int idou[3][3] = { {0, 0, 0 }, {0, 1, 0 }, {0, 0, 0 } }; で9マス内での移動としてキャラを動かせるのでしょうか? はい。 移動先が範囲内かのチェックをして、範囲内の場合のみ動かすようにすればいいでしょう。 int idou[5][5]のように1で空0囲まないと9マス内の移動と出来ないのでしょうか。 いいえ。 ただし...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 配列を座標として障害物かどうかなぜ判断できないのかについて
返信数: 4
閲覧数: 215

Re: 配列を座標として障害物かどうかなぜ判断できないのかについて

申し訳ありません。 #3でidouの定義を int idou[5+1][5] としていますが、この+1はテストした時の消し忘れです。 int idou[5][5] としてください。 一応修正後のコード全体を貼ります。 #include "DxLib.h" #include <set> int Key[256]; // キーが押されているフレーム数を格納する // キーの入力状態を更新する int gpUpdateKey() { char tmpKey[256]; // 現在のキーの入力状態を格納する GetHitKeyStateAll(tmpKey); // 全てのキーの入力状態を得る for...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 配列を座標として障害物かどうかなぜ判断できないのかについて
返信数: 4
閲覧数: 215

Re: 配列を座標として障害物かどうかなぜ判断できないのかについて

どうか私の勘違いや間違いがなんなのか教えてください。 とりあえずわかりやすい間違いとして、 playerYについてのコメントに、「座標」のことだと考えられる「座表」という誤字がある 「座標32がキャラのいる座標」としたはずなのに、その後にいきなり謎の数字「24」がある (誤字で32のことだと考えられる) 「移動 し すると」という不自然な表現がある (「移動すると」を表す誤字と考えられる) 「出来なんでしょうか?」という不自然な表現がある (「出来な い んでしょうか?」を表す誤字と考えられる) 配列「idou」を使うはずなのに、「dou」としている誤字がある (iが変な位置にあるのが1件、...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 配列の1の位置をplayerX、playerYとしたい、
返信数: 7
閲覧数: 293

Re: 配列の1の位置をplayerX、playerYとしたい、

質問1に関しては 配列idou[3][3]の1の位置をplayerX、playerYとしたいです。 playerX、playerYに1の位置を入れたい、ということでしょうか? 以下のコードは、配列から1を探し、その位置をplayerXおよびplayerYに入れます。 // 探す対象の配列 int idou[3][3] = { {0, 0, 0 }, {0, 1, 0 }, {0, 0, 0 } }; // 結果を入れる変数 int playerX = -1, playerY = -1; // 配列から1を探し、結果を入れる (1が複数ある場合、最後に見つかったものの座標が入る) for (i...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 原因を知りたい、バグを解決したい。
返信数: 4
閲覧数: 231

Re: 原因を知りたい、バグを解決したい。

Ouxiy さんが書きました:
1週間前
えーと、右のキーを押したときのみ、反映させるように書いたのに
なぜか右のキー以外のキーを押したときも反映されているので、その理由が知りたいです。
「反映させる」「反映されている」の意味がよくわからないので、教えてください。
具体的に、「どうなると予想したのに」「どうなってしまう」のですか?
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: ロックマンエグゼのような3*3マスを移動できるようにしたい
返信数: 31
閲覧数: 963

Re: ロックマンエグゼのような3*3マスを移動できるようにしたい

かずま さんが書きました:
1週間前
「バッファ」って何ですか?
「バッファ」は、https://dixq.net/g/02_09.htmlに書かれている
「char *KeyStateBuf : すべてのキーの押下状態を格納するバッファのポインタ」
のことでしょうか?
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: キーボードとキャラを動かくすための関数を深く理解したい
返信数: 7
閲覧数: 280

Re: キーボードとキャラを動かくすための関数を深く理解したい

ありがとうございます。 なるほど、では bool 右キーが押されていたか = false; ループ { if (現在右キーが押されている) { if (右キーが押されていたか) { // 右キーが押され続けている } else { // 右キーがこのフレームで押された } 右キーが押されていたか = true; } else { // 右キーが話されている 右キーが押されていたか = false; } } 256のキーすべてに対して、以上のように書いてまとめたものが int Key[256]; // キーが押されているフレーム数を格納する // キーの入力状態を更新する int gpUpda...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: キーボードとキャラを動かくすための関数を深く理解したい
返信数: 7
閲覧数: 280

Re: キーボードとキャラを動かくすための関数を深く理解したい

Ouxiy さんが書きました:
1週間前
以下はキーボードを用いてキャラクターを動かす関数のプログラムです
キーボードの状態を得る関数のプログラムはあるようですが、キャラクターを動かす関数は見当たりません。
コピペ忘れでしょうか?
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: キーボードとキャラを動かくすための関数を深く理解したい
返信数: 7
閲覧数: 280

Re: キーボードとキャラを動かくすための関数を深く理解したい

前半の質問については、一旦保留とします、 そしてもう一つ、できれば、別表現で以上のプログラムをもっと簡単に書き直せないでしょうか? というのも、正直、「 フレーム 」や「 押下状態 」などの用語の理解に努めようとしたのですが、うまくいかず、もっとめんどうで地道にあえてわかりやすく簡単に書いたら理解できるような気がしました。 どのような表現を簡単と感じるかは人によるはずなので、わかりません。 例えばloop unrollをしたら「別表現」で「簡単」になるでしょうか? というのも https://dixq.net/g/02_09.html より 私が押したいキーボードは右、左、下、上の四つのみなの...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: 原因を知りたい、バグを解決したい。
返信数: 4
閲覧数: 231

Re: 原因を知りたい、バグを解決したい。

まず、どうして描画先を裏ページにせずにScreenFlip();を使うことに こだわる のですか? ScreenFlip関数のリファレンス を見ると、 概略  フリップ関数、画面の裏ページ(普段は表示されていない)を 表ページ(普段表示されている)に反映する 解説  裏ページの内容を表ページに反映します。 (裏ページ、表ページについては 『SetDrawScreen』関数の解説を参照してください) 注…この関数を使用した後の裏ページの内容は環境によって変わりますので、ScreenFlip 関数を使用した後は ClearDrawScreen 等を使用して裏ページを初期化して下さい となっています...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: ロックマンエグゼのような3*3マスを移動できるようにしたい
返信数: 31
閲覧数: 963

Re: ロックマンエグゼのような3*3マスを移動できるようにしたい

[★行いたいこと] 静止状態と移動状態では常に真正面を向いていましたが、移動する一緒んだけ横向きにして、移動し終わったら真正面に戻るようにしたいと思い、みけさんの描いた後のプログラムに自分のアイディアを入れてみました。(うまく機能していないですが) 「移動する一緒ん」というのは、「移動する一瞬(1フレーム)」のことでしょうか? だとすると、例えばこのようにするとできるでしょう。 (「横向き」というのはよくわかりませんが、gh[8]の代わりにgh[2]を描画すれば「横向き」になると仮定しました) #include "DxLib.h" int Key[256]; // キーが押されているフレーム...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: ロックマンエグゼのような3*3マスを移動できるようにしたい
返信数: 31
閲覧数: 963

Re: ロックマンエグゼのような3*3マスを移動できるようにしたい

// カーソルキーの右が押されている if (Key[KEY_INPUT_RIGHT] == 1) { // 右に動けるなら動く if (playerX + 1 < MAP_WIDTH) playerX++; // 画面に出力 ScreenFlip(); // プレイヤーの画像を描画 while(playerX++){ DrawGraph(playerX, 0, gh[11], FALSE); } } としてみたところ、キャラが消えるのはわかるのですが、ステージも消えてしまうのはなぜでしょうか。 if (playerX + 1 < MAP_WIDTH) playerX++; によってplay...
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: シューティングゲームについて
返信数: 1
閲覧数: 131

Re: シューティングゲームについて

ファイルenemydata.csvのオープンに失敗していると考えられます。
該当のファイルが正しいファイル名で適切な位置にあるか、
およびプログラム実行時のカレントディレクトリが意図通りかを確認してください。

また、ライブラリ内にチェックがあると仮定せず、
ファイルがオープンできたか(戻り値fpがNULLでないか)のチェックを明示的に行い、
オープンに失敗していた場合は先の処理に進まないようにした方が安全でしょう。
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: ロックマンエグゼのような3*3マスを移動できるようにしたい
返信数: 31
閲覧数: 963

Re: ロックマンエグゼのような3*3マスを移動できるようにしたい

別のバージョンも書いてみました。 #include "DxLib.h" int Key[256]; // キーが押されているフレーム数を格納する // キーの入力状態を更新する int gpUpdateKey() { char tmpKey[256]; // 現在のキーの入力状態を格納する GetHitKeyStateAll(tmpKey); // 全てのキーの入力状態を得る for (int i = 0; i < 256; i++) { if (tmpKey[i] != 0) { // i番のキーコードに対応するキーが押されていたら Key[i]++; // 加算 } else { // 押...
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: ロックマンエグゼのような3*3マスを移動できるようにしたい
返信数: 31
閲覧数: 963

Re: ロックマンエグゼのような3*3マスを移動できるようにしたい

質問に答えるのは難しそうな気がしたので、 とりあえずプレイヤーが3*3マスを移動できるプログラムを適当に書いてみました。 #include "DxLib.h" int Key[256]; // キーが押されているフレーム数を格納する // キーの入力状態を更新する int gpUpdateKey() { char tmpKey[256]; // 現在のキーの入力状態を格納する GetHitKeyStateAll(tmpKey); // 全てのキーの入力状態を得る for (int i = 0; i < 256; i++) { if (tmpKey[i] != 0) { // i番のキーコードに...

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