We may earn an affiliate commission when you visit our partners.
速水 夢月

Pythonを学ぶなら楽しくコーディングすることが一番。ゲームのレベルとともにPython力も向上すること間違いなしです。

ゲームを作成するうちに、オブジェクト指向プログラミングも学ぶことができるコースです

<目的>

•Pygameによるゲーム作成を通して、Pythonプログラミングの基礎を学びます。

•特にオブジェクト指向的設計を具体的に学ぶことができます。(途中でリファクタリング(コード見直し)などもしていきます)

•実際にゲームを作りながら学ぶことに重点を置いています。

<ゴール>

•Pygameによるオリジナルのゲームが作成できるようになります。

•Python流のコーディングやオブジェクト指向、クラス設計方法などが身につきます。

Enroll now

What's inside

Learning objectives

  • Python言語およびオブジェクト指向プログラミングを身につけることができます
  • Pygameによるゲーム作成スタイルを学ぶことができます

Syllabus

はじめに

このコースの全体概要を説明します。

Pygameモジュールのインストール
【注意事項】macユーザの方へ
Read more
基本編

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つの方法について学びます。

様々なプログラムのリファクタリング方法について学びます。

ゲームの基本ができました。あとはステージが上がるにつれて、爆弾数を増やしたり、斜めに降ってきたり、スピードを上げたり、UFO数を増やしたりと、ゲームを難易度高くするのは、いろいろな方法があります。ぜひチャレンジしてみてください。

ここでPygameによるゲーム作成は修了です。さらにPythonおよびPygameの実力に磨きをかけるための、ゲーム拡張方法のアイデアについて説明しています。

Save this course

Save 【夢月流】Pythonでゲームを作りながらオブジェクト指向を学ぼう ~ PyGame 初級/中級 ~ to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in 【夢月流】Pythonでゲームを作りながらオブジェクト指向を学ぼう ~ PyGame 初級/中級 ~ with these activities:
Pythonの基本を復習する
コース開始前にPythonの基本的な構文、データ型、制御構造を復習することで、オブジェクト指向の概念やPygameの利用をスムーズに理解できるようになります。
Browse courses on Python
Show steps
  • Pythonの公式ドキュメントや入門書を読み直す
  • 簡単なPythonプログラムを書いて実行する
  • オンラインのPythonチュートリアルを試す
「Pythonゲームプログラミング」を読む
Pygameの基礎を学ぶために、ゲームプログラミングに関する書籍を読むことで、コースの内容をより深く理解し、実践的なスキルを身につけることができます。
Show steps
  • 書籍を購入または図書館で借りる
  • 書籍の目次を確認し、興味のある章から読み始める
  • 書籍に掲載されているサンプルコードを実際に試す
「ゲームを作りながら楽しく学べるPythonプログラミング」を読む
Pythonの基礎をゲーム開発を通して学ぶために、入門書を読むことで、コースの内容をより楽しく理解し、モチベーションを維持することができます。
Show steps
  • 書籍を購入または図書館で借りる
  • 書籍の目次を確認し、興味のあるゲームから作り始める
  • 書籍に掲載されているサンプルコードを参考に、自分なりのアレンジを加える
Four other activities
Expand to see all activities and additional details
Show all seven activities
オブジェクト指向プログラミングの練習問題を解く
オブジェクト指向の概念(クラス、オブジェクト、継承、ポリモーフィズム)に関する理解を深めるために、オンラインの練習問題やコーディングチャレンジに挑戦することで、実践的なスキルを向上させることができます。
Show steps
  • オブジェクト指向プログラミングに関するオンライン教材を探す
  • 簡単なクラスを定義し、オブジェクトを作成する練習をする
  • 継承やポリモーフィズムを利用したプログラムを作成する
簡単なPygameゲームを自作する
コースで学んだ知識を応用して、オリジナルの簡単なPygameゲームを開発することで、実践的なスキルを向上させ、理解を深めることができます。
Show steps
  • 簡単なゲームのアイデアを考える(例:シンプルなシューティングゲーム、パズルゲーム)
  • ゲームに必要な素材(画像、音楽)を準備する
  • Pygameを使ってゲームの基本的な機能を実装する
  • ゲームをテストし、バグを修正する
