C#でテトリス作成中です。Application.Runとは一体?
Posted: 2017年8月03日(木) 06:51
件名の通りC#にてテトリスを作成中です。【はじめてのぷろぐらみんぐ】 です。
Microsoft Visual Studio Express 2012 を使用しています。
知識はクラスとメソッド・変数・条件分岐程度です。
タイマーを実装してテトリスブロックの落下処理を行いたいのですが、
こいつをどこに書き込めばいいのかイマイチ分かりません。
と言いますのも、Application.Run と言う行が何をどう動かしているのか分からないからです。
他の人の動画を見て、おお、こういうアプリの形で出来るのか格好いいなー。
と、ノリでそこだけはコピったのですが、調べてもさっぱり分かりません。
というか、下のコードで初期化が最初に呼ばれるのは理解できますが、
その他のメソッドの呼ばれる順番が分からないのです。
OnPaint OnKeyDown の両メソッドについてもこうすれば使える程度の知識なのも問題なのかもしれません。
おそらく、初期化 → Application.Run という順で動いているはずなのですが。
その後は一体どうなっているのでしょうか?
下のような感じで書いて貰えると助かります。よろしくお願いします。
初期化 → Application.Run → → → →
補足としまして、
Application.Run がループ処理を行う、という程度は理解しています。(合ってるかは分かりません)
ですが、下のコードでなんでループできるのかは分かっていません。何をループさせているのかも分かりません。
while文とかで無限ループとかなら理解できるのですが。
class Byouga : Form
{
public Byouga()
{
ClientSize = new Size(620, 1000);
//初期化
}
//↓ Formを表示させる
protected override void OnPaint(PaintEventArgs e)
{
各所に 【テトリスブロックの場所】 を送って、壁等と重ならないか調べ、OKならば背景に合成し表示。
最初に背景のリセットも行っています。
}
//↓ Keyが押されたかの判定
protected override void OnKeyDown(KeyEventArgs e)
{
【キー入力】 を読み取って、【位置情報】 や 【ブロックの回転】 を 変化させています。
Invalidate();
//Onpaint の呼び出し
}
//↓ これを別クラスのMain関数から呼び出して実行しています。
public void Zentai()
{
Application.Run(new Byouga());
}
}
Microsoft Visual Studio Express 2012 を使用しています。
知識はクラスとメソッド・変数・条件分岐程度です。
タイマーを実装してテトリスブロックの落下処理を行いたいのですが、
こいつをどこに書き込めばいいのかイマイチ分かりません。
と言いますのも、Application.Run と言う行が何をどう動かしているのか分からないからです。
他の人の動画を見て、おお、こういうアプリの形で出来るのか格好いいなー。
と、ノリでそこだけはコピったのですが、調べてもさっぱり分かりません。
というか、下のコードで初期化が最初に呼ばれるのは理解できますが、
その他のメソッドの呼ばれる順番が分からないのです。
OnPaint OnKeyDown の両メソッドについてもこうすれば使える程度の知識なのも問題なのかもしれません。
おそらく、初期化 → Application.Run という順で動いているはずなのですが。
その後は一体どうなっているのでしょうか?
下のような感じで書いて貰えると助かります。よろしくお願いします。
初期化 → Application.Run → → → →
補足としまして、
Application.Run がループ処理を行う、という程度は理解しています。(合ってるかは分かりません)
ですが、下のコードでなんでループできるのかは分かっていません。何をループさせているのかも分かりません。
while文とかで無限ループとかなら理解できるのですが。
class Byouga : Form
{
public Byouga()
{
ClientSize = new Size(620, 1000);
//初期化
}
//↓ Formを表示させる
protected override void OnPaint(PaintEventArgs e)
{
各所に 【テトリスブロックの場所】 を送って、壁等と重ならないか調べ、OKならば背景に合成し表示。
最初に背景のリセットも行っています。
}
//↓ Keyが押されたかの判定
protected override void OnKeyDown(KeyEventArgs e)
{
【キー入力】 を読み取って、【位置情報】 や 【ブロックの回転】 を 変化させています。
Invalidate();
//Onpaint の呼び出し
}
//↓ これを別クラスのMain関数から呼び出して実行しています。
public void Zentai()
{
Application.Run(new Byouga());
}
}