我正在使用Matter.js物理来创建柔体.我能够创建这样的身体:
但是我不确定这是否是我想要的"软体".确实,这个身体并不是完全僵硬的,并且当它碰撞并被拖拽时具有那种有弹性的感觉.我正在寻找一个与凝胶有相似之处的身体.此图像可能在视觉上有助于解释概念:
我想知道如何制作这些类型的尸体.它与as matter.js软体相同,但具有非常特殊的属性类型吗?我只能让身体变得僵硬,而不是像我希望的那样可塑造和圆形.
我也很有兴趣通过游戏中的相互作用操纵物理体,这会增加或减少物理体的大小,这使我再次得出结论,我想要的身体类型必须是相当可塑的.
may.js可以处理这个还是我必须更改物理引擎?任何接近这个的解决方案?
注意:我使用Phaser.js作为一些游戏中的组件,但是物理操作的物理问题是物理操作,因为我相信Phaser集成的物理学不能模拟这种类型的复杂体.
谢谢
编辑:它非常类似于这个Box2d:滚动软体球.我想我只需要使用js引擎.有没有?
我是Phaser的新手,我现在很难在相位器等距插件的帮助下生成一个tilemap.我也很难理解与Phaser世界,游戏和相机相关的一些概念,这些概念使得更正确地生成tilemap的一部分.我实际上已经注意到这个问题似乎是Phaser新手的障碍,就像我自己一样,正确解释它肯定有助于对抗这一点.
谈到此事:
我使用单个草精灵使用for循环生成了一个tilemap .for循环工作正常,我还实现了一个函数,我可以指定我想要生成的tile数.
{
spawnBasicTiles: function(half_tile_width, half_tile_height, size_x, size_y) {
var tile;
for(var xx = 0; xx < size_x; xx += half_tile_width) {
for(var yy = 0; yy < size_y; yy += half_tile_height) {
tile = game.add.isoSprite(xx, yy, 0, 'tile', 0, tiles_group);
tile.checkWorldBounds = true;
tile.outOfBoundsKill = true;
tile.anchor.set(0.5, 0);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,生成静态草砖的过程不是问题.问题,以及我试图让对象池正常工作的原因之一是当磁贴数量超过80时,这对游戏性能产生了巨大影响.由于我的目标是制作巨大的自动生成地图,这些地图根据玩家角色位置进行渲染,因此对象池是必不可少的.我已经为这些图块创建了一个组,并添加了我认为将不需要渲染的图块(物理,世界边界......)所需的属性.然而,经过多次尝试,我得出结论,即使是超出界限的瓷砖仍然会产生.我还使用了另一个属性而不是add.isoSprite来生成tile,这是.create但没有区别.我想没有瓷砖被"杀死".
除此之外,我希望在世界中间生成我的角色,这是生成的草地图的中间.但是,我也很难做到这一点.我认为,为了实现这一目标,我应该使用以下概念,尽管不能:
总结: 使用以下用于生成切片的循环方法,如何在跟随我的角色的相机移动到另一个区域时生成无限/几乎无限的地图?除此之外,在我生成的草地图中间始终生成角色的正确方法是什么,以及相机从角色的起点开始?
我将非常感谢他们的帮助,并希望这对于处于类似情况的人来说可能是有价值的.对于任何额外的信息,只需询问,如果您想要按特定数字生成图块的功能,我很乐意发布.对不起任何语言错误.
非常感谢你.
编辑:
通过将X和Y设置为(大小/宽度)和(大小/高度),我能够始终在草中间生成我的角色.大小是px中X和Y的度量.
新手在这里.我正在使用phaser,特别是等距插件.
我想知道在处理实时多重连接方面是否有可能使用类似于agar.io的移相器创建游戏,生成一个包含大约300名玩家的巨大地图,所有这一切都没有在游戏中产生太大影响性能.我真的不知道如何处理多人游戏部分(可能是套接字,node.js),因为它可以很好地工作.至于生成一张非常大的地图,我也很空白.
在我的主页面中,我有一个简单的表格.我已经做到了这一点,当用户点击"提交"按钮时,我将表单数据发送到服务器端,并且在提交后我也使用Jquery删除表单.但是,我希望有一种方法可以让我在删除表单后单击一个按钮时,它会再次显示与删除之前完全相同的内容.
当我单击表单提交按钮时,我不希望表单不可见; 我希望从页面中删除表单.我每次删除它时都必须创建一个新表单,与删除它一样,还是有办法在单击"恢复"按钮时将其恢复?
以防万一,我使用JADE渲染其他东西......我不确定是否需要它.对不起任何错误,我是编程新手.如果需要,我可以提供更多信息.
我试图在单击时更改span元素的属性,例如边框和背景颜色.我还想将元素属性重置为它们曾经是什么,再次单击它.但是我无法正确地做到这一点.我接受任何类型的解决方案,包括Jquery.实际上我的代码目前是Jquery:
$('.clickable_span').click(function() {
if($(this).attr('border') == undefined || $(this).attr('border') == false) {
$(this).css('background', 'white');
$(this).css('border', '1px solid black');
}
else if($(this).attr('border') == true) {
$(this).css('background', 'dimgrey');
$(this).css('border', 'none');
}
});
Run Code Online (Sandbox Code Playgroud)
它不断进入第一个if语句(我console.logged),因此它改变了元素的方面,但没有将其重置回原始状态.代码有什么问题?为什么在将该属性赋予元素之后,$(this).attr('border')仍等于undefined?(差异是可见的).
javascript ×5
isometric ×2
jquery ×2
click ×1
forms ×1
game-physics ×1
html ×1
matterjs ×1
physics ×1