Upload
monochrojazz
View
791
Download
1
Embed Size (px)
Citation preview
Pythonistaで音ゲーを作る
2016/06/25 Python東海 @monochrojazz
自己紹介
• @monochrojazz 社会人4年目
• しがない音ゲーマー
Android+mbed+マイコン+導電布で自作する程度の音ゲーマー
• セキュリティ分野に興味(最近picoCTFで遊んでいるがROP問題が解けなくて絶望)
Pythonista
• iOS上で動くPython開発環境(有料)
• ちょっとしたアプリやゲームならiOS上でコードを書いて動かせる
• 通知やクリップボードなどを扱うPythonista専用モジュールなども
• Obj-CモジュールによりiOSのクラスを呼び出せる
コード置換・補完機能なども完備
で?
ちょっとしたアプリやゲームならiOS上でコードを書いて動かせる
音ゲーが簡単に作れる!
iOSのミュージックライブラリから曲を呼び出せる!
Obj-CモジュールによりiOSのクラスを呼び出せる
じゃあ、作ろう
実演
構成
Surface(windows 10)
Raspberry Pi
iPad
CIFSマウント
無線通信
譜面をここで作成エディタは過去に自作したものを利用
譜面の形式変換を行うFTPでiPadと通信
PythonistaのparamikoモジュールでRaspberryPiから譜面を保存曲データは主にiTunesから
iOSへのデータ移送
やる気のないコード
iOS上で曲呼び出し
MPMediaPropertyPredicateインスタンスを生成、値をセット
MPMediaQueryのメソッドにより曲を指定
MusicPlayerControllerのメソッドにより曲再生オブジェクト生成、
モードとフィルタを指定して再生
現在の再生時間なども取得可能
ちょっと困っていること
Pythonista起動後の最初の曲再生は高確率で失敗する
曲再生時のオーバーヘッドが長く、譜面との同期上、音ゲーには致命的
(予め曲データをメモリにロードできればよいのだろうが・・・)
知恵・知見のある方ご指摘ありましたら
是非お願いします
PythonistaのConsoleで使えるメソッドが確認可能。が、それらしいものは見つからず
ところで
最近Pythonista3が出た(Python3.5)
旧Pythonistaアプリとコードの共有が可能
Python2to3機能によりコードの変換も可能
iOSとの連携モジュールも色々追加されているっぽい?
デバッガ機能の追加
Pythonistaでお手軽Pythonライフを!