TOC

This article has been localized into Japanese by the community.

ゲームを作る: スネークWPF:
Chapter introduction:

In this article series, we're building a complete Snake game from scratch. It makes sense to start with the Introduction and then work your way through the articles one by one, to get the full understanding.

If you want to get the complete source code for the game at once, to get started modifying and learning from it right now, consider downloading all our samples!

イントロダクション

この導入記事のクイックサマリ:WPF でクラシックゲームのスネークを実装してみましょう。最終的に下のようなアプリを作ります。

ゲームを作ることは、皆さん、特に若い方が勉強するにはもってこいです。始めるにあたってまず疑問になるのは、どのように始めて、何が必要となるか、ということでしょう。まずは、C# や C++ や他の人気の言語のような言語が必要でしょう。すでに何らかの好きな言語をお持ちなら、他には何も要らないでしょう。単にスクリーン上にピクセルを追加してボタンから始めれば、ゲームを動作させることができるでしょう。

ですが、たいていの方はもう少しローレベルなところを知りたいでしょう。ライブラリやフレームワークが何かしてくれるのだけれども、なぜスクリーン上にピクセルを追加するだけで、面白いゲームを作ることに集中できるのか。巷には様々なフレームワークがあって、あたなの手助けをしてくれますが、その一つがWPF frameworkなのです。

確かに、ゲームを作るにあたってWPFが最有力ではないでしょう。実際、WPF はビジネスアプリのユーザインタフェースを作ることにフォーカスしているフレームワークです。ですが、WPF framework にはゲームを作るときに使う沢山の部品が含まれており、それらの部品はいずれのアプリでも重要なものです。WPF のメカニズムを使って、Windows上でWindowの描画や制御をすることができます。

単純なゲームを作りたいのであれば、WPF はよい選択になると思います。少なくとも、Windowを作成したり、ゲームのための単純な描画など、基本的な部分でとても役に立つでしょう。高度な3Dグラフィックスや高速で動く物体などを追加したい場合、他のライブラリやフレームワークを使う方がよいかも知れません。でも、単純なゲームならば WPF で丁度良いです。単純なゲーム:スネークゲーム(英語版)です!

スネーク WPF

前記を証明するために、とても古くからあるスネークゲームの WPF 版を作ることにします。ゲームの表示に通常の WPF Window を使い、ゲーム動作のために WPF controls/shapesを使う予定です。スネークゲームを選んだのは、実装が単純(大したロジックが不要)であるのと、四角や円などの単純な幾何学図形を使って実装できるからです。それらは、WPF frameworkではとても簡単に扱えます。それに加えて、とても単純なゲームでありながら面白いからでもあります!

スネークゲームをご存知ないとしたら、90年代から00年代初期のNokiaの携帯電話を使ったことがないのですね。スネークゲームの初期版はそれよりもずっと前からありましたが、Nokiaがすべての携帯電話にNokia版スネークゲームを入れたので一気に有名になりました。

ゲームはシンプルなほど面白い:画面上のヘビを一方向(上下左右のいずれか)に動かして、食べ物(時々リンゴ)をゲットします。ヘビがリンゴにぶつかると、それを食べてヘビは成長し、次のリンゴが画面のどこかに出てきます。ヘビが壁や、自身の胴体にぶつかるとゲームオーバーとなり、最初からやり直しになります。リンゴを食べ続けるとスコアが上がっていきますが、だんだん延びてくる胴体を避けなければならず、難易度も上がっていきます。

このゲームにはたくさんのバリエーションがあって、例えば、リンゴを食べるごとにヘビの移動速度が上がってどんどん難しくなったり、他の例では、壁が実は逆側に繋がっていて、壁にぶつかってゲームオーバー、のルールが除かれていることもあります。

今回作るスネークWPFは、壁は固く(=ぶつかったらゲームオーバー)、リンゴを食べる度に移動速度が指数関数的に増加する(ただし速度の上限まで)、ということにしましょう。

サマリー

この後、WPF frameworkを使って、古典的なスネークゲームの一つの実装をしていきましょう。次の章では、背景から始めす。そして最後には、初めての、完全に動作する WPF 版のゲームを手に入れましょう。

これは、WPF のチュートリアルですが、ゲームロジックを実装するために通常よりもC#のコードが出てきます。その都度、説明をしようと思いますが、より詳細を知りたいときは、complete C# tutorialもご用意していますので参考にしてください。


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!