11
Pythonistaで音ゲーを作る 2016/06/25 Python東海 @monochrojazz

Pythonistaで音ゲーを作る

Embed Size (px)

Citation preview

Page 1: Pythonistaで音ゲーを作る

Pythonistaで音ゲーを作る

2016/06/25 Python東海 @monochrojazz

Page 2: Pythonistaで音ゲーを作る

自己紹介

• @monochrojazz 社会人4年目

• しがない音ゲーマー

Android+mbed+マイコン+導電布で自作する程度の音ゲーマー

• セキュリティ分野に興味(最近picoCTFで遊んでいるがROP問題が解けなくて絶望)

Page 3: Pythonistaで音ゲーを作る

Pythonista

• iOS上で動くPython開発環境(有料)

• ちょっとしたアプリやゲームならiOS上でコードを書いて動かせる

• 通知やクリップボードなどを扱うPythonista専用モジュールなども

• Obj-CモジュールによりiOSのクラスを呼び出せる

コード置換・補完機能なども完備

Page 4: Pythonistaで音ゲーを作る

で?

ちょっとしたアプリやゲームならiOS上でコードを書いて動かせる

音ゲーが簡単に作れる!

iOSのミュージックライブラリから曲を呼び出せる!

Obj-CモジュールによりiOSのクラスを呼び出せる

Page 5: Pythonistaで音ゲーを作る

じゃあ、作ろう

Page 6: Pythonistaで音ゲーを作る

実演

Page 7: Pythonistaで音ゲーを作る

構成

Surface(windows 10)

Raspberry Pi

iPad

CIFSマウント

無線通信

譜面をここで作成エディタは過去に自作したものを利用

譜面の形式変換を行うFTPでiPadと通信

PythonistaのparamikoモジュールでRaspberryPiから譜面を保存曲データは主にiTunesから

Page 8: Pythonistaで音ゲーを作る

iOSへのデータ移送

やる気のないコード

Page 9: Pythonistaで音ゲーを作る

iOS上で曲呼び出し

MPMediaPropertyPredicateインスタンスを生成、値をセット

MPMediaQueryのメソッドにより曲を指定

MusicPlayerControllerのメソッドにより曲再生オブジェクト生成、

モードとフィルタを指定して再生

現在の再生時間なども取得可能

Page 10: Pythonistaで音ゲーを作る

ちょっと困っていること

Pythonista起動後の最初の曲再生は高確率で失敗する

曲再生時のオーバーヘッドが長く、譜面との同期上、音ゲーには致命的

(予め曲データをメモリにロードできればよいのだろうが・・・)

知恵・知見のある方ご指摘ありましたら

是非お願いします

PythonistaのConsoleで使えるメソッドが確認可能。が、それらしいものは見つからず

Page 11: Pythonistaで音ゲーを作る

ところで

最近Pythonista3が出た(Python3.5)

旧Pythonistaアプリとコードの共有が可能

Python2to3機能によりコードの変換も可能

iOSとの連携モジュールも色々追加されているっぽい?

デバッガ機能の追加

Pythonistaでお手軽Pythonライフを!