ページ 11

超初心者ですが

Posted: 2010年5月31日(月) 02:54
by 春すぎて
プログラムは全くの初心者です。ゲームプログラミングの館~入門編~15.音楽を流す。ここまでは何とかマスター出来たと思って、ためしに簡単な(ボタンをクリックしたら音楽が流れるだけ)のソフトを作って、自分のホームページ(レンタルサーバーを借りました)へアップロードしてみたのですが、うまくいきません。自分のパソコン内のサンプルプログラム実行用フォルダ内の、Releaseファイルをまるごと一式をCDにコピーして別のパソコンで試してみるとうまくいったのです。それと同じようにReleaseファイルをまるごと一式をホームページへアップロードして、別のパソコンでそのホームページを開いてみると、ボタンをクリックすると音楽再生中の画面は表示されるのですが、音声が全く出ないのです。そのパソコンのデスクトップにLog.txtファイルが勝手に作られており、その中を見ると「11885:右記の音声ファイルのロードに失敗しました_1:46.mp3」というようなことが書かれています。ホームページ作成も今回が初めてなので、どこが間違っているのか全く分かりません。
今の自分の知識と能力で、こんなことをやるのは無謀だということもよく分かってはいるのですが、なんでも実際に試してみないと気がすまない性格なものですから、何かアドバイスを頂けると有りがたいのですが、よろしくお願いします。
基本的に私のやりたいことは、簡単なゲームをいくつか作って自分のホームページで公開してみたいということです。本格的なゲームは考えていません。ほんのお遊び程度のものです。
OS:WindowsXP HomeEdition
VisualC++2008ExpressEdition

Re:超初心者ですが

Posted: 2010年5月31日(月) 21:04
by Justy
 音声ファイルが入っていないのでしょう。
 exeとその mp3ファイルを一緒につけて下さい。

 あと Releaseフォルダ全てをアップする必要はありません。
 入門編の通りであれば。Releaseフォルダ内の exeファイルと音声ファイルだけあれば動くはずです。

Re:超初心者ですが

Posted: 2010年6月01日(火) 01:16
by 春すぎて
もう一度、exeファイルとmp3ファイルをアップロードし直したのですが、やはり再生中の画面は出るけれど、音声は出ません。ボタンをクリックすると次の曲が流れるように作ったのですが、クリックすると曲名は次の曲名に変わるのですが無音のままです。
ホームページへアップロードする時に、いろいろと設定が有るようなので、そのへんの設定方法とかアップロードの仕方が悪いのかも知れません。もう少し詳しく説明を読んでから、再度チャレンジしたいと思います。
自分の勉強不足を痛感しています。アドバイス頂きまして有り難うございました。

Re:超初心者ですが

Posted: 2010年6月01日(火) 06:33
by toyo
同一のファイル一式でCD-R経由だと他のパソコンでも動くがネット経由でダウンロードすると音声ファイルの読み込みに失敗するということですね
音声ファイルのアップロードがうまくいってないような気がしますね
zipにまとめてではなくファイル個々にアップロードしてるのでしょうか
mp3をテキストモードで転送しているならバイナリーモードにすればうまくいくと思います

Re:超初心者ですが

Posted: 2010年6月02日(水) 11:09
by 春すぎて
今までの私の説明で、状況を正しく伝えられていなかったような気がします。へたな説明で申し訳ありませんでした。アドバイス通りにmp3とexeをzipにまとめてアップロードしてみました。別のパソコン内にフォルダを作ってその中へ解凍して開いてから、exeをクリックすれば全てうまくいくことが確認できました。でも私が今まで音が出ないと言っているのは、ホームページ内に、この部分をクリックすれば音楽が流れます、もう一度クリックすると次の音楽が流れますという、簡単な音楽プレーヤーのようなものを作ろうとしているのですが、これが画像表示だけはうまくいっているのに、音が出ないということなのです。一つのプログラムで画像作成については順調に動作するのに、音楽再生については動作しないということが不思議です。結局のところホームページ上では音楽を流せないということなんでしょうか?

Re:超初心者ですが

Posted: 2010年6月02日(水) 11:17
by たいちう
パソコンの中の実行ファイルが音楽をならす方法と、
ホームページが音楽をならす方法は、全く別と考えてください。

キーワード:ホームページ 音楽

Re:超初心者ですが

Posted: 2010年6月02日(水) 11:43
by Ma
たいちうさんと同意見です。
ウェブページにexeファイルを組み込むなんて聞いた事ないです。
リンクをクリックしてブラウザのダウンロードフォルダに自動的に落とされたexeファイルを起動しているだけではないのですか?

音楽をHP上で流したいなら(プレイヤーを含めて)、javaスクリプト等を使うべきでしょう。

Re:超初心者ですが

Posted: 2010年6月02日(水) 11:58
by 春すぎて
ホームページの仕組みについて知識が無さすぎたようです。プログラムに関してもですが。
もっと学習してから再チャレンジします。
皆様方のアドバイスに感謝いたします。

