#2
by あたっしゅ » 3年前
東上☆海美☆「
とりあえず直してみました。
コード:
//
// https://dixq.net/forum/viewtopic.php?f=3&t=21403&sid=1594ae3f6b8f2b2b06a7ebb1def2e477
//DxLibでの個人製作について質問 - ミクプラ(ja)
//
#include "DxLib.h"
//#include "MainCode.h"
//#pragma once
struct Window {
const static int WIDTH = 1280; // 横幅[px]
const static int HEIGHT = 720; // 縦幅[px]
const static int COLOR_BIT = 32; // カラービット[bit]
};
//#include "GameSystem.h"
//#pragma once
/*プレイヤーステータス関数*/
static int PlayerHP = 0;
static int PlayerATK = 0;
static int PlayerDef = 0;
/*エネミーステータス関数*/
static int EnemyHP = 0;
static int EnemyATK = 0;
static int EnemyDef = 0;
int ScreenCreate();
int ChooseTime();
int ChooseSystem();
//
//
//
int WINAPI
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE); // ウインドウモードに変更
SetWindowText("ゲームを作ってみたよ"); // ウィンドウのタイトルを指定
SetGraphMode(Window::WIDTH, Window::HEIGHT, Window::COLOR_BIT); // 解像度とカラービット数を設定
if (DxLib_Init() == -1) { return EXIT_FAILURE; } // 初期化に失敗したらやめる (EXIT_FAILURE: -1)
/*
ここで変数の初期化, 画像のロードなど
*/
SetDrawScreen(DX_SCREEN_BACK);
/*******************GAME LOOP********************************/
while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) {
/*ここで, パラメータをいろいろいじる.*/
ChooseTime();
ClearDrawScreen(); //画面の内容を消去
/*ここで, いろいろ描画する.*/
ScreenCreate();
ScreenFlip();
}
/*******************GAME LOOP END***************************/
DxLib_End(); // DXライブラリ使用の終了処理
return EXIT_SUCCESS; // プログラムの終了 (EXIT_SUCCESS: 0)
}
//#include "DxLib.h"
//#include "GameSystem.h"
/*文字カラー指定*/
unsigned int WhiteColor = GetColor(255, 255, 255);
unsigned int RedColor = GetColor(255, 0, 0); // 新規
/*選択肢分岐*/
int Choose; //0=攻撃,1=防御,2=回復,3=観察
int
ScreenCreate()
{
/*テキストボックスの設置*/
DrawBox(250, 450, 1030, 650, WhiteColor, FALSE);
/*敵(みたいなの)の設置*/
DrawCircle(640, 300, 50, WhiteColor, TRUE);
DrawFormatString(620, 225, WhiteColor, "敵です"); //自己紹介
/*コマンドの配置*/
DrawFormatString(375, 500, WhiteColor, "攻撃"); //攻撃
DrawFormatString(875, 500, WhiteColor, "防御"); //防御
DrawFormatString(375, 585, WhiteColor, "回復"); //回復
DrawFormatString(875, 585, WhiteColor, "観察"); //観察
ChooseSystem();
return 0;
}
int
ChooseTime()
{
if (Choose == 0) {
if (CheckHitKey(KEY_INPUT_RIGHT)) {
//Choose += 1;
Choose = 1;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_DOWN)) {
//Choose += 2;
Choose = 2;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_UP)) {
//Choose += 2;
Choose = 0;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_LEFT)) {
//Choose += 1;
Choose = 0;
return Choose;
}
}
if (Choose == 1) {
if (CheckHitKey(KEY_INPUT_LEFT)) {
//Choose -= 1;
Choose = 0;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_DOWN)) {
//Choose += 2;
Choose = 3;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_RIGHT)) {
//Choose -= 1;
Choose = 1;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_UP)) {
//Choose += 2;
Choose = 1;
return Choose;
}
}
if (Choose == 2) {
if (CheckHitKey(KEY_INPUT_UP)) {
//Choose -= 2;
Choose = 0;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_RIGHT)) {
//Choose += 1;
Choose = 3;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_DOWN)) {
//Choose -= 2;
Choose = 2;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_LEFT)) {
//Choose += 1;
Choose = 2;
return Choose;
}
}
if (Choose == 3) {
if (CheckHitKey(KEY_INPUT_UP)) {
//Choose -= 2;
Choose = 1;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_LEFT)) {
//Choose -= 1;
Choose = 2;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_DOWN)) {
//Choose -= 2;
Choose = 3;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_RIGHT)) {
//Choose -= 1;
Choose = 3;
return Choose;
}
}
return Choose;
}
int
ChooseSystem()
{
DrawFormatString(0, 0, WhiteColor, " ");
switch (Choose) {
case 0:
DrawFormatString(350, 500, WhiteColor, "→");
break;
case 1:
DrawFormatString(850, 500, WhiteColor, "→");
break;
case 2:
DrawFormatString(350, 585, WhiteColor, "→");
break;
case 3:
DrawFormatString(850, 585, WhiteColor, "→");
break;
default:
DrawFormatString( 0, 0, RedColor, "Choose 異常");
break;
}
return 0;
}
// end.
」
東上☆海美☆「
とりあえず直してみました。
[code]
//
// https://dixq.net/forum/viewtopic.php?f=3&t=21403&sid=1594ae3f6b8f2b2b06a7ebb1def2e477
//DxLibでの個人製作について質問 - ミクプラ(ja)
//
#include "DxLib.h"
//#include "MainCode.h"
//#pragma once
struct Window {
const static int WIDTH = 1280; // 横幅[px]
const static int HEIGHT = 720; // 縦幅[px]
const static int COLOR_BIT = 32; // カラービット[bit]
};
//#include "GameSystem.h"
//#pragma once
/*プレイヤーステータス関数*/
static int PlayerHP = 0;
static int PlayerATK = 0;
static int PlayerDef = 0;
/*エネミーステータス関数*/
static int EnemyHP = 0;
static int EnemyATK = 0;
static int EnemyDef = 0;
int ScreenCreate();
int ChooseTime();
int ChooseSystem();
//
//
//
int WINAPI
WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE); // ウインドウモードに変更
SetWindowText("ゲームを作ってみたよ"); // ウィンドウのタイトルを指定
SetGraphMode(Window::WIDTH, Window::HEIGHT, Window::COLOR_BIT); // 解像度とカラービット数を設定
if (DxLib_Init() == -1) { return EXIT_FAILURE; } // 初期化に失敗したらやめる (EXIT_FAILURE: -1)
/*
ここで変数の初期化, 画像のロードなど
*/
SetDrawScreen(DX_SCREEN_BACK);
/*******************GAME LOOP********************************/
while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) {
/*ここで, パラメータをいろいろいじる.*/
ChooseTime();
ClearDrawScreen(); //画面の内容を消去
/*ここで, いろいろ描画する.*/
ScreenCreate();
ScreenFlip();
}
/*******************GAME LOOP END***************************/
DxLib_End(); // DXライブラリ使用の終了処理
return EXIT_SUCCESS; // プログラムの終了 (EXIT_SUCCESS: 0)
}
//#include "DxLib.h"
//#include "GameSystem.h"
/*文字カラー指定*/
unsigned int WhiteColor = GetColor(255, 255, 255);
unsigned int RedColor = GetColor(255, 0, 0); // 新規
/*選択肢分岐*/
int Choose; //0=攻撃,1=防御,2=回復,3=観察
int
ScreenCreate()
{
/*テキストボックスの設置*/
DrawBox(250, 450, 1030, 650, WhiteColor, FALSE);
/*敵(みたいなの)の設置*/
DrawCircle(640, 300, 50, WhiteColor, TRUE);
DrawFormatString(620, 225, WhiteColor, "敵です"); //自己紹介
/*コマンドの配置*/
DrawFormatString(375, 500, WhiteColor, "攻撃"); //攻撃
DrawFormatString(875, 500, WhiteColor, "防御"); //防御
DrawFormatString(375, 585, WhiteColor, "回復"); //回復
DrawFormatString(875, 585, WhiteColor, "観察"); //観察
ChooseSystem();
return 0;
}
int
ChooseTime()
{
if (Choose == 0) {
if (CheckHitKey(KEY_INPUT_RIGHT)) {
//Choose += 1;
Choose = 1;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_DOWN)) {
//Choose += 2;
Choose = 2;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_UP)) {
//Choose += 2;
Choose = 0;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_LEFT)) {
//Choose += 1;
Choose = 0;
return Choose;
}
}
if (Choose == 1) {
if (CheckHitKey(KEY_INPUT_LEFT)) {
//Choose -= 1;
Choose = 0;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_DOWN)) {
//Choose += 2;
Choose = 3;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_RIGHT)) {
//Choose -= 1;
Choose = 1;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_UP)) {
//Choose += 2;
Choose = 1;
return Choose;
}
}
if (Choose == 2) {
if (CheckHitKey(KEY_INPUT_UP)) {
//Choose -= 2;
Choose = 0;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_RIGHT)) {
//Choose += 1;
Choose = 3;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_DOWN)) {
//Choose -= 2;
Choose = 2;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_LEFT)) {
//Choose += 1;
Choose = 2;
return Choose;
}
}
if (Choose == 3) {
if (CheckHitKey(KEY_INPUT_UP)) {
//Choose -= 2;
Choose = 1;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_LEFT)) {
//Choose -= 1;
Choose = 2;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_DOWN)) {
//Choose -= 2;
Choose = 3;
return Choose;
}
else if (CheckHitKey(KEY_INPUT_RIGHT)) {
//Choose -= 1;
Choose = 3;
return Choose;
}
}
return Choose;
}
int
ChooseSystem()
{
DrawFormatString(0, 0, WhiteColor, " ");
switch (Choose) {
case 0:
DrawFormatString(350, 500, WhiteColor, "→");
break;
case 1:
DrawFormatString(850, 500, WhiteColor, "→");
break;
case 2:
DrawFormatString(350, 585, WhiteColor, "→");
break;
case 3:
DrawFormatString(850, 585, WhiteColor, "→");
break;
default:
DrawFormatString( 0, 0, RedColor, "Choose 異常");
break;
}
return 0;
}
// end.
[/code]
」