110
130

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

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

110
130
9

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
110
130

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?