自作DXライブラリ製作品のHTML5化が出来そうで出来ません!
Posted: 2023年2月19日(日) 16:10
//////////////////////////////////////////////////////////////////////////////////
DXライブラリ HTML5版を使ってブラウザで動くゲームを作ってみる (VSCode版, Windows)
https://qiita.com/nokotan/items/d2dff1559f981e5e3da5
を読んで
//////////////////////////////////////////////////////////////////////////////////
1.#############################################################################
『DxLibForHTML5-VSCode-master.zip』をダウンロードして、サンプルプログラムは何とか
HTML5化出来ました。証拠↓↓↓(あとで削除予定)
http://www.boreas.dti.ne.jp/tetsuaki/
Pythonは詳しくないんですが「Shared.py」の1378行目の を に書き換える必要がありました?(ないかもしれません)。
################################################################################
2.##############################################################################
だが自作ゲームの場合、「グラフィックやサウンド」が入ってる「Materialフォルダ」や
「データ」が入ってる「dataフォルダ」や、「数々のソースファイル」を置く場所を間違えているのか、
それとも全く別の原因か、上手く「index.html」を生成できません。それらは今のところ
「DxLibForHTML5-VSCode-masterフォルダ」「直下」に置いています。
念のためmain.cppは
どなたか詳しい方、アドバイス願えませんか?
DXライブラリ HTML5版を使ってブラウザで動くゲームを作ってみる (VSCode版, Windows)
https://qiita.com/nokotan/items/d2dff1559f981e5e3da5
を読んで
//////////////////////////////////////////////////////////////////////////////////
1.#############################################################################
『DxLibForHTML5-VSCode-master.zip』をダウンロードして、サンプルプログラムは何とか
HTML5化出来ました。証拠↓↓↓(あとで削除予定)
http://www.boreas.dti.ne.jp/tetsuaki/
Pythonは詳しくないんですが「Shared.py」の1378行目の を に書き換える必要がありました?(ないかもしれません)。
################################################################################
2.##############################################################################
だが自作ゲームの場合、「グラフィックやサウンド」が入ってる「Materialフォルダ」や
「データ」が入ってる「dataフォルダ」や、「数々のソースファイル」を置く場所を間違えているのか、
それとも全く別の原因か、上手く「index.html」を生成できません。それらは今のところ
「DxLibForHTML5-VSCode-masterフォルダ」「直下」に置いています。
念のためmain.cppは
/*
* File: Main
* Author: nokotan
*
* Created on 2020/01/30, 0:57
*
* DxLibToHTML5雛形ファイル
*/
#include "DxLib.h"
#include "Main.h" //←これがいけないのかな?色んなヘッダファイルをインクルードしています。
#ifdef EMSCRIPTEN
#include <emscripten.h>
#endif
static bool shouldExit = false;
void mainLoop()
{
if (ProcessMessage() == -1)
{
shouldExit = true;
}
ClearDrawScreen();
// 入力状態
gpUpdateKey();
// fps更新
FpsUpdate();
// 戦闘
switch (BattleState)
{
case B_PLAYER_TURN: // 自ターン
BattlePlayerTurn();
break;
case B_ENEMY_TURN: // 敵ターン
EnemyTurn();
break;
case B_E_TURN_END:
EndEnemyTurn();
break;
case B_ENCOUNT: // 遭遇
EncountEnemy();
break;
case B_COMMAND: // コマンドセレクト
SelectCommand();
break;
case B_YOU_WIN: // 勝利
YouWin();
break;
case B_YOU_LOSE: // 敗北
YouLose();
break;
case B_STATE_INIT: // 戦闘初期化
InitBattle(StageNum);
break;
case B_TITLE: // タイトル
Title();
break;
case B_CREDIT: // クレジット
Credit();
break;
}
// ESCタイトルに戻るorゲーム終了キー情報
if (BattleState != B_TITLE)
{
// タイトルに戻る
DrawGraph(640 - 64, 480 - 64, hKey[30], TRUE);
// DrawGraph(640 - 160, 480 - 32, hGraStr[STR_B_T_T], TRUE);//タイトルに戻る
DrawStringToHandle(640 - 160, 480 - 32, "Back To Title", GetColor(128, 128, 255), hFont[1]);
if (Key[KEY_INPUT_ESCAPE] == 1)
{
// SE
PlaySoundMem(hSE[SE_P_SKILL], DX_PLAYTYPE_BACK, TRUE);
BattleState = B_TITLE;
}
}
else
{
// タイトルでESCでゲーム終了
DrawGraph(640 - 64, 480 - 72, hKey[30], TRUE);
// DrawGraph(640 - 64, 480 - 40, hGraStr[STR_END], TRUE);
char str[] = "END";
int x = GetDrawFormatStringWidthToHandle(hFont[1], str);
DrawStringToHandle(640 - 56, 480 - 46, str, GetColor(128, 128, 255), hFont[1]);
if (Key[KEY_INPUT_ESCAPE] == 1)
{
// SE
PlaySoundMem(hSE[SE_P_SKILL], DX_PLAYTYPE_BACK, TRUE);
//break;(出来ないらしい)。
}
}
// fps描画
FpsDraw();
ScreenFlip(); // ウエイト
FpsWait();
}
#ifdef _WIN32
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
#else
int main()
{
#endif
SetGraphMode(640, 480, 32);
if (DxLib_Init() == -1)
{
return -1;
}
ChangeFont("07LogoTypeGothic7.ttf");
SetDrawScreen(DX_SCREEN_BACK);
// システム初期化////////////////////////////////////////////
InitSystem();
///////////////////////////////////////////////////////////
#ifdef EMSCRIPTEN
emscripten_set_main_loop(mainLoop, 0, 1);
#else
while (!shouldExit)
{
mainLoop();
}
DxLib_End();
#endif
return 0;
}