100 行 Python 山寨了下上周比较火的那个呻吟游戏,坐等被喷 - V2EX
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 7214 次点击
    这是一个创建于 3198 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是前几天有个很火的岛国小游戏,对着话筒喊,里面小人就会走啊跳啊的《休むな!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  
    PRO
       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 版本,但尝试了下,发现对声音输入的支持太差了
    simple2025
        9
    simple2025  
       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     Solana     977 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 22:37 PVG 06:37 LAX 14:37 JFK 17:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86