はじめに
この連載では、さまざまなプログラミング言語やライブラリで同じゲームを開発することで、容易にそのプログラミング言語に入門します。
第6回の今回はプログラミング言語「C#」を使って、次のURLのようなColorゲームを作ります。こちらからアセットをダウンロードしておいてください。
Colorゲームについて
Colorゲームの内容は第1回でも解説した通り、ゲームを開始したら、赤緑青の色ブロックをクリックします。すると背景色にその色が混ぜられるので、どんどんクリックして真っ白な背景にしていこうというゲームです。
プログラミング言語について
C#はMicrosoftが開発した言語で、デスクトップアプリ(Windows)、Webアプリ(ASP.NET)、ゲーム開発(特にUnity)などに使われています。一度「中間言語(IL)」にコンパイルし、実行時にJITコンパイルするハイブリッド型のコンパイラ言語です。オブジェクト指向でデータ型が厳密に管理されるためバグが起きにくく、「.NET」という仕組みで多くのライブラリの機能がすぐ使えます。
Windows Formsについて
「Windows Forms」は「WinForms」とも呼ばれ、.NETを使ってUIパーツなどのGUIを構築できるデスクトップアプリを開発できます。
開発のために必要となる環境の準備
今回必要となる、無料版の「Visual Studio 2026」(以下、VS2026)を準備します。次のURLからVisual StudioインストーラーをダウンロードしてVS2026のC#をインストールしてください。
プロジェクトを作成しよう
VS2026を起動したら「Create a new project」をクリックし、コンボボックスで「C#」と「Windows」を選び「Windows Forms App」をダブルクリックします。
「Project name」を「colorCSForms」とタイプして「Next」ボタンをクリックし、「Framework」を最新のものを選んで「Create」ボタンをクリックしてプロジェクトを作成します。
次の階層図のように「images」フォルダを「colorCSForms」フォルダに配置します。
・階層図
colorCSFormsフォルダ
┠Dependenciesフォルダ(関連ファイルフォルダ)
┠imagesフォルダ(画像フォルダ)
┃┠0.pngファイル(赤の色ブロック画像)
┃┠1.pngファイル(緑の色ブロック画像)
┃┠2.pngファイル(青の色ブロック画像)
┃┠GameOver.pngファイル(ゲームオーバー画像)
┃┠StageClear.pngファイル(ステージクリア画像)
┃┗Title.pngファイル(タイトル画像)
┠Forms1.csファイル(メインフォルダ)
┃┠Forms1ファイル(Forms1,csファイル)
┃┠Forms1.Designer.csファイル(デザインファイル)
┃┗Form1.resx(リソースファイル)
┠Program.csファイル(プログラムファイル)
┗Sprite.csファイル(色ブロックファイル)次のサンプルコードをコーディングし、「Debug」→「Start Debugging」メニューを実行すると真っ白なウィンドウだけ表示されます(図1)。まだテンプレートからウィンドウタイトルを変更し、ウィンドウサイズを大きく変更しただけです。
・サンプルコード「Form1.Designer.cs」ファイル
namespace colorCSForms
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1800, 900);
Text = "Color";
}
#endregion
}
}【サンプルコードの解説】
「Dispose」メソッドはコンポーネントを処分します。
「InitializeComponent」メソッドはUIパーツなどのコンポーネントを初期化します。
文字自体をチラシなどの紙をちぎったちぎり絵で表現するアートを考えました。さらに文字は俳句を自作したものです。Wordで下書きを印刷したら誰でもそれらしいアートが作れます。百均の額縁に入れて大切な人に一句プレゼントしてはどうでしょう。
