推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
Crossin
V2EX  ›  Python

100 行 Python 山寨了下上周比较火的那个呻吟游戏,坐等被喷

  •  
  •   Crossin · Mar 1, 2017 · 8169 views
    This topic created in 3545 days ago, the information mentioned may be changed or developed.

    就是前几天有个很火的岛国小游戏,对着话筒喊,里面小人就会走啊跳啊的《休むな!8 分音符ちゃん?》

    花了半天时间,用了大概一百行代码,用 cocos2d-python + pyaudio 改了下。

    然后昨天又就着自己的恶趣味,改得更魔性了一点。还加了个联机的排行榜。玩起来画风是这样的:

    https://v.qq.com/x/page/z0380ogn3e7.html

    游戏和代码都可以下载:

    游戏 win 版: http://git.oschina.net/crossin/learn-python/raw/master/voicegame/build/ppx-win.zip

    mac 版: http://git.oschina.net/crossin/learn-python/raw/master/voicegame/build/ppx-mac.zip

    windows 解压后运行 game.exe ,不要在有中文目录下,确保电脑有话筒。 mac 解压后右键打开,不然会提示不信任。

    源码: http://git.oschina.net/crossin/learn-python/tree/master/voicegame

    另外之前还是用 cocos2d-python 写过《贪吃蛇大作战》:

    https://v.qq.com/x/page/n0326alzz7n.html

    贪吃蛇源码: https://github.com/crossin/gluttonous

    31 replies  •  2017-03-02 12:31:01 +08:00
    est
    est
    Mar 1, 2017
    1
    66666 很不错~
    kevinroot
    kevinroot
    Mar 1, 2017
    2
    魔性~
    zzutmebwd
    zzutmebwd
    Mar 1, 2017
    3
    感觉这个游戏做成手机版很有前途
    Tink
    Tink
    Mar 1, 2017
    4
    666666666666666666
    kamen
    kamen
    Mar 1, 2017
    5
    魔性的游戏
    liyu001989
    liyu001989
    Mar 1, 2017
    6
    6666666
    xiahei
    xiahei
    Mar 1, 2017
    7
    来喊一把 66666666666
    Crossin
    Crossin
    OP
    Mar 1, 2017
    8
    @zzutmebwd 最初想法想做成 html5 版本,但尝试了下,发现对声音输入的支持太差了
    simple2025
    simple2025
    Mar 1, 2017
    9
    @zzutmebwd 已经有人做了。。
    newworld
    newworld
    Mar 1, 2017
    10
    支持 皮皮虾 你很皮 我给你说 不要皮 打死你!
    lxw0109
    lxw0109
    Mar 1, 2017
    11
    学习到了,赞一下!
    lxw0109
    lxw0109
    Mar 1, 2017
    12
    没有共产党, 哪里会有新中国!
    vuser
    vuser
    Mar 1, 2017
    13
    66666
    ragnaroks
    ragnaroks
    Mar 1, 2017
    14
    稳!
    orzfly
    orzfly
    Mar 1, 2017
    15
    2017-03-01 15:20:07.915 game[6291:3338306] 15:20:07.915 WARNING: 140: This application, or a library it uses, is using the deprecated Carbon Component Manager for hosting Audio Units. Support for this will be removed in a future release. Also, this makes the host incompatible with version 3 audio units. Please transition to the API's in AudioComponent.h.
    Traceback (most recent call last):
    File "/Users/crossin/Downloads/code/PURE_PYTHON/lib/python2.7/site-packages/cx_Freeze/initscripts/__startup__.py", line 12, in <module>
    File "/Users/crossin/Downloads/code/PURE_PYTHON/lib/python2.7/site-packages/cx_Freeze/initscripts/Console.py", line 24, in <module>
    File "game.py", line 137, in <module>
    File "/Users/crossin/Downloads/code/PURE_PYTHON/lib/python2.7/site-packages/cocos/director.py", line 406, in run
    File "/Users/crossin/Downloads/code/PURE_PYTHON/lib/python2.7/site-packages/pyglet/app/base.py", line 136, in run
    File "/Users/crossin/Downloads/code/PURE_PYTHON/lib/python2.7/site-packages/pyglet/app/base.py", line 165, in _run_estimated
    File "/Users/crossin/Downloads/code/PURE_PYTHON/lib/python2.7/site-packages/pyglet/app/base.py", line 274, in idle
    File "/Users/crossin/Downloads/code/PURE_PYTHON/lib/python2.7/site-packages/pyglet/clock.py", line 300, in call_scheduled_functions
    File "game.py", line 83, in update
    File "/Users/crossin/Downloads/code/PURE_PYTHON/lib/python2.7/site-packages/pyaudio.py", line 608, in read
    IOError: [Errno -9981] Input overflowed

    Mac 版运行后闪退,这个是终端里直接运行主程序得到的日志 :)
    Crossin
    Crossin
    OP
    Mar 1, 2017
    16
    @orzfly 每次都会吗?
    这个应该是音频输入没找到的问题,你是不是 mac-mini ?插上个耳机(或者拔掉)再试试看
    Crossin
    Crossin
    OP
    Mar 1, 2017
    17
    @chenqh 但讲真, high 一下还好,真的做成游戏,每天都对着喊可吃不消
    另外,肯定不是 ios 版吧,以现在国内游戏审批的尿性……
    orzfly
    orzfly
    Mar 1, 2017
    18
    @Crossin #16
    MacBook Air ……
    Crossin
    Crossin
    OP
    Mar 1, 2017
    19
    @orzfly 我大概猜到是什么问题……但不确定,因为我这里确实偶发过,很难重现。
    就是打开来如果读取时间长了一点,声音那里就会报错。我尝试改过,现在看来还是没改对。

    如果你是从源码运行的话,可以试下把
    self.NUM_SAMPLES = 1000 # pyAudio 内部缓存的块的大小
    这个值改得大一些,可能就好了
    byron
    byron
    Mar 1, 2017
    20
    Crossin 的作品啊,支持一下。
    orzfly
    orzfly
    Mar 1, 2017❤️1
    21
    https://jfraj.github.io/2015/06/17/recording_audio.html

    我这里在 44100 的采样率下, NUM_SAMPLES 改到 2048 后才解决问题,还有 84 行的
    k = max(struct.unpack('1000h', string_audio_data))
    也要做相应调整……
    Crossin
    Crossin
    OP
    Mar 1, 2017
    22
    @orzfly 感谢,我更新了。
    zhuxd282
    zhuxd282
    Mar 1, 2017
    23
    Crossin 老师好,我是你的粉丝:)
    Alex77Lee
    Alex77Lee
    Mar 1, 2017
    24
    不错
    iFlicker
    iFlicker
    Mar 1, 2017 via Android
    25
    我记得原版是看声调不是声音大小吧。。
    jsonzz
    jsonzz
    Mar 1, 2017
    26
    好像在虎扑看到了你的帖子,他强任他强
    Crossin
    Crossin
    OP
    Mar 1, 2017
    27
    @jsonzz 真是到哪里都能碰上 jr
    chaleaoch
    chaleaoch
    Mar 1, 2017
    28
    城会玩.
    fy
    fy
    Mar 1, 2017
    29
    66666666666666666 我服辣!

    @iFlicker 确实不是声音大小,貌似是声调一段时间内升高的幅度。
    tar
    tar
    Mar 2, 2017
    30
    @Crossin 来窝火吧
    Crossin
    Crossin
    OP
    Mar 2, 2017
    31
    @tar 好用吗?现在太多,都不知道哪个好
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1910 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 67ms · UTC 01:59 · PVG 09:59 · LAX 17:59 · JFK 20:59
    ♥ Do have faith in what you're doing.