検索結果 6118 件

by みけCAT
4日前
フォーラム: C言語何でも質問掲示板
トピック: PICマイコン
返信数: 2
閲覧数: 193

Re: PICマイコン

システムの初期化をした後、
「A/D変換器の結果を読み取り、その結果に応じて出力を設定する」処理を約1msごとに繰り返しているようですね。
by みけCAT
5日前
フォーラム: C言語何でも質問掲示板
トピック: ロックオンマークをロック中のみに描画したいがうまくいかない
返信数: 3
閲覧数: 242

Re: ロックオンマークをロック中のみに描画したいがうまくいかない

修正方法は、例えば

1.
リンク先を適切なURLにしたリンクを投稿する。
もしくは、著作権などの問題が無ければ、ロックオンマークの画像を添付ファイルとして投稿する。

2.
lockImgeをこの時点で初期化するのはやめ、
lockonHandleに画像のハンドルを入れた後、
lockImgeをlockonHandle[0]、lockonHandle[1]、lockonHandle[2]のどれかで初期化するようにする。

3.
DrawFormatStringと同様に、lockが真のときのみlockImgeを描画するようにする。

とよさそうだと思います。
by みけCAT
5日前
フォーラム: C言語何でも質問掲示板
トピック: ロックオンマークをロック中のみに描画したいがうまくいかない
返信数: 3
閲覧数: 242

Re: ロックオンマークをロック中のみに描画したいがうまくいかない

とりあえずすぐにわかる間違いとしては、

1.
質問文中の「ロックオンマークの画像」がロックオンマークの画像ではなくGoogle フォトへのリンクになっている。

2.

コード:

	int lockonHandle[3];
	int lockImge = lockonHandle[3];
という部分において、配列の範囲外の読み込みをしている。

3.
lockImgeがロックオンの状態にかかわらず描画されるようになっている。
lockImgeが前述の範囲外の値のまま描画する可能性がある。

ですね。
by みけCAT
6日前
フォーラム: C言語何でも質問掲示板
トピック: 二つのプログラムの違いに関して。
返信数: 5
閲覧数: 319

Re: 二つのプログラムの違いに関して。

上のプログラムはループで+1されるのに、下のプログラムは一回+1されるだけと言われたのですがなぜでしょうか。 提示されたプログラムにループは含まれていないようですが、 「上のプログラム」ではif (lockonMove > 0)以降が最初のif文のブロックの 外にある ので Key[KEY_INPUT_R] == 1 && playerY == enemyYが 真かどうかにかかわらず 実行され、 「下のプログラム」ではif (lockonMove > 0)以降が最初のif文のブロックの 中にある ので Key[KEY_INPUT_R] == 1 && playerY == enemyYが 真...
by みけCAT
6日前
フォーラム: C言語何でも質問掲示板
トピック: 二つのプログラムの違いに関して。
返信数: 5
閲覧数: 319

Re: 二つのプログラムの違いに関して。

あたっしゅ さんが書きました:
6日前
 「上のプログラム」も「下のプログラム」も { と } の数が、あっていません。
「上のプログラム」も「下のプログラム」も、提示された範囲において { と } の対応は正常に見えます。
あたっしゅさんが「あっていません」とする根拠はなんですか?
最初に表示される範囲だけでなく、提示されたプログラム全体を見て判断しましたか?
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: ドットVRゲームを作りたいです。
返信数: 2
閲覧数: 288

Re: ドットVRゲームを作りたいです。

Ouxiyさんの気持ちまたは考えは書かれているようですが、質問は書かれていないようですね。
雑談であれば、フォーラムルールに基づきタイトルの最後に「[雑談]」とつけてください。
Ouxiyさんは登録してログインしているようなので、日記機能の利用もおすすめします。
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: R(ロックオン)キーを押した後、A(攻撃)キーを押して攻撃する
返信数: 13
閲覧数: 660

Re: R(ロックオン)キーを押した後、A(攻撃)キーを押して攻撃する

質問8. (8) では、変数player2 が消えてなくなるのを知っていますか? A,知りませんでした。なぜ無くなるのでしょうか。 質問9. (9) では、変数prokey が消えてなくなるのを知っていますか? A,知りませんでした。なぜ無くなるのでしょうか。 { ~ } (ブロック)の中でstaticなどの指定をせずに宣言された変数の有効期限は、 そのブロックの終わりまでです。 ブロックを抜けるときにこれらの変数はなくなり、 次にまたブロックの変数宣言のところに来るとまた新しく変数が作られます。 したがって、(8)ではplayer2が宣言されたブロックを抜けているのでplayer2はなくな...
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: do~while文の無限ループがうまく動きません。
返信数: 2
閲覧数: 261

Re: do~while文の無限ループがうまく動きません。

_kbhit関数を呼び出さずにそのアドレスを0と比較しているため、
キー入力があるかどうかにかかわらず_getch()でキーを読みに行ってしまっていますね。
ちゃんと_kbhit関数を呼び出し、戻り値をチェックするようにするといいでしょう。
by みけCAT
1週間前
フォーラム: C言語何でも質問掲示板
トピック: int box[4][7][2]の役割。
返信数: 28
閲覧数: 1126

Re: int box[4][7][2]の役割。

