C#でゲーム作るよ
ゲーム作りたくなった
はじめに
一度ゲームを作ってみたいと思ってた。巷にはゲーム制作ソフトやゲームエンジンは色々とあるけど、プログラミングが必修化される昨今だし自分でプログラムを書いて作ってみるよー
- どんなゲーム作るの?
- PCで遊べる2DのRPGが作りたいなぁ。スマホは今のところ考えてなかった。
- なにを使ってゲーム作るの?
- C#とDXライブラリ
- なんでC#なの?C++じゃないの?
- PCのデスクトップアプリを作れる言語の中ではわかりやすそうだったから。C++はめんどくさそう。
- なんでDXライブラリなの?
- 自分でDirectXを使うの大変そうだし。DXライブラリはC#で使えるし、公式サイトに特徴として「ライブラリの色が薄い」とあるように独自仕様に左右されにくそうだし日本語の解説が充実しているし簡単な2Dゲームを作るのによさそうだから。でもそのうちライブラリに頼らず自分でDirectXを使いたい気もする。
C#でゲームことはじめ
C#とDXライブラリでゲームを作る環境を整える手順
Visual Studio 2019 Communityをインストールする
まずはプログラムを作るための開発環境、Visual Studio 2019 Community をインストールするよー
Visual Studio 2019 Communityは無料、30日以上使う場合はアカウント登録が必要になります。
- Visual Studio 2019のダウンロードはここから https://visualstudio.microsoft.com/ja/
- Visual Studio 2019 Community(以下VS)をインストール。必要な機能だけを選んでインストールできるようになってるから「.NET デスクトップ開発」だけインストールすればよさげ。
- 早速起動!なんですけど、私の環境ではなぜか管理者として実行しないとエラーを起こして起動しなかったんだけどなんで…。
- なお画面左側のツールバーとか使わなそうなウィンドウは消して画面を広くしてました。
プロジェクトを作成する
新規プロジェクトを作成してDXライブラリを使えるようにしよう。
- DXライブラリのダウンロード先はここ http://dxlib.o.oo7.jp/dxdload.html このページにこっそり置かれている「Visual C# 用パッケージ」をダウンロードして任意のフォルダーに展開しておく。
- C#の空のプロジェクトを作成。保存先はどこでもよさげ。
- 初期設定だとデバッグ開始した時にゲームの画面と一緒に黒いウィンドウも開くので、ゲームの画面だけ開くようにする。VSのメニューの「プロジェクト」→「(プロジェクト名)のプロパティ」を開いて、「アプリケーション」タブの「出力の種類」を「Windows アプリケーション」にしておく。
- プロジェクトにDXライブラリのファイルを追加する。「ソリューション エクスプローラー」の(プロジェクト名)を右クリックして「追加」→「既存の項目」でDXライブラリの「DxDLL.cs」をプロジェクトに追加。
- VSのメニューの「ビルド」→「ソリューションのビルド」で一旦ビルドする。
- 「ソリューション エクスプローラー」の(プロジェクト名)を右クリックして「エクスプローラーでフォルダーを開く」でプロジェクトが保存されているフォルダーを開いたら、「Bin」フォルダーの中の「Debug」「Release」の2つのフォルダーの両方に、DXライブラリの「DxLib.dll」「DxLib_x64.dll」「DxLibDotNet.dll」をコピーする。
ちゃんと動くか確認
- 「ソリューション エクスプローラー」の(プロジェクト名)を右クリックして「追加」→「新規の項目」で「コードファイル」を追加したら以下のコードをコピペする。
- 「デバッグ」→「デバッグの開始」、またはツールバーの「開始」、または「F5」キー、を押してデバッグ開始。ウィンドウが開いて黒い画面に水色の円が表示されれば成功!
using System;
using DxLibDLL;
namespace DxTestApp
{
class DxTest
{
[STAThread]
static void Main()
{
DX.ChangeWindowMode(DX.TRUE);
DX.SetGraphMode(640, 480, 32);
if (DX.DxLib_Init() == -1)
{
return;
}
DX.SetDrawScreen(DX.DX_SCREEN_BACK);
while (DX.ScreenFlip() == 0 && DX.ProcessMessage() == 0 && DX.ClearDrawScreen() == 0)
DX.DrawCircle(320, 240, 64, 0xffff);
{
}
DX.DxLib_End();
return;
}
}
}
メモ
- テキストを整形する
- Ctrl+K→Ctrl+D
- IntelliSenseを再表示
- Ctrl+J
- 型推論
- var hagu= "はぐれ";//string型になる
- ジェネリックコレクションが一部しか無い!
- 「参照の追加」、「System」を追加する
- 画像とかのファイルはどこから?
- アプリの実行ファイル(.exe)があるところがルートになる。デバッグ中だとbin/debugフォルダになってるのでプロジェクトのプロパティのデバッグ→作業ディレクトリ、で設定しよう。
- クリップボードの履歴機能