Visual Studio 2017 Communityのこと
ゲームが好きなので、一度ゲームを作ってみたいと思ってました。巷にはゲーム制作ソフトも色々とありますが、プログラミングにも少し興味があったので、自分でプログラムを書いて作ってみるよー。学んだことを忘れないように、Webページにまとめていくことにしました。
Q:なんでDXライブラリなの?
A:ネット上に日本語の解説がたくさんあるし、2Dの簡単なゲームを作るのに良さそうだったから
Q:なんでC#なの?C++じゃないの?
A:C++よりC#のほうがわかりやすそうだから
まずはプログラムを作るためのソフト、Visual Studio 2017 Communityをインストールするよ。
ダウンロード先はここ https://visualstudio.microsoft.com/ja/
Visual Studio 2017は、必要な機能を選んでインストールするようになっています。インストーラーの「ワークロード」では「.NETデスクトップ開発」のみを選択すればOK。
Visual Studio 2017 Communityは基本無料、アイテム課金などはないけど、30日以上使う場合はアカウント登録が必要になります。
ゲームを動かすのに必要なDirectXを簡単に使えるようにしてくれる、DXライブラリを導入するよ。
ダウンロード先はここ http://dxlib.o.oo7.jp/dxdload.html このページの「Visual C# 用パッケージ」をダウンロードして任意のフォルダーに展開しておく。
Visual Studio 2017のメニューの「新規作成」→「プロジェクト」で「Visual C#」→「Windowsデスクトップ」→「空のプロジェクト」を選んでプロジェクト作成。
初期設定だと、デバッグ開始した時にゲームの画面と一緒にコンソールウィンドウも開くので、ゲームの画面だけ開くようにする。「プロジェクト」→「(プロジェクト名)のプロパティ」で「アプリケーション」の「出力の種類」を「Windowsアプリケーション」にする。
プロジェクトにDXライブラリのファイルを追加。(プロジェクト名)¥bin¥Debugフォルダーに「DxLib.dll」、「DxLib_x64.dll」、「DxLibDotNet.dll」をコピー。そして「プロジェクト」→「既存の項目の追加」で「DxDLL.cs」を追加。
「プロジェクト」→「新しい項目の追加」で「コード ファイル」を選んで、好きな名前をつけて追加し、以下のプログラムをコピペする。
using DxLibDLL;
using System;
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;
}
}
}
「デバッグ」→「デバッグの開始」、またはツールバーの「開始」、または「F5」キー、を押してデバッグ開始。ウィンドウが開いて黒い画面に水色の円が表示されれば大成功!
Visual Studioのテーマを変える | 「ツール」→「オプション」の「環境」→「全般」→「視覚的効果」の「配色テーマ」でいくつかから選べる |
書いたプログラムを整形 | Ctrl+K、Ctrl+D |
入力補完を再度出す | Ctrl+J |
すべてのプログラムはクラス(Class)という枠組みの中に書く
プログラムを実行すると、static void Main(){}から処理が始まる
文字列は「”(ダブルクォーテーション)」で括る
命令の最後には「;(セミコロン)」を付ける
プログラミングを始める時の通例だそうな
using System;
class HelloWorld
{
static void Main()
{
System.Console.WriteLine("hello, world");
}
}
実行すると「出力」欄に「hello, world」と表示される
処理に影響しない注釈文を書き込める
//一行コメント
/*
複数行コメント
*/
複数の文をまとめる
{
//{}で括った文はひとまとめで扱われる
//ブロック文の中に書く文は、見やすいようにインデントする。
}
数値とか文字とかの入れ物
//変数を宣言
int i;//整数
double d;//倍精度浮動小数
bool b;//ブール値(trueかfalse)フラグに使う
string s;//文字列
int ix,iy,iz;//複数の変数をまとめて宣言
//宣言した変数に代入。
i = 0;
d = 0.1;
b = true;
s = "文字";
int j = 100;//変数を宣言しつつ代入
int k = 0,l = 1;//複数の変数をまとめて宣言しつつ代入
足し算とか引き算とか
a = 1 + 1;//足し算
b = 1 - 1;//引き算
c = 1 * 2;//掛け算
d = 2 / 1;//割り算
e = 2 % 1;//余り
a = (1 + 1) * 2;//()で括った式は計算が優先される
a = a + 1//aの値を1増やす
a += 1;//複合代入演算。上と同じ意味。より短く書ける。
f++//インクリメント。1増やす
f--//デクリメント。1減らす
型を変換しても値の大きさが失われない場合に限り、勝手に変換されて計算される(暗黙の型変換)。
int i = 1;
double d = 1.25;
System.Console.WriteLine(i + d);//結果は2.25
変数や関数などの名前が有効な範囲を定める
namespace name{
int a;
}
a = 0;//名前空間の外からは参照できずエラーになる
変数の中身ではなく変数への参照を渡す
int a = 0;
int b = 100;
int c;//outで受け取る場合は初期化はいらない
MethodA(ref a);
MethodB(in b);//読み取り専用
MethodC(out c);
using DxLibDLL;
using System;
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.DxLib_End();
return;
}
}
}
Visual Studio 2017 Visual Studio 2017の公式サイト
DXライブラリ置き場 DXライブラリの公式サイト
GIMP 無料の画像編集ソフト
Prism このサイトのプログラム表示に使っているスタイルシート
Copyright©Hagure Youma 2018.