TeamFlos / phira

GNU General Public License v3.0
975 stars 99 forks source link

phira中flick的判定逻辑与phigros差异较大 #257

Open henryyuyhy opened 6 months ago

henryyuyhy commented 6 months ago

phira中的判定方式(推测):当手指滑动速度超过阈值时将手指范围内的flick算作已打击 phigros的判定方式(推测):当手指滑动速度发生较大变化时将手指范围内第一个flick算作已打击 手感上的差别就是phira上划很长的一下可以判定一堆红键,phigros中只能判定一个,有多个红键时需要来回滑动 希望作出改进

sjfhsjfh commented 6 months ago

关于这一点,据 @Mivik 称是不存在这样的问题的,即便在本家也可以单向滑动判定

YuevUwU commented 5 months ago

@Mivik 能否请教在本家实现单向多判具体的复现方式、录像、或片源呢?

虽说照现在Phira的热度应该不太可能改了,毕竟这会影响到无暇度的最高纪录,反正我们目前被认为是"受Phigros启发的游戏",有点专属特性还是挺正常的。 但我感觉这或许会让版主不甘心,还是要解决一下。

以下是支持判定方式有差异的证据:

  1. 萌娘百科所述:
    Flick:又称粉键/红键,需要在音符与判定线重合时在判定区域内向任意方向滑动。一根手指向一个方向滑动仅能判定一次。
  2. SIGMA愚人节谱面测试(高密度Flick),听起来好像每次只有1个flick触发,其中有个好像是手机卡顿而判定的?
  3. Protoflicker測試 (约5秒起为Phira测试画面,统计资料以逐帧观看,以下是测试数据)
    统计基准1234567891011VminVmaxVavg
    判定的前一帧Xv-0.160-0.306-0.362-0.183+0.593-0.988-1.752+3.9930.2810.677-0.0031.399.4074.398
    Yv-4.243-5.347-1.342-1.604-2.075-4.698-5.974-8.517-1.600-9.256-2.273
    V+4.246+5.356+1.39+1.614+2.158+4.801+6.226+9.407+1.624+9.281+2.273
    第二个Flick刚过判定线Xv-1.450+0.011-0.094-0.007-0.355+0.7060.162N/AN/AN/A-0.0540.0000.0002.194
    Yv-3.201+0.771-1.997-1.205-3.151-3.855-0.330-2.605
    V+3.514+0.771+1.999+1.205+3.171+3.919+0.368+2.606
LinrTheCat commented 4 months ago

phira中的判定方式(推测):当手指滑动速度超过阈值时将手指范围内的flick算作已打击 phigros的判定方式(推测):当手指滑动速度发生较大变化时将手指范围内第一个flick算作已打击 手感上的差别就是phira上划很长的一下可以判定一堆红键,phigros中只能判定一个,有多个红键时需要来回滑动 希望作出改进

猜测: 红键的判定逻辑本质上是对玩家触屏输入的速度向量进行取模,当模大于一定阈值时触发判定。其中Phigros本家的阈值较低,但每次触发只能判定一个粉键(这同时也解释了在红键上画圆导致判定失败的原因,因为圆周运动的速度不变);而Phira的阈值较高,但触发后可以判定任何红键,导致Phigros玩家接触Phira初期常常漏红键,并且在红键判定时容易误触。

sjfhsjfh commented 4 months ago

其实不是,判定还是有点小问题,但短期估计没空修