トップページ > 過去ログ > 記事閲覧
14歳からはじめるC言語の質問
名前:二郎 日時: 2008/04/17 11:54

14歳からはじめるC言語の本を見ながら勉強しているのですが、4章の途中で IsGameClear の関数を入れたところから、メイク出来なくなりました。 エラー内容が ■■■■■■■■■■■■■■■■■ > C:\borland\bcc55\Bin\make.exe -fDebug\spgame01.mak TARGET MAKE Version 5.2 Copyright (c) 1987, 2000 Borland bcc32 -W -3 -Od -w- -AT -pc -H- -k -b -v -y -L..\DxLib -DDEBUG -nDebug -I..\DxLib -c C:\MyC\spgame01\spgame01.cpp Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland c:\myc\spgame01\spgame01.cpp: エラー E2268 c:\myc\spgame01\spgame01.cpp 67: 未定義の関数 'IsGameClear' を呼び出した(関数 DrawGameMain() ) *** 1 errors in Compile *** ** error 1 ** deleting Debug\spgame01.obj Make End !! (Elapsed time 0:00.609) ■■■■■■■■■■■■■■■ となっており、打ち損じなどを含めて、関係する箇所を調べたのですが、問題を発見できません。 どのような可能性がありますでしょうか? 教えて頂けると幸いです。 参考に ★IsGameClear関数★ //●ゲーム本体の実行 void DrawGameMain(){ JicharaMove(); JitamaMove(); TekiMove(); if(AtariHantei()==1){ gstate=GAME_OVER; } if(IsGameClear()==1){ gstate=GAME_CLEAR; } } ★クリア条件★ //●クリア条件のチェック(返値が1ならクリア) int IsGameClear(){ if(tekidata[0].life==0) return(1); return(0); } 宜しくお願い申し上げます。

Page: 1 |

Re: 14歳からはじめるC言語の質問 ( No.1 )
名前:おとうさん 日時:2008/04/17 14:24

二郎さん、はじめまして エラーは、IsGameClear関数が定義されていないということですので、関数本体や関数定義ににミスタイプがな いならば、「spgame.h」の中の関数プロトタイプ宣言のところでタイプミスをされているのではないでしょうか?
Re: 14歳からはじめるC言語の質問 ( No.2 )
名前:二郎 日時:2008/04/17 16:48

>おとうさん ありがとうございます。 「spgame.h」の中の関数プロトタイプ宣言も確認したのですが、タイプミスはないようなんです。(発見できていないです) それで困っております。 ちなみに「spgame.h」は、 ■■■■■■■■■■■■■■ #include "DxLib.h" struct CharaData{ int x; //左上座標 int y; int ghandle; //画像ハンドル int life; //ライフ int image_w; //イメージの大きさ int image_h; int bounds_w; //判定領域の大きさ int bounds_h; }; //プロトタイプ宣言 void JitamaMove(); void TekiMove(); int IsAtari(CharaData,CharaData); int AtariHantei(); void JicharaLoad(); void JicharaInit(); void JicharaMove(); void TekiLoad(); void TekiInit(); void DrawGameTitle(); void DrawGameMain(); void DrawGameOver(); void DrawGameClear(); //グローバル変数 extern struct CharaData jikidata; extern struct CharaData jitama[]; extern int trigger; extern struct CharaData tekidata[]; extern int gstate; //定数宣言 #define GAME_TITLE 1 #define GAME_MAIN 2 #define GAME_OVER 3 #define GAME_CLEAR 4 ■■■■■■■■■ となっております。 やはりタイプミスしか、原因は考えられないのでしょうか?(その直前までメイク出来ていただけに・・・) 些細な問題ですみません。 よろしくお願いいたします。
Re: 14歳からはじめるC言語の質問 ( No.3 )
名前:おとうさん 日時:2008/04/17 17:04

二郎さん、 貼り付けていただいたリストでは、 int IsGameClear(); の宣言がされていないように思うのですが。もし、実際のリストでも、「int IsGameClear();」が抜けているよ うでしたら、「void DrawGameClear();」の次の行あたりに、「int IsGameClear();」を加えてみてください。
Re: 14歳からはじめるC言語の質問 ( No.4 )
名前:二郎 日時:2008/04/17 17:27

>おとうさん ありがとうございます。 見事に解決しました。 書籍内の直近見本でも記載を発見できず、自分ひとりでは絶対解決できないような内容でした。 本当にありがとうございました。 私も、おとうさんのようにアドバイスが出来るように頑張って勉強していきたいと思います。

Page: 1 |