Re:超初心者ですが

Posted: 2010年6月02日(水) 14:30
by Dixq (管理人)
ホームページ上で動作するものをDXライブラリで作る事は出来ないです。
Flashゲームなどを見てウェブ上で動くゲームやシステムなんかを想像されているのかもしれませんが、
あれはその言葉通り、Flashというもの(ActionScript)で出来ているのでまったく違います。
また、ウェブで複雑な事をするならJAVAScriptなどを使います。

詳しくは知りたいキーワードをググれば見つかると思います。

DXライブラリの互換性?

Posted: 2010年6月09日(水) 03:17
by kiri
現在、龍神録プログラミングの館の16章まで進めていてるのですが、プロジェクトに同梱されていた
DXライブラリのバージョンが Ver 2.24c だったので Ver 3.02 に更新しようと思い"プロジェクトに追加すべきファイル_VC用"フォルダ内のファイルを"project/include"フォルダに上書きしたら下記のようなエラーが出るようになってしまいました。

1>key.obj : error LNK2019: 未解決の外部シンボル "int __cdecl GetHitKeyStateAll(char *)" (?GetHitKeyStateAll@@YAHPAD@Z) が関数 "int __cdecl GetHitKeyStateAll_2(void)" (?GetHitKeyStateAll_2@@YAHXZ) で参照されました。
1>key.obj : error LNK2019: 未解決の外部シンボル "int __cdecl GetJoypadInputState(int)" (?GetJoypadInputState@@YAHH@Z) が関数 "void __cdecl GetHitPadStateAll(void)" (?GetHitPadStateAll@@YAXXZ) で参照されました。
1>key.obj : error LNK2019: 未解決の外部シンボル "int __cdecl printfDx(char const *,...)" (?printfDx@@YAHPBDZZ) が関数 "int __cdecl CheckStatePad(unsigned int)" (?CheckStatePad@@YAHI@Z) で参照されました。
1>load.obj : error LNK2001: 外部シンボル ""int __cdecl printfDx(char const *,...)" (?printfDx@@YAHPBDZZ)" は未解決です。
1>main.obj : error LNK2001: 外部シンボル ""int __cdecl printfDx(char const *,...)" (?printfDx@@YAHPBDZZ)" は未解決です。
1>enemy.obj : error LNK2001: 外部シンボル ""int __cdecl printfDx(char const *,...)" (?printfDx@@YAHPBDZZ)" は未解決です。
1>load.obj : error LNK2019: 未解決の外部シンボル "int __cdecl LoadSoundMem(char const *,int,int)" (?LoadSoundMem@@YAHPBDHH@Z) が関数 "void __cdecl load(void)" (?load@@YAXXZ) で参照されました。
1>load.obj : error LNK2019: 未解決の外部シンボル "int __cdecl LoadDivGraph(char const *,int,int,int,int,int,int *,int)" (?LoadDivGraph@@YAHPBDHHHHHPAHH@Z) が関数 "void __cdecl load(void)" (?load@@YAXXZ) で参照されました。
1>load.obj : error LNK2019: 未解決の外部シンボル "int __cdecl LoadGraph(char const *,int)" (?LoadGraph@@YAHPBDH@Z) が関数 "void __cdecl load(void)" (?load@@YAXXZ) で参照されました。
1>load.obj : error LNK2019: 未解決の外部シンボル "int __cdecl FileRead_close(int)" (?FileRead_close@@YAHH@Z) が関数 "void __cdecl load_story(void)" (?load_story@@YAXXZ) で参照されました。
1>load.obj : error LNK2019: 未解決の外部シンボル "int __cdecl FileRead_getc(int)" (?FileRead_getc@@YAHH@Z) が関数 "void __cdecl load_story(void)" (?load_story@@YAXXZ) で参照されました。
1>load.obj : error LNK2019: 未解決の外部シンボル "int __cdecl FileRead_open(char const *,int)" (?FileRead_open@@YAHPBDH@Z) が関数 "void __cdecl load_story(void)" (?load_story@@YAXXZ) で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル "int __cdecl ClearDrawScreen(void)" (?ClearDrawScreen@@YAHXZ) が関数 "int __cdecl ProcessLoop(void)" (?ProcessLoop@@YAHXZ) で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル "int __cdecl ProcessMessage(void)" (?ProcessMessage@@YAHXZ) が関数 "int __cdecl ProcessLoop(void)" (?ProcessLoop@@YAHXZ) で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル "int __cdecl DxLib_End(void)" (?DxLib_End@@YAHXZ) が関数 _WinMain@16 で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル "int __cdecl ScreenFlip(void)" (?ScreenFlip@@YAHXZ) が関数 _WinMain@16 で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル "int __cdecl SetDrawScreen(int)" (?SetDrawScreen@@YAHH@Z) が関数 _WinMain@16 で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル "int __cdecl DxLib_Init(void)" (?DxLib_Init@@YAHXZ) が関数 _WinMain@16 で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル "int __cdecl ChangeWindowMode(int)" (?ChangeWindowMode@@YAHH@Z) が関数 _WinMain@16 で参照されました。
1>music.obj : error LNK2019: 未解決の外部シンボル "int __cdecl PlaySoundMem(int,int,int)" (?PlaySoundMem@@YAHHHH@Z) が関数 "void __cdecl music_play(void)" (?music_play@@YAXXZ) で参照されました。
1>enemy_act_pattern.obj : error LNK2019: 未解決の外部シンボル "int __cdecl GetRand(int)" (?GetRand@@YAHH@Z) が関数 "double __cdecl rang(double)" (?rang@@YANN@Z) で参照されました。
1>graph.obj : error LNK2019: 未解決の外部シンボル "int __cdecl DrawRotaGraphF(float,float,double,double,int,int,int)" (?DrawRotaGraphF@@YAHMMNNHHH@Z) が関数 "void __cdecl graph_enemy(void)" (?graph_enemy@@YAXXZ) で参照されました。
1>graph.obj : error LNK2019: 未解決の外部シンボル "int __cdecl DrawGraph(int,int,int,int)" (?DrawGraph@@YAHHHHH@Z) が関数 "void __cdecl graph_board(void)" (?graph_board@@YAXXZ) で参照されました。
1>graph.obj : error LNK2019: 未解決の外部シンボル "int __cdecl SetDrawBlendMode(int,int)" (?SetDrawBlendMode@@YAHHH@Z) が関数 "void __cdecl graph_bullet(void)" (?graph_bullet@@YAXXZ) で参照されました。
1>graph.obj : error LNK2019: 未解決の外部シンボル "int __cdecl SetDrawMode(int)" (?SetDrawMode@@YAHH@Z) が関数 "void __cdecl graph_bullet(void)" (?graph_bullet@@YAXXZ) で参照されました。

