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
qianyue19921003
V2EX  ›  Python

Python 制作重力感应 2048,如何控制移动次数?

  •  1
     
  •   qianyue19921003 · 2014-09-25 13:52:18 +08:00 · 3174 次点击
    这是一个创建于 3712 天前的主题,其中的信息可能已经有所发展或是发生改变。
    RT。一般的重力感应游戏 都是持续获得加速,例如赛车游戏,将手机向右倾斜,相当于PC版本中按住右键。 如果我要开发2048游戏的重力版本,假设我手机一直向右倾斜,那么如何使得它不会连续向右2次或者2次以上。
    13 条回复    2014-09-26 10:41:05 +08:00
    qianyue19921003
        1
    qianyue19921003  
    OP
       2014-09-25 13:54:15 +08:00
    @kokdemo 我看到过你发的2048重力版但是 操作有些问题。有什么解决办法么
    kokdemo
        2
    kokdemo  
       2014-09-25 14:28:54 +08:00
    @qianyue19921003 连续的这个问题可以这么来搞:

    加一个时间间隔,每1s检测一次。
    kmcool
        3
    kmcool  
       2014-09-25 14:58:36 +08:00
    改成计算加速度的一阶导数好了
    qianyue19921003
        4
    qianyue19921003  
    OP
       2014-09-25 15:30:53 +08:00
    @kmcool 感觉用加速度可能会出现很多问题啊。
    qianyue19921003
        5
    qianyue19921003  
    OP
       2014-09-25 15:31:53 +08:00
    @kokdemo 可能用户体验可能差一点。 我也想不出其他办法实现。
    wisatbff
        6
    wisatbff  
       2014-09-25 15:35:42 +08:00
    2048一次操作不就触底了么,两次结果一样阿
    kokdemo
        7
    kokdemo  
       2014-09-25 15:36:09 +08:00
    @kmcool 计算加速度的效果更差的……
    Daniel65536
        8
    Daniel65536  
       2014-09-25 15:49:06 +08:00
    一直向右倾斜只移动一次,必须回正手机之后才计算下一次移动。

    向右倾斜一下,回来,再倾斜一下,回来对应 向右移动一次,向右再移动一次。
    qianyue19921003
        9
    qianyue19921003  
    OP
       2014-09-25 15:53:18 +08:00
    @wisatbff 不一样的啊。新出现的2或者4的方块 也会移动过去。
    sammo
        10
    sammo  
       2014-09-25 21:35:23 +08:00 via Android
    开始时 水平粗略校准一次 作为复位,如果没有复位这个步骤则不算开始
    kmcool
        11
    kmcool  
       2014-09-26 07:35:29 +08:00
    @kokdemo 用的不是加速度 而是用加速度计求导出来的角速度 当然如果楼主直接用陀螺仪的值也行
    edire
        12
    edire  
       2014-09-26 09:37:31 +08:00 via Android
    不会用python,但是可以用js的思维回答一下。
    第一步,给一个变量布尔值,开始是true,代表可以运行。
    第二部,当右倾侧时候右滑方块,并且变量变成false,当变量变成false的时候,右滑的函数不能运行。
    第三部,当右滑后再次平衡手机的时候,变量再次变成true,代表右滑动可以继续使用了。
    这是我的想法。可能帮不上忙,轻喷。
    GhostFlying
        13
    GhostFlying  
       2014-09-26 10:41:05 +08:00 via Android
    同ls,相当于用软件实现个上升下降沿触发
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   927 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 21:30 · PVG 05:30 · LAX 13:30 · JFK 16:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.