#4
by TETSU » 1年前
最悪、全部main.cppに書き込んでしまえばいいと思い↓↓↓のプログラムを実験で移植してみました。
コード:
//基本的なプログラム
#include "DxLib.h"
// 定数/////////////////////////
static const int STR_LEN = 256;
// 変数/////////////////////////
int hGraph; // グラフィックハンドル
char MyStr[STR_LEN]; // 描画したい文字列
// グラフィックロードと文字列コピー/////////////////////////
void LoadMyGraphStr(int* h_graph, char* str);
// グラフィックと文字列の描画//////////////////////////////
void DrawMyGraphStr(int* h_graph, char* str);
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK); //ウィンドウモード変更と初期化と裏画面設定
char str[] = "実験プログラム";
// グラフィックロードと文字列コピー/////////////////////////
LoadMyGraphStr(&hGraph, str);
// while( 裏画面を表画面に反映, メッセージ処理, 画面クリア )
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {
// グラフィックと文字列の描画//////////////////////////////
DrawMyGraphStr(&hGraph, MyStr);
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
// グラフィックロードと文字列コピー/////////////////////////
void LoadMyGraphStr(int* h_graph, char* str)
{
// ぴぽや倉庫さんの背景画像をロード
*h_graph = LoadGraph("pipo-pic002.jpg", FALSE);
strcpy_sDx(MyStr, STR_LEN, str);
}
// グラフィックと文字列の描画//////////////////////////////
void DrawMyGraphStr(int* h_graph, char* str)
{
// 画像を描画
DrawGraph(0, 0, *h_graph, FALSE);
// 文字列を描画
DrawString(0, 0, str, GetColor(0, 255, 0));
}
移植プログラムは
コード:
/*
* File: Main
* Author: nokotan
*
* Created on 2020/01/30, 0:57
*
* DxLibToHTML5雛形ファイル
*/
#include "DxLib.h"
#include <string.h>
#ifdef EMSCRIPTEN
#include <emscripten.h>
#endif
static bool shouldExit = false;
// 定数/////////////////////////
static const int STR_LEN = 256;
// 変数/////////////////////////
int hGraph; // グラフィックハンドル
char MyStr[STR_LEN]; // 描画したい文字列
// グラフィックロード//////////////////////////////////////
void LoadMyGraphStr(int *h_graph, char *str);
// グラフィックと文字列の描画//////////////////////////////
void DrawMyGraphStr(int *h_graph, char *str);
void mainLoop()
{
if (ProcessMessage() == -1)
{
shouldExit = true;
}
ClearDrawScreen();
// グラフィックと文字列の描画//////////////////////////////
DrawMyGraphStr(&hGraph, MyStr);
/*{
int MouseX, MouseY;
int CircleColor = (GetMouseInput() & MOUSE_INPUT_LEFT) ? GetColor(255, 255, 0) : GetColor(255, 0, 0);
GetMousePoint(&MouseX, &MouseY);
DrawCircle(MouseX, MouseY, 64, CircleColor);
}
{
int StringColor = CheckHitKey(KEY_INPUT_SPACE) ? GetColor(0, 255, 0) : GetColor(255, 255, 255);
DrawString(3, 3, "Hello DxLib on HTML5!", StringColor);
}*/
ScreenFlip();
}
#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);
// グラフィックロードと文字列コピー/////////////////////////
char str[] = "実験プログラム!!";
LoadMyGraphStr(&hGraph, str);
#ifdef EMSCRIPTEN
emscripten_set_main_loop(mainLoop, 0, 1);
#else
while (!shouldExit)
{
mainLoop();
}
DxLib_End();
#endif
return 0;
}
// グラフィックロードと文字列コピー/////////////////////////
void LoadMyGraphStr(int *h_graph, char *str)
{
// ぴぽや倉庫さんの背景画像をロード
*h_graph = LoadGraph("pipo-pic002.jpg", FALSE);
strcpy_sDx(MyStr, STR_LEN, str);
}
// グラフィックと文字列の描画//////////////////////////////
void DrawMyGraphStr(int *h_graph, char *str)
{
// 画像を描画
DrawGraph(0, 0, *h_graph, FALSE);
// 文字列を描画
DrawString(0, 0, str, GetColor(0, 255, 0));
}
結果は↓↓↓
http://www.boreas.dti.ne.jp/tetsuaki/
文字列は表示されるけど画像は表示されない。グラフィックさえロード出来てしまえば
いいのですが。素材はいったいどこに置けばいいのでしょうか?
最悪、全部main.cppに書き込んでしまえばいいと思い↓↓↓のプログラムを実験で移植してみました。
[code]
//基本的なプログラム
#include "DxLib.h"
// 定数/////////////////////////
static const int STR_LEN = 256;
// 変数/////////////////////////
int hGraph; // グラフィックハンドル
char MyStr[STR_LEN]; // 描画したい文字列
// グラフィックロードと文字列コピー/////////////////////////
void LoadMyGraphStr(int* h_graph, char* str);
// グラフィックと文字列の描画//////////////////////////////
void DrawMyGraphStr(int* h_graph, char* str);
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK); //ウィンドウモード変更と初期化と裏画面設定
char str[] = "実験プログラム";
// グラフィックロードと文字列コピー/////////////////////////
LoadMyGraphStr(&hGraph, str);
// while( 裏画面を表画面に反映, メッセージ処理, 画面クリア )
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {
// グラフィックと文字列の描画//////////////////////////////
DrawMyGraphStr(&hGraph, MyStr);
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
// グラフィックロードと文字列コピー/////////////////////////
void LoadMyGraphStr(int* h_graph, char* str)
{
// ぴぽや倉庫さんの背景画像をロード
*h_graph = LoadGraph("pipo-pic002.jpg", FALSE);
strcpy_sDx(MyStr, STR_LEN, str);
}
// グラフィックと文字列の描画//////////////////////////////
void DrawMyGraphStr(int* h_graph, char* str)
{
// 画像を描画
DrawGraph(0, 0, *h_graph, FALSE);
// 文字列を描画
DrawString(0, 0, str, GetColor(0, 255, 0));
}
[/code]
移植プログラムは
[code]
/*
* File: Main
* Author: nokotan
*
* Created on 2020/01/30, 0:57
*
* DxLibToHTML5雛形ファイル
*/
#include "DxLib.h"
#include <string.h>
#ifdef EMSCRIPTEN
#include <emscripten.h>
#endif
static bool shouldExit = false;
// 定数/////////////////////////
static const int STR_LEN = 256;
// 変数/////////////////////////
int hGraph; // グラフィックハンドル
char MyStr[STR_LEN]; // 描画したい文字列
// グラフィックロード//////////////////////////////////////
void LoadMyGraphStr(int *h_graph, char *str);
// グラフィックと文字列の描画//////////////////////////////
void DrawMyGraphStr(int *h_graph, char *str);
void mainLoop()
{
if (ProcessMessage() == -1)
{
shouldExit = true;
}
ClearDrawScreen();
// グラフィックと文字列の描画//////////////////////////////
DrawMyGraphStr(&hGraph, MyStr);
/*{
int MouseX, MouseY;
int CircleColor = (GetMouseInput() & MOUSE_INPUT_LEFT) ? GetColor(255, 255, 0) : GetColor(255, 0, 0);
GetMousePoint(&MouseX, &MouseY);
DrawCircle(MouseX, MouseY, 64, CircleColor);
}
{
int StringColor = CheckHitKey(KEY_INPUT_SPACE) ? GetColor(0, 255, 0) : GetColor(255, 255, 255);
DrawString(3, 3, "Hello DxLib on HTML5!", StringColor);
}*/
ScreenFlip();
}
#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);
// グラフィックロードと文字列コピー/////////////////////////
char str[] = "実験プログラム!!";
LoadMyGraphStr(&hGraph, str);
#ifdef EMSCRIPTEN
emscripten_set_main_loop(mainLoop, 0, 1);
#else
while (!shouldExit)
{
mainLoop();
}
DxLib_End();
#endif
return 0;
}
// グラフィックロードと文字列コピー/////////////////////////
void LoadMyGraphStr(int *h_graph, char *str)
{
// ぴぽや倉庫さんの背景画像をロード
*h_graph = LoadGraph("pipo-pic002.jpg", FALSE);
strcpy_sDx(MyStr, STR_LEN, str);
}
// グラフィックと文字列の描画//////////////////////////////
void DrawMyGraphStr(int *h_graph, char *str)
{
// 画像を描画
DrawGraph(0, 0, *h_graph, FALSE);
// 文字列を描画
DrawString(0, 0, str, GetColor(0, 255, 0));
}
[/code]
結果は↓↓↓
http://www.boreas.dti.ne.jp/tetsuaki/
文字列は表示されるけど画像は表示されない。グラフィックさえロード出来てしまえば
いいのですが。素材はいったいどこに置けばいいのでしょうか?