if (Key[KEY_INPUT_R] == 1 && playerY==enemyY) {}の中にif文でif (Key[KEY_INPUT_A] == 1)を書いたのになぜ反映されないのでしょうか。 if (Key[KEY_INPUT_R] == 1 && playerY==enemyY) { enemyImage = enemyGHandle[6]; if (Key[KEY_INPUT_A] == 1) { // アタック playerX = enemyX - 1; playerX = playerX; playerMove = 1; playerImage = playerGHan...
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: 文字をモールス信号のwavにするプログラムでうまく出力できない
返信数: 3
閲覧数: 269

Re: 文字をモールス信号のwavにするプログラムでうまく出力できない

とりあえずすぐに気付くこととしては、
4バイトしかない領域にstrcpyで終端のナル文字を含めて5バイトの文字列をぶち込んでいるので、
範囲外へのアクセスが発生し、未定義動作になります。
strcpyではなく、memcpyでサイズを指定してコピーするようにするといいでしょう。

また、せっかく2周目のループでデータを格納しても、
またdataに新しいバッファの領域を入れ、データを格納したバッファを投げ捨ててしまうのもよくないですね。
2周目はdataへの代入をしないようにするべきでしょう。
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: これが何を意味しているのか教えてください
返信数: 1
閲覧数: 245

Re: これが何を意味しているのか教えてください

オブジェクト?vのx座標またはz座標が60超かつ300未満かどうかで分岐する、という意味であると推測できます。
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: int box[4][7][2]の役割。
返信数: 28
閲覧数: 1126

Re: int box[4][7][2]の役割。

かずまさんの解説についての確認への回答はかずまさんに任せます。 もう一つ疑問なのは、移動可能かどうかを確認するさいにidou配列が必要なのかなと思ってしまったことがあります。というもの、以下のように実際の座標を書いた際に // 描画する座標の配列 int teki[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}...
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: 9マス上のマスを動く敵キャラを作るために時間の関数がほしいです。
返信数: 16
閲覧数: 799

Re: 9マス上のマスを動く敵キャラを作るために時間の関数がほしいです。

どうもありがとうございました。そのような感じになります。 ただ、もう少し行いたいことがあります。 移動した瞬間に向きが切り替わり瞬間移動したようなエフェクトを付けたいです。 そこで私は以下のようにしました。 ClearDrawScreen(); // 裏画面をクリア if (move > 0 && ++move == 20) { move = 0; int playerphoto = gh[8]; // 移動終了 } をコード全体に付け足して、移動した後の状態はplayerphoto = gh[8]より真正面を向いたのままですが、 再び移動してから新しい座標でほんの一瞬だけ横を向くようにした...
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: 9マス上のマスを動く敵キャラを作るために時間の関数がほしいです。
返信数: 16
閲覧数: 799

Re: 9マス上のマスを動く敵キャラを作るために時間の関数がほしいです。

ランダム関数と時間の関数を使い、9マス上を毎秒1s事に敵キャラを9マス上のいずれかのパネルに移動させ、たまに数秒間その場に止まるようなプログラム こんな感じでしょうか? #include <stdio.h> #include <stdlib.h> #include <time.h> #include "DxLib.h" int Key[256]; int gpUpdateKey() { char tmpKey[256]; GetHitKeyStateAll(tmpKey); for (int i = 0; i < 256; i++) (tmpKey[i] == 0) ? (Key[i] = ...
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: 9マス上のマスを動く敵キャラを作るために時間の関数がほしいです。
返信数: 16
閲覧数: 799

Re: 9マス上のマスを動く敵キャラを作るために時間の関数がほしいです。

きちんと変数の意味を意識しましょう。 キャラの座標はnxとny。 これらの値を変える処理が無いので、キャラは動きません。 moveは移動の状態(時間)の管理用。 idouの各要素は5しかないのに、最大30になるmove(の±1程度の値)を添字に使ってしまうと、 範囲外へのアクセスが発生して危険です。 move = 1; move = move + 1; //移動 というのも意味がよくわかりません。これはどういう「移動」を表しているのでしょうか? さらに、move = 1; move = move - 1;だと、実質move = 0;であり、条件move > 0を満たせずに移動できなそうです。
by みけCAT
2週間前
フォーラム: C言語何でも質問掲示板
トピック: 9マス上のマスを動く敵キャラを作るために時間の関数がほしいです。
返信数: 16
閲覧数: 799

Re: 9マス上のマスを動く敵キャラを作るために時間の関数がほしいです。

DXライブラリ置き場 リファレンスページ には「時間関係の関数」という見出しがあり、 GetNowCount  ミリ秒単位の精度を持つカウンタの現在値を得る GetNowHiPerformanceCount  GetNowCountの高精度バージョン GetDateTime  現在時刻を取得する の3関数が挙げられています。 また、C言語の標準ライブラリにも 時間を取り扱う関数群 があり、 Ouxiyさんも使われているtime関数をはじめとして様々な関数があります。 さらに、Windows APIにも、 GetLocalTime関数 や GetTickCount関数 などの時間や時刻を扱う関...
by みけCAT
3週間前
フォーラム: C言語何でも質問掲示板
トピック: 画像のように3D っぽい2Dの9マスA~I上をキャラにキー入力で移動させたい
返信数: 14
閲覧数: 761

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
閲覧数: 761

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
閲覧数: 761

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
閲覧数: 761

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
閲覧数: 1102

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
閲覧数: 353

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

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

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
3週間前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 1102

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
3週間前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 1102

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

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

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
4週間前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 1102

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
4週間前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 1102

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

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

コード:

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

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
4週間前
フォーラム: C言語何でも質問掲示板
トピック: idou[ny + 1][nx + 1]を利用してif文でキャラを縦、横に動かしたいです。
返信数: 24
閲覧数: 1102

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...

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