Help us understand the problem. What is going on with this article?

Python3とiPhoneで簡単なゲームを作ってみる

More than 3 years have passed since last update.

PythonistaというiOSアプリをご存知でしょうか?

Pythonistaとは?

PythonistaはiPhone/iPadで動くPython環境で、以下の機能を備えています。

  • Python2.7, Python3.5
  • IDEによるコード補間、エラー箇所の表示
  • デバッガ搭載、エラー時のスタックトレース、変数値を見ることができる
  • スタイルチェッカー、pyflakeなどのLinterを標準搭載
  • Python標準ライブラリに加え、2Dゲーム開発、UI、GPS、テキストスピーチ、Objective CのAPI呼び出し等のPythonistaモジュールを同梱している
  • また、Flask, numpy, Pandas等の有名なオープンソースライブラリも同梱している
  • ゲームプログラミングに必要なテクスチャやサウンドデータを使うことができる
  • ある方法を使えば、UNIXコマンド、git、pipも使うことができる

という、Pythonista(Pythonプログラマ)にとっては電車の中でもトイレでもどこでもコーディングできる素晴らしい環境と言えます。

今回は、PythonistaとiPhoneのソフトウェアキーボードだけで簡単なゲームを作ってみました。

作ったゲーム

Flappy bird風の横スクロールアクションゲーム

作成時間:電車の中で5時間程

FlappyAlien.gif

ソースコード:https://github.com/yukinarit/flappy_alien/blob/master/flappy_alien.py
(Pythonistaにコピペするだけで動作します)

環境構築

AppStoreからPythonistaと検索してインストールしましょう。

必須ではありませんが、筆者はStaShを使って、iPhone上にシェル環境とgitを使えるようにしてコーディングしました。StaShのインストールはこのページ(http://qiita.com/kido-akira/items/8fbe7783245e3b7d3bac) が参考になりそうです。

asset.png
StaShのgitを使ってtypoを修正してgithubにプッシュしている様子

コードの解説

Pythonistaモジュールのscene, ui, soundパッケージを使って作りました。

  • sceneパッケージ
    • Scene ... ゲームの画面。敵の生成、衝突判定、UI操作はここに実装しました。
    • SpriteNode ... エイリアン、ブロック、背景画像を描画する
    • LabelNodeクラス ... 文字描画に使用した
    • Action ... エイリアンの落下、ブロック、背景画像の左スクロール
  • uiパッケージ
    • デバッグ情報を描画するのに使用
  • soundパッケージ
    • タップしたときにSEを鳴らすの使用

サウンド、画像リソースはPythonistaに予め入っているものを使いました。

asset-1.png

終わりに

このようにPythonistaを使うと簡単にゲームを作ることができます。個人的には子供へのプログラミング教材として大きな可能性を感じています。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした