第10講 プログラムソースを複数のファイルに分割して、プログラムをわかりやすくする
第6話 ブロック崩しの社員をすべて独立させるその1
ソースコードを複数のファイルに分割するコード例
以下のコードはすべてコピペできます。
main.cppのコード
#include"main.h"
void syokika() {
  int i, j;
  for (i = 0; i < s_t; i++) {
    for (j = 0; j < s_y; j++) {
      arunasi[i][j] = 1;
    }
  }
  mx = 400; //ボールの初期の横位置
  my = 920; //ボールの初期の縦位置
  mo = 10; //ボールの大きさ(半径)
  sx = 0; //sikaku(しかく)=ブロックの最初の横位置
  sy = 100; //sikaku(しかく)=ブロックの最初の横位置
  mx_houkou = 1; //ボールの横方向の最初の向き
  my_houkou = -1; //ボールの縦方向の最初の向き
  bx = 0; //バーの最初の横位置
  by = 960; //バーの最初の縦位置
  b_t = 20; //バーの縦幅
  bh = 8; //バーの速さ
  aki = 100; //天井からブロック上端までの距離
  kiiro = GetColor(255, 255, 0); //黄色に出席番号を割り振りその番号を箱kiiroに収納
  aka = GetColor(255, 0, 0); //黄色に出席番号を割り振りその番号を箱kiiroに収納
  midori = GetColor(0, 255, 0); //緑色に出席番号を割り振りその番号を箱midoriに収納
  ao = GetColor(0, 0, 255); //青色に出席番号を割り振りその番号を箱aoに収納
  siro = GetColor(255, 255, 255); //白色に出席番号を割り振りその番号を箱siroに収納
  mizuiro = GetColor(0, 200, 200); //水色に出席番号を割り振りその番号を箱mizuiroに収納
  tokuten = 0; //とくてん 0に初期化
  kosu = s_y*s_t; //ブロック個数 s_y:ブロック横数 s_t:ブロック縦数
  syh = 800 / s_y; //syh:ブロック横幅 s_y:ブロック横数
  sth = syh / 2; //sth:ブロック縦幅 ブロック縦幅
  bh = 8; //バーの速さ
}
atarihanteiのコード
#include"main.h"
void atarihantei() {
  int i, j;
  for (i = 0; i < s_t; i++) {
    for (j = 0; j < s_y; j++) {
      if (arunasi[i][j] >0) {
        if (mx >= syh * j && mx <= syh * (j + 1) && ((my >= sth * i + aki - 6 && my <= sth * i + aki + 6) || (my >= sth * (i + 1) + aki - 6 && my <= sth * (i + 1) + aki + 6))) {
          arunasi[i][j] = 0;
          my_houkou *= houkougae;
          tokuten += 10;
          kosu--;
          if (kosu == 0)m = 3;
        }
      }
    }
  }
  for (i = 0; i < s_t; i++) {
    for (j = 0; j < s_y; j++) {
      if (arunasi[i][j] >0) {
        if (my >= sth * i + aki && my <= sth * (i + 1) + aki && ((mx >= syh * j - 4 && mx <= syh * j + 4) || (mx >= syh * (j + 1) - 4 && mx <= syh * (j + 1) + 4))) {
          arunasi[i][j] = 0;
          mx_houkou *= houkougae;
          tokuten += 10;
          kosu--;
          if (kosu == 0)m = 3;
        }
      }
    }
  }
}
bar.cppのコード
#include"main.h"
void bar() {
  if (CheckHitKey(KEY_INPUT_RIGHT) != 0 && bx + b_y <= 800) {
    bx = bx + bh; //bx:バーの左端の横位置 bh:バーの速さ
  }
  if (CheckHitKey(KEY_INPUT_LEFT) != 0 && bx >= 0) {
    bx = bx - bh; //bx:バーの左端の横位置 bh:バーの速さ
  }
  DrawBox(bx, by, bx + b_y, by + b_t, siro, true);
  //bx:バーの左端の横位置 b_y:バーの横幅 b_t:バーの縦幅
}
gamemain.cppのコード
#include"main.h"
void gamemain() {
  maru(); //ボールの位置を計算して、その位置にボールを描く社員
  atarihantei();
  sikaku(); //ブロックの位置を計算して、その場所にブロックを描く社員 将来的には当たったら消えるようにする仕事も担当する
  bar(); //バーの位置を計算して、その場所にバーを描く社員
  SetFontSize(32); //フォントサイズを32に変更
  DrawFormatString(450, 800, siro, "ゲームスコア:%d", tokuten); // 文字を描画する
}
kachi.cppのコード
#include"main.h"
void kachi() {
  SetFontSize(65); //フォントサイズを65に変更
  DrawBox(0, 0, 800, 1000, mizuiro, true);
  DrawFormatString(100, 100, kiiro, "ヾ(^v^)k"); // 文字を描画する
  DrawFormatString(100, 300, kiiro, "ゲームクリアです"); // 文字を描画する
  SetFontSize(32); //フォントサイズを65に変更
  DrawFormatString(20, 500, siro, "ゲームを再開するときはZキーを、"); // 文字を描画する
  DrawFormatString(20, 540, siro, "ゲーム初期画面に戻るときはQキー"); // 文字を描画する
  DrawFormatString(20, 580, siro, "を押してください。"); // 文字を描画する
  if (CheckHitKey(KEY_INPUT_Z) != 0) {
    syokika();
    m = 1;
  }
  if (CheckHitKey(KEY_INPUT_Q) != 0) {
    syokika();
    m = 0;
  }
}


以下のコードは次話に続きます。


第5話へ   第7話へ
a

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

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