小程序
小游戏
企业微信
微信支付
扫描小程序码分享
刚开始做小游戏,基于官方小游戏生成的demo做的,问下在canvas上判断点击的是哪个对象,只能基于像素计算吗?整个页面很多图片对象,每个图片对象绑定的事件不同,这样判断很麻烦。
我这种情况是不是应该采用页面小程序的开发模式,而不是小游戏画布方式实现?
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
可不可以通过触摸事件的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 )
}
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
可以试下哈
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
可不可以通过触摸事件的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 )
}
可以试下哈