Pythonを学ぶなら楽しくコーディングすることが一番。ゲームのレベルとともにPython力も向上すること間違いなしです。
ゲームを作成するうちに、オブジェクト指向プログラミングも学ぶことができるコースです
<目的>
•Pygameによるゲーム作成を通して、Pythonプログラミングの基礎を学びます。
•特にオブジェクト指向的設計を具体的に学ぶことができます。(途中でリファクタリング(コード見直し)などもしていきます)
•実際にゲームを作りながら学ぶことに重点を置いています。
<ゴール>
•Pygameによるオリジナルのゲームが作成できるようになります。
•Python流のコーディングやオブジェクト指向、クラス設計方法などが身につきます。
このコースの全体概要を説明します。
Pygameでゲームを作るときの基本的なコーディングスタイルを学びます。
まずは定番。Hello Worldをタイトルバーに表示してみます。
図形の描画方法を学びます。
図形の描画方法に関する補足説明です。
キーイベントの処理方法などを学びます。
壁への衝突判定の計算方法などを学びます。
このセクションで学んだ結果、どのようなゲームが完成するかを説明します。
ゲーム上のオブジェクトであるパドルとボールの作成方法を学びます。
マウスイベントの処理方法を学びます。
1単位時間あたりの、x方向、y方向への移動距離をもとにボールの位置を求めて、画面上、移動したように見せる方法を学びます。
ゲームのオブジェクトはクラス化できます。その方法について学びます。
パドルとボールはお互いに移動しています。これら2つが衝突したかどうかの判定方法について学びます。
マウスクリックイベントの処理方法について学びます。
ボールをパドルで受け損なったときは、どうプログラミングをすればよいか、その判定方法や、受け損なった場合に初期状態に戻す方法などについて学びます。
ボールがパドルに当たる位置によって、反射角度を変えます。その反射角度の求め方について学びます。
このセクションが修了したときの、アニメーションイメージについて確認します。
この講座で使っている背景画像はフリー素材集を利用しており、その入手方法について説明しています。
表示画面より大きいサイズの画像を表示する方法などについて学びます。
この講座で使っているキャラクタ画像はフリー素材集を利用しており、その入手方法について説明しています。
キャラクタ画像は複数の画像から構成されています。その画像から1画像を切り出して表示する方法について学びます。
カーソルを動かすと、キャラクタが左右に移動するのに伴い、背景の山の画像も動きます。その描画方法について学びます。
Pygameの要となるspriteを学習します。Spriteを使うと描画のためのコーディング量や衝突判定のためのコーディング量を大幅に削減でき、プログラマはゲームロジックに集中できるようになります。
Spriteについての補足です。
スペースキーを押すと、魔女からビームが発射されます。そのしくみ(キーイベント処理、ビームクラスの作成)を学びます。
ビームが魔女から発射されるときの音を付けてみましょう。音もフリー素材集から入手可能であり、その方法について説明しています。
キャラクタとしてUFOを登場させます。素材のダウンロード方法、クラスの作成方法、Spriteグループへの追加方法などを学びます。
さらにキャラクタとしてUFOが落とす爆弾を追加します。素材のダウンロード方法、クラスの作成方法、Spriteグループへの追加方法などを学びます。またきらきらと輝きながら落ちてくるアニメート方法なども学びます。
爆弾が地面にあたったときの爆発アニメーションを追加します。地面にあたったという判定処理方法、爆発アニメーションの作成方法などを学びます。
魔女が発して上昇するビームが、落ちてくる爆弾や移動しているUFOと衝突しているかの計算をどのように行うかを学びます。
衝突判定のしかたの補足です。
UFOが爆発したときに「-5」などの数字が数秒間表示されますが、その表示方法について学びます。
システムフォントの使い方を学びます。
フォントの使い方の補足です。
UFOのスコアが0となったときに大爆発させます。そのスコア0かどうかの判定タイミング(爆発処理を行うタイミング)について学びます。
スコアを数字ではなく「@@@」など数字以外で表現する方法について学びます。
これまでの機能追加により衝突判定処理がいろいろなところに出てきています。これを1箇所にまとめて見やすくしましょう。またクラスの中で行う衝突処理判定方法と、クラス外で行う衝突判定方法の違いについて学びます。
衝突判定処理の補足です。
ゲームには、初期状態、戦闘状態、ゲームオーバー状態、クリア状態などいくつかの画面状態があります。それらを「ゲームステータス」として管理することにより、ゲーム機能の改造がしやすくなることを学びます。
ゲームステータスに応じた個々の処理の追加方法について学びます。
スコアおよびハイスコアの管理方法について学びます。ゲームステータスが大きく関係してきます。
システムフォントはゲーム画面中に日本語表示ができません。そこでIPA日本語フォントのダウンロード方法および日本語の表示方法について学びます。
ここまでで作成したスコアクラスは画面の表示方法がメインになっており、スコア自体についての管理を行っていません。そこでスコアクラスのリファクタリングを行います。クラスのマルチ継承や、プロパティ(@propaty)などについて学びます。
実際にスコアクラスのリファクタリングをしていきます。
ここまでは、スコアとハイスコアは、2つで1つとしていましたが、これを切り離し、ハイスコアを1つの別クラスとします。また、スコアが現在のハイスコア値を超えた場合には自動的にハイスコア値に反映されるようにします。
ゲームの難易度を高める工夫の1つの方法について学びます。
様々なプログラムのリファクタリング方法について学びます。
ここでPygameによるゲーム作成は修了です。さらにPythonおよびPygameの実力に磨きをかけるための、ゲーム拡張方法のアイデアについて説明しています。
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.