我正在使用Matter.js物理来创建柔体.我能够创建这样的身体:
但是我不确定这是否是我想要的"软体".确实,这个身体并不是完全僵硬的,并且当它碰撞并被拖拽时具有那种有弹性的感觉.我正在寻找一个与凝胶有相似之处的身体.此图像可能在视觉上有助于解释概念:
我想知道如何制作这些类型的尸体.它与as matter.js软体相同,但具有非常特殊的属性类型吗?我只能让身体变得僵硬,而不是像我希望的那样可塑造和圆形.
我也很有兴趣通过游戏中的相互作用操纵物理体,这会增加或减少物理体的大小,这使我再次得出结论,我想要的身体类型必须是相当可塑的.
may.js可以处理这个还是我必须更改物理引擎?任何接近这个的解决方案?
注意:我使用Phaser.js作为一些游戏中的组件,但是物理操作的物理问题是物理操作,因为我相信Phaser集成的物理学不能模拟这种类型的复杂体.
谢谢
编辑:它非常类似于这个Box2d:滚动软体球.我想我只需要使用js引擎.有没有?
我正在尝试覆盖设置为的默认画布大小: 800x600
经过一些挖掘文档,我发现:
Matter.Render.create([options])
Run Code Online (Sandbox Code Playgroud)
看起来很有趣的选项是:render.options.height和render.options.width.
我该如何正确使用它们?
我尝试过的:
(function(){
//this is the correct reference
var canvas = document.getElementById('canvas');
var renderer = Matter.Render.create({
canvas: canvas,
height: 1000,
width: 1000
});
})()
Run Code Online (Sandbox Code Playgroud)
警告我得到:
[问题]警告:没有传递"render.element","render.canvas"没有插入到文档中.
根据文档:
render.element HTMLElement
对要插入画布的元素的引用(如果尚未指定render.canvas)
正如标题中已经提到的,我正在寻找一种方法,以禁用Matter.js中身体的每次碰撞.它仍然可以与Constraints链接,并且应该有可能在一段时间后再次启用碰撞.有没有办法做到这一点?关于它的难点在于,对象不应该与任何其他对象碰撞,但所有其他对象应该相互碰撞.
我正在使用matter.js进行物理模拟.
我的问题是,是否可以改变精灵大小?或者仅使用matter.js是不可能的?
这是我到目前为止:
Bodies.circle(x, y, 46, {
render: {
sprite: {
texture: 'images/stone.png'
//Is there a 'width:' or 'height' property?
}
}
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试检测两个对象何时相互碰撞,但是我不确定该怎么做。
我有以下场景,该场景向场景中添加了两个物理图像。我只需要一种方法来检测两者何时发生碰撞。
export class MainGame extends Scene {
public create() {
// Create the player
this.player = this.matter.add.image(300, 100, 'player')
// Create a pillar
let pillar = this.matter.add.image(500, 0, 'pillar1', null, { isStatic: true })
// Somehow detect collision between the two...
}
}
Run Code Online (Sandbox Code Playgroud)
我无法确定的是如何检测玩家何时撞到支柱。我所寻找的一切都是如何使用街机物理学来实现的,但是我正在使用物质物理学。
我找不到有关如何检测碰撞然后运行函数的任何信息。