收藏
回答

小游戏,在canvas上判断点击的哪个对象,只能用像素判断吗?

刚开始做小游戏,基于官方小游戏生成的demo做的,问下在canvas上判断点击的是哪个对象,只能基于像素计算吗?整个页面很多图片对象,每个图片对象绑定的事件不同,这样判断很麻烦。

我这种情况是不是应该采用页面小程序的开发模式,而不是小游戏画布方式实现?

回答关注问题邀请回答
收藏

1 个回答

  • 小游戏运营专员 - 宏
    小游戏运营专员 - 宏
    2019-08-27

    可不可以通过触摸事件的x和y坐标来判断?当触摸的xy坐标在一个对象的坐标内时即可判断为点击的是该对象。可参考官方飞机游戏的示例代码:

    /**

      * 当手指触摸屏幕的时候

      * 判断手指是否在飞机上

      * @param {Number} x: 手指的X轴坐标

      * @param {Number} y: 手指的Y轴坐标

      * @return {Boolean}: 用于标识手指是否在飞机上的布尔值

      */

    checkIsFingerOnAir(x, y) {

    const deviation = 30


    return !!(   x >= this.x - deviation

    && y >= this.y - deviation

    && x <= this.x + this.width + deviation

    && y <= this.y + this.height + deviation  )

    }



    2019-08-27
    有用
    回复 4
    • 韩先生
      韩先生
      2019-08-28
      谢谢!我讲的基于像素就是这个意思,因为主页上需要事件交互的图片比较多,用这种方式判断比较麻烦,有重叠图片的话,判断不了。用小程序页面开发方式,每个image元素可以单独绑定事件,貌似这样更容易些。
      2019-08-28
      回复
    • 小游戏运营专员 - 宏
      小游戏运营专员 - 宏
      2019-08-28回复韩先生

      可以试下哈

      2019-08-28
      回复
    • 空瓶子
      空瓶子
      2019-08-29回复韩先生
      如果你是开发单独的小游戏的话,选择小程序是没有对应类目的,所以即时你随便选择了一个类目,最终也是过审不了的,我之前有经历过这样的教训,所以建议只是开发小游戏应用的话,必须用微信小游戏环境开发,而不能选择微信小程序。
      2019-08-29
      回复
    • 人工智什么
      人工智什么
      2023-05-10回复空瓶子
      对,我也是想做可以响应鼠标点击的事件,很麻烦。是不是有框架可以把精灵自己封装起来,每个精灵响应自己的点击事件。有框架吗?不然写像素写到哪天
      2023-05-10
      回复
登录 后发表内容