zxCoder
V2EX  ›  问与答

继续请教 canvas 里按键控制方块移动的方案...

  •  
  •   zxCoder · Aug 7, 2021 · 611 views
    This topic created in 1745 days ago, the information mentioned may be changed or developed.

    需求是最简单的一个操作,就是方向键控制 canvas 里一个方块的移动,因为地图是有方格的,要求是每次移动一个方格。

    一开始我就是监听方向键 keydown,有按下就直接修改坐标,+-一个方格的大小,然后重新画

    这种方案的问题就是长按方向键会有问题,有一个滞后性,第一次触发 keydown 后得延迟一段时间后才会触发第二次,所以长按跑起来卡卡的

    解决这个问题,网上查的方案就是监听 keydown 和 keyup,基本能解决大部分问题,像这个 https://jsfiddle.net/5uLsax34/1/

    但是现在问题是我希望能按方格移动,每次移动一个方格的大小,但是现在这种写法不知道要怎么控制

    Supplement 1  ·  Aug 7, 2021

    解决了,在keyup事件里把坐标处理一下,比如Math.round(x/width)*x

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5524 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 01:54 · PVG 09:54 · LAX 18:54 · JFK 21:54
    ♥ Do have faith in what you're doing.