javascript - 在 Phaser 中检测精灵和位图之间的碰撞
问题描述
如何检测位图创建的精灵和形状之间的碰撞?
例如,我有精灵:
this.player = this.add.sprite(0, 0, 'player')
this.player.anchor.setTo(0.5)
this.player.scale.setTo(0.1)
和位图:</p>
this.bmd = this.game.add.bitmapData(2000, 2000)
this.bmd.addToWorld()
然后我使用 bmd 对象绘制形状:
this.bmd.rect(px, py + 15, 5, 500, 'rgba(255, 255, 255, 1)')
然后我调用这个方法:
this.bmd.update()
它看起来或多或少像 图像。黄色球是我的精灵。白色曲线是我从位图数据创建的形状。我想检测黄色物体和白线之间的碰撞。
解决方案
我解决了 - 这些例子非常有帮助http://jsfiddle.net/4yh8ee1f/46/和https://phaser.io/examples/v2/sprites/sprite-from-bitmapdata
var bmd = game.add.bitmapData(128,128);
bmd.ctx.beginPath();
bmd.ctx.rect(0,0,128,128);
bmd.ctx.fillStyle = '#ff0000';
bmd.ctx.fill();
var sprite = game.add.sprite(200, 200, bmd);
当我有 2 个精灵(播放器和位图)时,碰撞检测非常简单。
推荐阅读
- reactjs - 在 Enzyme 中安装时通过 HOC 获取道具
- matlab - 线的颜色和宽度根据矩阵的值
- flutter - Flutter 有状态小部件
- python - 如何解决django app deploy without port number时目标脚本无法加载为python模块的错误
- angular6 - ngrx 和导出成员错误 [没有导出成员]
- shell - 使用 SSHJ 实现跳转主机
- postgresql - 如何在触发函数中使用json字符串元素而不将其声明为变量
- python-3.x - os.system(cmd) 调用因重定向运算符而失败
- ajax - 为什么在使用 ajax 时需要更改 url
- pyqt5 - 更改 QLabel 的形状