Pygameの学習内容をブログにまとめる
コースで学んだPygameの知識やテクニックをブログ記事としてまとめることで、理解を深め、アウトプットの練習になります。他の学習者と知識を共有することもできます。
Show steps
  • ブログプラットフォーム(例:はてなブログ、note)を選ぶ
  • Pygameの学習内容に関するテーマを決める(例:スプライトの使い方、衝突判定のテクニック)
  • 記事を執筆し、サンプルコードや画像を挿入する
  • 記事を公開し、他の学習者からのフィードバックを求める
Pygameのオープンソースプロジェクトに貢献する
Pygameのオープンソースプロジェクトに貢献することで、実践的なコーディングスキルを向上させ、他の開発者とのコラボレーションを経験することができます。
Show steps
  • PygameのGitHubリポジトリを探す
  • プロジェクトのIssueを調べ、貢献できるタスクを見つける
  • コードを修正し、Pull Requestを送信する
  • 他の開発者からのレビューを受け、修正を行う

Career center

Learners who complete 【夢月流】Pythonでゲームを作りながらオブジェクト指向を学ぼう ~ PyGame 初級/中級 ~ will develop knowledge and skills that may be useful to these careers:
ゲームプログラマー
ゲームプログラマーは、コースで学んだスキルを直接活かせる仕事です。この仕事では、Pygameなどのライブラリを使ってゲームのロジックやインタラクションを実装し、プレイヤーが楽しめるゲーム体験を作り上げます。本コースでは、Pygameを使ったゲーム開発の基礎を習得できるため、ゲームプログラマーとしてのキャリアをスタートさせる上で役立ちます。特に、オブジェクト指向プログラミングの概念やクラス設計、リファクタリングの実践を通して、より効率的で保守性の高いコードを書く能力を養うことができる点は、プロのゲームプログラマーにとって非常に重要なスキルです。さらに、このコースでは実際にゲームを作りながら学ぶため、実践的なスキルが身につき、即戦力として活躍するための自信にもつながります。
ソフトウェアエンジニア
ソフトウェアエンジニアは、多岐にわたるソフトウェア開発プロジェクトに携わります。本コースで学ぶPythonの知識とオブジェクト指向プログラミングのスキルは、ゲーム開発に限らず、Webアプリケーションやデスクトップアプリケーションの開発にも応用できます。このコースでは、Pygameを使ったゲーム開発を通して、プログラミングの基礎だけでなく、オブジェクト指向設計やリファクタリングなどの高度なスキルも習得可能です。これらのスキルは、ソフトウェアエンジニアとして高品質なコードを効率的に開発するために不可欠です。特に、クラス設計やコード見直し(リファクタリング)の経験は、大規模なソフトウェアプロジェクトで力を発揮する上で非常に役立ちます。
バックエンドエンジニア
バックエンドエンジニアは、ウェブアプリケーションやシステムの裏側を支えるサーバーサイドの開発を担当します。本コースで学ぶPythonの知識とオブジェクト指向プログラミングのスキルは、バックエンド開発において非常に役立ちます。このコースでは、Pygameを使ったゲーム開発を通して、プログラミングの基礎だけでなく、データベースとの連携やAPIの開発など、バックエンドエンジニアに必要なスキルを習得できます。特に、オブジェクト指向設計やリファクタリングの経験は、大規模なバックエンドシステムを効率的に開発し、保守するために不可欠です。本コースで得られる実践的なスキルは、バックエンドエンジニアとしてのキャリアを成功させるための強力な武器となるでしょう。
フルスタックエンジニア
フルスタックエンジニアは、フロントエンドからバックエンドまで、ウェブアプリケーション開発の全工程を担当します。本コースで学ぶPythonの知識とオブジェクト指向プログラミングのスキルは、バックエンド開発だけでなく、フロントエンドとの連携や、開発ツール、自動化スクリプトの作成にも役立ちます。このコースでは、Pygameを使ったゲーム開発を通して、プログラミングの基礎だけでなく、オブジェクト指向設計やリファクタリングなどの高度なスキルも習得可能です。これらのスキルは、フルスタックエンジニアとして、より柔軟かつ効率的に開発を進めるために不可欠です。特に、ゲーム開発で培うインタラクションの実装スキルは、ユーザーエクスペリエンスを向上させる上で役立ちます。
ゲームデザイナー
ゲームデザイナーは、ゲームのコンセプトやルール、ストーリー、キャラクターなどを設計し、ゲーム全体の体験を創造します。本コースで学ぶPythonとPygameの知識は、プロトタイプを迅速に作成し、アイデアを検証するのに役立ちます。本コースで学ぶPygameによるゲーム作成スタイルやオブジェクト指向設計は、複雑なゲームシステムを理解し、設計する上で役立ちます。ゲームデザイナーには、創造性だけでなく、技術的な知識も求められるため、本コースはゲームデザイナーとしてのキャリアを築く上で、非常に役立つでしょう。
テクニカルアーティスト
テクニカルアーティストは、アーティストとエンジニアの橋渡し役として、ゲーム開発における技術的な課題を解決します。例えば、シェーダーの作成、エフェクトの実装、パフォーマンスの最適化など、幅広い業務を担当します。本コースで学ぶPygameの知識は、テクニカルアーティストがスクリプトを作成したり、簡単なツールを開発したりする際に役立ちます。特に、オブジェクト指向プログラミングの知識や、ゲームのロジックを実装する経験は、ゲーム開発の現場で非常に役立ちます。テクニカルアーティストには、美術的なセンスだけでなく、プログラミングの知識も求められるため、本コースはテクニカルアーティストを目指す上で有益な一歩となるでしょう。
フロントエンドエンジニア
フロントエンドエンジニアは、ウェブサイトやアプリケーションのユーザーインターフェースを開発します。本コースで学ぶPythonの知識は、直接フロントエンド開発に使うことは少ないかもしれませんが、バックエンドとの連携や、開発ツール、自動化スクリプトの作成に役立ちます。このコースでは、オブジェクト指向プログラミングの概念やクラス設計、イベント処理などを学ぶため、フロントエンド開発に必要なプログラミングの基礎をしっかりと身につけることができます。特に、ゲーム開発で培うインタラクションの実装スキルは、ユーザーエクスペリエンスを向上させる上で役立ちます。本コースでの学びは、より高度なフロントエンドエンジニアを目指す上で土台となるでしょう。
クリエイティブコーダー
クリエイティブコーダーは、プログラミングを使ってインタラクティブなアート作品やビジュアルエフェクトを作成します。Pythonは、クリエイティブコーディングの分野で広く利用されており、ProcessingやopenFrameworksなどのフレームワークと連携して、美しいビジュアルやインタラクティブな体験を作り出すことができます。このコースでは、Pygameを使ったゲーム開発を通して、プログラミングの基礎だけでなく、グラフィックスやアニメーション、インタラクションなどのクリエイティブコーディングに必要なスキルを習得できます。特に、ゲーム開発で培うインタラクションの実装スキルは、観客を魅了するインタラクティブなアート作品を創造する上で役立ちます。本コースでの学びは、クリエイティブコーダーとしてのキャリアを始める上で大きなアドバンテージとなるでしょう。
VRエンジニア
VRエンジニアは、仮想現実(VR)コンテンツやアプリケーションを開発します。Pythonは、VR開発の分野でも利用されており、Unityなどのゲームエンジンと連携してVRコンテンツを作成することができます。このコースでは、Pygameを使ったゲーム開発を通して、プログラミングの基礎だけでなく、3DグラフィックスやインタラクションデザインなどのVRエンジニアに必要なスキルを習得できます。特に、ゲーム開発で培うインタラクションの実装スキルは、没入感の高いVR体験を作り出す上で役立ちます。このコースでの学びは、VRエンジニアとしてのキャリアを築く上で土台となるでしょう。
組み込みエンジニア
組み込みエンジニアは、家電製品や産業機器などに組み込まれるソフトウェアを開発します。Pythonは、組み込みシステム開発の分野でも利用されており、特にラズベリーパイなどの小型コンピュータを使った開発でよく用いられます。このコースでは、Pygameを使ったゲーム開発を通して、プログラミングの基礎だけでなく、ハードウェア制御やリアルタイム処理などの組み込みエンジニアに必要なスキルを習得できます。特に、イベント処理や衝突判定などのゲームロジックの実装経験は、組み込みシステムの開発にも応用できます。本コースで得られる実践的なスキルは、組み込みエンジニアとしてのキャリアを始める上で役立つでしょう。
AIエンジニア
AIエンジニアは、人工知能(AI)技術を開発・実装し、様々な分野の課題解決に貢献します。Pythonは、AI開発の分野で最も広く利用されているプログラミング言語の一つであり、AIエンジニアにとって必須のスキルです。本コースでは、Pygameを使ったゲーム開発を通して、プログラミングの基礎だけでなく、機械学習や深層学習などのAI技術に必要な数学的知識やプログラミングスキルを習得できます。特に、ゲームAIの開発経験は、AIエンジニアとしてのキャリアをスタートさせる上で大きなアドバンテージとなります。このコースで得られる実践的なスキルは、AIエンジニアとしてのキャリアを成功させるための強力な武器となるでしょう。
ロボットエンジニア
ロボットエンジニアは、ロボットの設計・開発・制御を行います。Pythonは、ロボット制御の分野でも利用されており、ROS(Robot Operating System)などのフレームワークを使ってロボットを制御することができます。本コースでは、Pygameを使ったゲーム開発を通して、プログラミングの基礎だけでなく、ハードウェア制御やリアルタイム処理などのロボットエンジニアに必要なスキルを習得できます。特に、イベント処理や衝突判定などのゲームロジックの実装経験は、ロボットの制御にも応用できます。本コースで得られる実践的なスキルは、ロボットエンジニアとしてのキャリアを始める上で役立ちます。
データサイエンティスト
データサイエンティストは、大量のデータから有益な情報を抽出・分析し、ビジネス上の意思決定を支援します。Pythonは、データ分析や機械学習の分野で広く利用されており、データサイエンティストにとって必須のスキルです。このコースでは、Pygameを使ったゲーム開発を通して、プログラミングの基礎だけでなく、データ構造やアルゴリズムなどのデータサイエンスに必要なスキルを習得できます。特に、ゲームのスコア管理や統計処理などの実装経験は、データ分析の基礎としても役立ちます。本コースでの学びが、データサイエンティストとしてのキャリアを築く上で土台となるでしょう。
QAエンジニア
品質保証(QA)エンジニアは、ソフトウェア製品の品質を保証するために、テストの設計、実行、分析を行います。この仕事では、バグを見つけ出し、開発チームにフィードバックすることで、製品の品質向上に貢献します。本コースで学ぶPygameの知識は、QAエンジニアがゲームのテストを自動化するためのスクリプトを作成したり、バグの原因を特定したりする際に役立ちます。特に、ゲームのロジックやイベント処理の知識は、効果的なテストケースを作成するために重要です。QAエンジニアには、細かい点に気づく注意力や、論理的な思考力も求められるため、本コースでプログラミングの基礎を学ぶことは、QAエンジニアとしてのスキルアップにつながるでしょう。
ARエンジニア
拡張現実(AR)エンジニアは、現実世界にデジタル情報を重ね合わせるARアプリケーションを開発します。この仕事では、カメラやセンサーからの情報を処理し、現実世界と仮想世界をシームレスに融合させる技術が求められます。本コースで学ぶPygameの知識は、直接AR開発に使うことは少ないかもしれませんが、プログラミングの基礎やオブジェクト指向の考え方を理解する上で役立ちます。特に、ゲーム開発で培うインタラクションの実装スキルやイベント処理の知識は、ARアプリケーションのUI/UXデザインに活かすことができます。ARエンジニアには、高度な数学的知識や画像処理の知識も必要とされるため、本コースを足がかりに、さらに専門的な知識を深めていくと良いでしょう。

Reading list

We've selected one books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in 【夢月流】Pythonでゲームを作りながらオブジェクト指向を学ぼう ~ PyGame 初級/中級 ~.
この本は、Pygameを使ったゲーム開発の基礎を網羅的に解説しています。Pygameのインストールから、基本的なゲームの作成、応用的なテクニックまで、ステップバイステップで学ぶことができます。このコースで扱う内容の予習や復習に役立ち、より深く理解するために役立ちます。特に、ゲーム開発の経験がない方にとって、入門書として最適です。

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

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.

Affiliate disclosure

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.

© 2016 - 2025 OpenCourser