V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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 · 2017-03-01 14:30:38 +08:00 · 6586 次点击
    这是一个创建于 2860 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是前几天有个很火的岛国小游戏,对着话筒喊,里面小人就会走啊跳啊的《休むな!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 条回复    2017-03-02 12:31:01 +08:00
    est
        1
    est  
       2017-03-01 14:36:15 +08:00
    66666 很不错~
    kevinroot
        2
    kevinroot  
       2017-03-01 14:36:48 +08:00
    魔性~
    zzutmebwd
        3
    zzutmebwd  
       2017-03-01 14:40:44 +08:00
    感觉这个游戏做成手机版很有前途
    Tink
        4
    Tink  
       2017-03-01 14:41:40 +08:00
    666666666666666666
    kamen
        5
    kamen  
       2017-03-01 14:43:41 +08:00
    魔性的游戏
    liyu001989
        6
    liyu001989  
       2017-03-01 14:48:34 +08:00
    6666666
    xiahei
        7
    xiahei  
       2017-03-01 14:49:12 +08:00
    来喊一把 66666666666
    Crossin
        8
    Crossin  
    OP
       2017-03-01 14:52:19 +08:00
    @zzutmebwd 最初想法想做成 html5 版本,但尝试了下,发现对声音输入的支持太差了
    chenqh
        9
    chenqh  
       2017-03-01 14:56:05 +08:00
    @zzutmebwd 已经有人做了。。
    newworld
        10
    newworld  
       2017-03-01 14:58:50 +08:00
    支持 皮皮虾 你很皮 我给你说 不要皮 打死你!
    lxw0109
        11
    lxw0109  
       2017-03-01 15:00:05 +08:00
    学习到了,赞一下!
    lxw0109
        12
    lxw0109  
       2017-03-01 15:00:44 +08:00
    没有共产党, 哪里会有新中国!
    vuser
        13
    vuser  
       2017-03-01 15:09:47 +08:00
    66666
    ragnaroks
        14
    ragnaroks  
       2017-03-01 15:18:18 +08:00
    稳!
    orzfly
        15
    orzfly  
       2017-03-01 15:20:45 +08:00
    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
        16
    Crossin  
    OP
       2017-03-01 15:28:34 +08:00
    @orzfly 每次都会吗?
    这个应该是音频输入没找到的问题,你是不是 mac-mini ?插上个耳机(或者拔掉)再试试看
    Crossin
        17
    Crossin  
    OP
       2017-03-01 15:30:49 +08:00
    @chenqh 但讲真, high 一下还好,真的做成游戏,每天都对着喊可吃不消
    另外,肯定不是 ios 版吧,以现在国内游戏审批的尿性……
    orzfly
        18
    orzfly  
       2017-03-01 15:39:09 +08:00
    @Crossin #16
    MacBook Air ……
    Crossin
        19
    Crossin  
    OP
       2017-03-01 16:04:04 +08:00
    @orzfly 我大概猜到是什么问题……但不确定,因为我这里确实偶发过,很难重现。
    就是打开来如果读取时间长了一点,声音那里就会报错。我尝试改过,现在看来还是没改对。

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

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

    @iFlicker 确实不是声音大小,貌似是声调一段时间内升高的幅度。
    tar
        30
    tar  
       2017-03-02 10:09:02 +08:00
    @Crossin 来窝火吧
    Crossin
        31
    Crossin  
    OP
       2017-03-02 12:31:01 +08:00
    @tar 好用吗?现在太多,都不知道哪个好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3400 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 04:55 · PVG 12:55 · LAX 20:55 · JFK 23:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.