新・ゲームプログラミングの館にて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ワギ

新・ゲームプログラミングの館にて

#1

投稿記事 by ワギ » 13年前

どうも、初めまして

早速ですが、お聞きしたいことがあります
新・ゲームプログラミングの館の1.6章で表画面に描画させる際に差分表示通りにやったはずがエラーになってしまいました。
おかしいな?と思い誤字脱字確かめましたが変わりはなく、差分表示をコピペしてビルドしたものの同じくエラーになってしまいます。
その時は表が本番じゃないからいいやと思い1.7章に行きました。
しかしそちらの方もちゃんと確かめましたがエラーになってしまいます。
同じく差分表示をそのままコピペしたのですがエラーになってしまいます。

何回やっても同じ結果になってしまいます。
どうすれば動かせるようになるでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 新・ゲームプログラミングの館にて

#2

投稿記事 by softya(ソフト屋) » 13年前

その問題が出るソースコードをcodeタグで囲ってコピペしてもらうのとエラーメッセージを正確に掲載してください。
新・ゲームプログラミングに問題は無いと思いますので。

※エラーが出た時が理解を深める良い機会です。
ただ、打ち込みやコピペするよりも勉強になりますよ。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ワギ

Re: 新・ゲームプログラミングの館にて

#3

投稿記事 by ワギ » 13年前

codeタグで囲ってコピペって言うのがよく分からなかったので普通にコピーしました。すみません

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE); // ウィンドウモードに設定
DxLib_Init(); // DXライブラリ初期化処理
    SetDrawScreen( DX_SCREEN_BACK ); //描画先を裏画面に設定
int x = 0;
int Handle; //画像格納用ハンドル
Handle = LoadGraph("画像/キャラクタ01.png");//画像のロード

while( 1 ){
if( ProcessMessage() != 0 ){//メッセージ処理
break;//ウィンドウの×ボタンが押されたらループを抜ける
}
ClearDrawScreen();//画面を消す
DrawGraph( x, 100,Handle, TRUE );//画像の描画
x = x + 2;//xを2増やす
ScreenFlip();//裏画面を表画面に反映
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
エラーコードです

1>c:\users\pc user\downloads\sample\gameprog\test.cpp(6) : error C3872: '0x3000': この文字を識別子で使用することはできません
1>c:\users\pc user\downloads\sample\gameprog\test.cpp(6) : error C3872: '0x3000': この文字を識別子で使用することはできません
1>c:\users\pc user\downloads\sample\gameprog\test.cpp(6) : error C3872: '0x3000': この文字を識別子で使用することはできません
1>c:\users\pc user\downloads\sample\gameprog\test.cpp(6) : error C3872: '0x3000': この文字を識別子で使用することはできません
1>c:\users\pc user\downloads\sample\gameprog\test.cpp(6) : error C3861: '    SetDrawScreen': 識別子が見つかりませんでした

ワギ

Re: 新・ゲームプログラミングの館にて

#4

投稿記事 by ワギ » 13年前

すみません、codeタグってこういうことですか

コード:

#include "DxLib.h"

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE); // ウィンドウモードに設定
DxLib_Init(); // DXライブラリ初期化処理
    SetDrawScreen( DX_SCREEN_BACK ); //描画先を裏画面に設定
int x = 0;
int Handle; //画像格納用ハンドル
Handle = LoadGraph("画像/キャラクタ01.png");//画像のロード

while( 1 ){
if( ProcessMessage() != 0 ){//メッセージ処理
break;//ウィンドウの×ボタンが押されたらループを抜ける
}
ClearDrawScreen();//画面を消す
DrawGraph( x, 100,Handle, TRUE );//画像の描画
x = x + 2;//xを2増やす
ScreenFlip();//裏画面を表画面に反映
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: 新・ゲームプログラミングの館にて

#5

投稿記事 by Dixq (管理人) » 13年前

エラーメッセージに「6行目になんか変な文字がある」と出てますから6行目を確認してみましょう。
全角スペースとか入ってませんか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 新・ゲームプログラミングの館にて

#6

投稿記事 by softya(ソフト屋) » 13年前

今回のエラーですが全角空白文字がエラーの原因でSetDrawScreenの前が全角空白です。
'0x3000': この文字を識別子で使用することはできません → 0x3000は全角空白文字です。

【補足】
プログラムは半角空白かTABでインデントしてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ワギ

Re: 新・ゲームプログラミングの館にて

#7

投稿記事 by ワギ » 13年前

ありがとうございます!

全角になっていましたので半角に直しました
そうしたらエラーコードに
1>LINK : fatal error LNK1168: ファイル C:\Users\PC User\Downloads\Sample\GameProg\Debug\GameProg.exe を開いて書き込むことができません。
と出ましたがどういうことなのでしょうか
よろしかったら教えてもらえませんか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 新・ゲームプログラミングの館にて

#8

投稿記事 by softya(ソフト屋) » 13年前

前に動かしたプログラムが終了できていないんだと思います。
GameProg.exeのウィンドウが残っていれば閉じてください。
ウィンドウが見当たらなければタスクマネージャのプロセスでGameProg.exeを終了させてください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ワギ

Re: 新・ゲームプログラミングの館にて

#9

投稿記事 by ワギ » 13年前

ありがとうございます、無事起動確認しました!
GameProg.exeのウィンドウが見つからず、タスクマネージャでも無かったので再起動しました。
完全に初歩的なミスでした。これから精進します。
softya(ソフト屋)さん、Dixq (管理人)さん、ありがとうございました(_ _)

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: 新・ゲームプログラミングの館にて

#10

投稿記事 by softya(ソフト屋) » 13年前

>GameProg.exeのウィンドウが見つからず、タスクマネージャでも無かったので再起動しました。

アプリケーション・タブではなくプロセス・タブの方ですが見つかりませんでしたか?
プログラムミスで残る可能性があるので毎回再起動は面倒だと思いますのでタスクマネージャの使い方を身に着けてくださいね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1662
登録日時: 15年前
住所: 北海道札幌市
連絡を取る:

Re: 新・ゲームプログラミングの館にて

#11

投稿記事 by Dixq (管理人) » 13年前

> GameProg.exeのウィンドウが見つからず、タスクマネージャでも無かったので再起動しました。

多分ループ文に

コード:

if( ProcessMessage() != 0 ){//メッセージ処理
        break;//ウィンドウの×ボタンが押されたらループを抜ける
}
の無いコードを実行したのでしょう。

ループ文には必ずProcessMessage()を書き、エラーが発生したら直ちにDXライブラリを終了するプログラムを書いて下さい。
館のコードに従っていれば大丈夫です。

閉鎖

“C言語何でも質問掲示板” へ戻る