ページ 11

スプリプトについて

Posted: 2013年4月13日(土) 00:11
by メカ
http://karetta.jp/book-node/game-programming/235355
ここに載ってるコードを使ったのですが、
error: 文字数が多すぎます (1行目)
と出て、ファイルを読み込めません。
前は読み込めましたが、急に読めなくなりました。
ファイルには
MapLoad 1,1,13
と書いていますが、文字が多くもないのにエラーになります。
一文字記入しただけでも同様です。
文字コードはUTF-8です。
原因と解決法があれば教えてください。
よろしくお願いします。

Re: スプリプトについて

Posted: 2013年4月13日(土) 00:21
by softya(ソフト屋)
UTF-8はC言語だと読めることは読めると思いますが、英数字だけ限定用途で0x80を超える文字コードや漢字などがまじるとアウトだと思います。
なぜUTF-8なのでしょうか?

Re: スプリプトについて

Posted: 2013年4月13日(土) 00:27
by メカ
すみません。間違いがありました。
Event 1
この文なら出来ました。
あと、一文字も多分できます。
ですが、MapLoad 1,1,13これが出来ないです。
なお、最大文字数などは、読み込まなかった為、少しいじりました。

コード:

//スクリプトは最大300行まで読み込む
#define SCRIPT_MAX_LINE 300
//スクリプト最大文字数
#define SCRIPT_MAX_STRING_LENGTH 500
UTF-8にした理由は、dxライブラリpspを使ってpspで動かしたいからです。
PSPで表示できる文字コードはUTF-8だけだそうです。

Re: スプリプトについて

Posted: 2013年4月13日(土) 00:36
by softya(ソフト屋)
PSP上での動作は画面に出すか、ログファイルに読み込んだ文字を書きだして確認してください。
なにか、ちょとしたバグの気がします。

Re: スプリプトについて

Posted: 2013年4月13日(土) 00:51
by メカ
文字数エラーを避けたらちゃんと入力された文字が表示されましたが、
文字数エラーになるとそのままフリーズして表示も書き込みも出来ないです。
Event 1
ではエラーになりませんでした。

Re: スプリプトについて

Posted: 2013年4月13日(土) 10:52
by softya(ソフト屋)
「error: 文字数が多すぎます (1行目)」と表示されるなら、そこで表示できないのでしょうか?
それと、このプログラムは0行目から始まっているので最初の行は終わっていることになりますよね。
MapLoad 1,1,13 は0から始まる何行目に書かれているんでしょうか?

[補足]
デバッグは分析と推理です。
得られる情報を最大限に活用してバグを取るしかありません。
つまり、得られる情報が断片的だと、ちゃんとした推理も出来ないことになります。
私より実際にプログラムを組んで動かしているメカさんが握っている情報のほうが多いので情報を抜け落ちることなく伝えるようにしてください。

最初の「なお、最大文字数などは、読み込まなかった為、少しいじりました。」ってこれも論理的に説明出来ますか?
説明できないならバグを誤魔化していた可能性があります。
#define SCRIPT_MAX_STRING_LENGTH 500
なぜ、500文字も必要なんでしょうか。

Re: スプリプトについて

Posted: 2013年4月13日(土) 17:06
by ISLe
BOMが付いてて影響してたりしないですかね。

Re: スプリプトについて

Posted: 2013年4月20日(土) 18:01
by メカ
BOMの影響でシフトになってました(^^)
ありがとうございます!