V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zxCoder
V2EX  ›  问与答

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

  •  
  •   zxCoder · 2021 年 8 月 7 日 · 548 次点击
    这是一个创建于 1714 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    第 1 条附言  ·  2021 年 8 月 7 日

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

    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5434 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 120ms · UTC 08:30 · PVG 16:30 · LAX 01:30 · JFK 04:30
    ♥ Do have faith in what you're doing.