第8講 ロールプレイングゲーム風のアクションゲーム
第5話 1本目の道路を建設してリオとゴールを描く
02を実現するコード例
#include "DxLib.h"
void syokika(); //しょきか ゲームの初期状態を設定する社員(関数)
void main(); //ゲームを進行させる社員
void saisyonogamen(); //さいしょのがめん ゲームの初期画面を描く社員(関数)
void make(); //まけ ゲームオーバーを描く社員(関数)
void kachi(); //かち ゲームクリアを描く社員(関数)
void chizusakusei(); //ちずさくせい 地図を作成する社員(関数)
int m; //ゲームの状態 0:ゲーム始め 1:ゲーム 2:ゲームオーバー 3:ゲールクリア
int siro; //白色の出席番号収納する箱
int kiiro; //黄色の出席番号を収納する箱
int hai; //灰色の出席番号収納する箱
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
  ChangeWindowMode(true); //ウィンドウモードの切り替え
  SetGraphMode(640, 480, 32); //ウインドウサイズの変更
  if (DxLib_Init() == -1)return(-1);  // DXライブラリ初期化処理

  syokika(); //初期化 ゲームの最初の状態を設定
  m = 1; //ゲームの状態 0:ゲーム始め 1:ゲーム 2:ゲームオーバー 3:ゲールクリア
  syokika(); //ゲーム初期状態の設定
  SetDrawScreen(DX_SCREEN_BACK); //裏画像を描画対象に加える
  while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {
    switch (m) { //mはゲームの状態 0:ゲーム始め 1:ゲーム 2:ゲームオーバー 3:ゲールクリア
    Case 0:
      saisyonogamen(); //さいしょのがめん ゲームの初期画面を描く社員(関数)
      break;
    Case 1:
      main(); //ゲームを進行させる社員(関数)
      break;
    Case 2:
      make(); //まけ ゲームオーバーを描く社員(関数)
      break;
    Case 3:
      kachi(); //かち ゲームクリアを描く社員(関数)
      break;
default:
      break;
    }
  }

  WaitKey();   // キー入力待ち
  DxLib_End();  // DXライブラリ終了処理
  return 0;
}
void make() {

}
void kachi() {

}
void main() {
  
chizusakusei(); //地図作製
}
void chizusakusei() {
  int i, j;
  haikeigazou = LoadGraph("画像/b00.png"); //背景画像の出席番号を収納
  for (i = 0; i < 12; i++) {
    for (j = 0; j < 16; j++) {
      DrawGraph(35 * j, 35 * i, haikeigazou, false);
    }
  }
  DeleteGraph(haikeigazou); //背景画像のハンドル(出席番号を収納する箱)の削除
  DrawBox(40, 40, 600, 80, hai, true); //1本目の道路を描く
  syuten = LoadGraph("画像/g00.png"); //ゴール(鍵凹)の出席番号を収納
  DrawGraph(575, 40, syuten, true); //ゴール(鍵凹)を描く
  DeleteGraph(syuten); //ゴール(鍵凹)のハンドル(出席番号を収納する箱)の削除
  syujinkou = LoadGraph("画像/h00.png"); //主人公の出席番号を収納  
  DrawGraph(hx, hy, syujinkou, true); //リオを描く
  DeleteGraph(syujinkou); //ヒーローのハンドル(出席番号を収納する箱)の削除
}

void saisyonogamen() {
  SetFontSize(36); //フォントサイズを36に変更
  DrawFormatString(0, 100, kiiro, "ゲームを始めるにはZキー"); // 文字を描画する
  DrawFormatString(0, 140, kiiro, "を押してください。"); // 文字を描画する
  if (CheckHitKey(KEY_INPUT_Z) != 0) m = 1;
}
void syokika() {
  siro = GetColor(255, 255, 255); //白色に出席番号を割り振りその番号を箱siroに収納
  hai = GetColor(220, 220, 220); //灰色に出席番号を割り振りその番号を箱kiiroに収納
  kiiro = GetColor(255, 255, 0); //黄色に出席番号を割り振りその番号を箱kiiroに収納
  hx = 40, hy = 42; //ヒーローの hx:横位置 hy:縦位置
}
コピペ用添付ファイル


次話の課題です。
画像10001と画像2k00をそれぞれ右クリックを使い、
h00.pngとg00.pngというファイ名で画像フォルダに保存して、
03
と表示してください。
左の動物がこのアクションゲームの主人公(ヒーロー)です。
そして、右の鍵はこのゲームではゴールです。
後の設定で、途中でゴールを開ける04を拾うようにします。
現時点では、ゴールに到達したらゲームクリアとします。
では皆さんわれらがヒーローを動かせるようにして、
ゴールに到達したらゲームクリア
001
としてください。
ただし、キャラクターの動きは、社員void ugoki()に担当させましょう。
ゴールについては地図の一部と考えて社員void chizusakusei()に担当させましょう。
00200900100011




第4話へ   第6話へ
a

初心者のための excel 2016 マクロ VBA 入門講義 基
礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための]世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップ