V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
zxCoder
V2EX  ›  问与答

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

  •  
  •   zxCoder · Aug 7, 2021 · 594 views
    This topic created in 1737 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   ·   857 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:30 · PVG 04:30 · LAX 13:30 · JFK 16:30
    ♥ Do have faith in what you're doing.