何か新たに設定すべきことがあるのでしょうか?
VisualC++ 2008 Express Edition を使用しています。
よろしくお願いします。

Re:DXライブラリの互換性?

Posted: 2010年6月09日(水) 18:52
by Justy
>何か新たに設定すべきことがあるのでしょうか?
 参照しているDXライブラリのヘッダファイルだけが古い可能性が高いです。
 ヘッダファイルのバージョンを確認して下さい。

# IDE上で DxLib.hをインクルードしているところを探し、そこで右クリックして、
「ドキュメント~ DxLib.hを開く」を選択すると確実かと。

Re:DXライブラリの互換性?

Posted: 2010年6月09日(水) 21:13
by kiri
DxDirectX.h DxLib.hのバージョンを確認したところ共にVer 3.02cでした。

># IDE上で DxLib.hをインクルードしているところを探し、そこで右クリックして、
というのは、ファイル>開く>ファイル...という事であっていますか?

Re:DXライブラリの互換性?

Posted: 2010年6月09日(水) 21:15
by Dixq (管理人)
以前プロジェクト全てを新しくしなおしましたのでよければダウンロードしなおしてみて下さい。
ライブラリもプロジェクトも新しくなっています。

Re:DXライブラリの互換性?

Posted: 2010年6月09日(水) 21:40
by Justy
>プロジェクトに同梱されていた
 いつ頃DLしたプロジェクトでしょうか?
 もし 5/23より以前でしたらもう一度DLしなおしてみて下さい。


>DxLib.hのバージョンを確認したところ共にVer 3.02cでした
 んー、ではプロジェクトのプロパティから「C/C++ → 詳細」の中の「インクルードファイルの表示」を「はい」にして
リビルドしてみて下さい。

 大量にビルドログが流れると思いますが、その中から DxLib.hを見つけて下さい。
 ..(略)..\龍神録プロジェクト\16章\mydat\include\../../../include/DxLib.h
のようなパスになっていますか?


># IDE上で DxLib.hをインクルードしているところを探し、そこで右クリックして、
>というのは、ファイル>開く>ファイル...という事であっていますか?
 ちょっと判りづらかったですね。
 添付のようにエディタ上で includeしているところから右クリックです。

Re:DXライブラリの互換性?

Posted: 2010年6月09日(水) 22:30
by kiri
プロジェクトを新たにダウンロードして実行したら、問題なく動作することを確認しました。

ですが、以前のバージョンのどこに原因があるのかわからないので以前のバージョンで
>プロジェクトのプロパティから「C/C++ → 詳細」の中の「インクルードファイルの表示」を「はい」にして
リビルド
してみたら、なぜかエラーも出ずにすんなり実行できました。
パスも \mydat\include\../../../include/DxLib.h とありました。

ものすごく原因も分からずスッキリしない結果になってしまいましたが、Justyさん、管理人さんありがとうございました。