質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

ChatGPT

ChatGPTは、OpenAI社の提供するインタラクティブなテキストコミュニケーションを行うことができるAIサービスまたは、そのアルゴリズムのモデル名です。

Q&A

解決済

1回答

1057閲覧

ゲーム制作をする上で関数の作り方の分からない部分はチャットGPTを使用したが、エラーが解決できない。

aqskr

総合スコア5

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

ChatGPT

ChatGPTは、OpenAI社の提供するインタラクティブなテキストコミュニケーションを行うことができるAIサービスまたは、そのアルゴリズムのモデル名です。

0グッド

0クリップ

投稿2023/04/29 18:47

編集2023/04/29 19:38

ゲームコードを製作する本を使い基盤のプログラムを擦クリ、作り方の分からない部分をチャットGPTを使い描き上げたのですが、エラーが出ます、どうすれば解決しますでしょうか?

環境

  • visual studio 2022
  • windows10
#include <iostream> #include <vector> #include <cmath> #include <chrono> #include <thread> #include <conio.h> #include <Windows.h> const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480; const int MOVE_SPEED = 4; const int BULLET_SPEED = 10; const int MAX_BULLETS = 3; const int FPS = 60; const int FRAME_TIME = 1000 / FPS; struct Vec2 { float x; float y; }; struct Bullet { Vec2 pos; Vec2 vel; }; struct Player { Vec2 pos; Vec2 vel; std::vector<Bullet> bullets; }; void movePlayer(Player& player) { player.pos.x += player.vel.x; player.pos.y += player.vel.y; if (player.pos.x < 0) { player.pos.x = 0; } else if (player.pos.x > SCREEN_WIDTH) { player.pos.x = SCREEN_WIDTH; } if (player.pos.y < 0) { player.pos.y = 0; } else if (player.pos.y > SCREEN_HEIGHT) { player.pos.y = SCREEN_HEIGHT; } } void moveBullets(Player& player) { for (auto& bullet : player.bullets) { bullet.pos.x += bullet.vel.x; bullet.pos.y += bullet.vel.y; } for (int i = 0; i < player.bullets.size(); i++) { if (player.bullets[i].pos.x < 0 || player.bullets[i].pos.x > SCREEN_WIDTH || player.bullets[i].pos.y < 0 || player.bullets[i].pos.y > SCREEN_HEIGHT) { player.bullets.erase(player.bullets.begin() + i); i--; } } } void drawPlayer(Player& player) { std::cout << "Drawing player at (" << player.pos.x << ", " << player.pos.y << ")" << std::endl; } void drawBullets(Player& player) { for (auto& bullet : player.bullets) { std::cout << "Drawing bullet at (" << bullet.pos.x << ", " << bullet.pos.y << ")" << std::endl; } } int main(int argc, char* argv[]) { Player player; player.pos = { SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2 }; player.vel = { 0, 0 }; bool quit = false; while (!quit) { DWORD frameStart = GetTickCount(); // handle events if (_kbhit()) { int key = _getch(); switch (key) { case 'w': player.vel.y = -MOVE_SPEED; break; case 's': player.vel.y = MOVE_SPEED; break; case 'a': player.vel.x = -MOVE_SPEED; break; case 'd': player.vel.x = MOVE_SPEED; break; case ' ': if (player.bullets.size() < MAX_BULLETS) { Bullet bullet; bullet.pos = { player.pos.x, player.pos.y }; bullet.vel = { 0, -BULLET_SPEED }; player.bullets.push_back(bullet); } break; case 'q': quit = true; break; } } else { player.vel = { 0, 0 }; movePlayer(player); moveBullets(player); // clear screen system("cls"); // draw objects drawPlayer(player); drawBullets(player); // delay to achieve desired frame rate DWORD frameEnd = GetTickCount(); DWORD frameTime = frameEnd - frameStart; if (frameTime < FRAME_TIME) { std::this_thread::sleep_for(std::chrono::milliseconds(FRAME_TIME - frameTime)); } } } return 0; } while (!quit) { DWORD frameStart = GetTickCount(); // handle events if (_kbhit()) { int key = _getch(); switch (key) { case 'w': player.vel.y = -MOVE_SPEED; break; case 's': player.vel.y = MOVE_SPEED; break; case 'a': player.vel.x = -MOVE_SPEED; break; case 'd': player.vel.x = MOVE_SPEED; break; case ' ': if (player.bullets.size() < MAX_BULLETS) { Bullet bullet; bullet.pos = { player.pos.x, player.pos.y }; bullet.vel = { 0, -BULLET_SPEED }; player.bullets.push_back(bullet); } break; case 'q': quit = true; break; } } else { player.vel = { 0, 0 }; movePlayer(player); moveBullets(player); // clear screen system("cls"); // draw objects drawPlayer(player); drawBullets(player); // delay to achieve desired frame rate DWORD frameEnd = GetTickCount(); DWORD frameTime = frameEnd - frameStart; if (frameTime < FRAME_TIME) { std::this_thread::sleep_for(std::chrono::milliseconds(FRAME_TIME - frameTime)); } } return 0; }

以下はエラーの画像です。
エラーメッセージ

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2023/04/29 19:31

呈示されたコードはCではありません。タグを修正してください。
aqskr

2023/04/29 19:39

変更致しました。
aqskr

2023/04/29 20:01

今、フォロー致しました。
aqskr

2023/04/29 20:01

ありがとうございます。
aqskr

2023/04/30 10:15 編集

guest

回答1

0

ベストアンサー

142行以降をばっさり削除すればコンパイル・エラーは解消します。なぜかはわかりますよね?

投稿2023/04/29 19:55

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aqskr

2023/04/29 20:03

おっしゃる通りにしたらちゃんとコンパイル出来ました。 さすがC++界隈の方です。 ありがとうございます。
aqskr

2023/04/29 20:04

>> なぜかはわかりますよね? いえ、わかりません。
episteme

2023/04/29 20:25

文法/構文ルールに反するからです。教本読んでください。
aqskr

2023/04/29 21:56

了解致しました。 まだまだ、C++の基礎が欠けていました。 あの、先程フォロー致しましたので、ご連絡頂けるとありがたいです。
episteme

2023/04/29 22:21

僕から言うことは何もない
episteme

2023/04/30 08:27

なぜだかわかったらココに報告をお願いします。わからぬままほっとかないように。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問