基于p5.js的物理学模拟小游戏

这篇博客介绍了一个基于p5.js的物理学模拟小游戏,玩家可以操控粒子群,粒子受鼠标引力影响并避免碰撞。游戏中会出现吸引子,对粒子产生引力,全部粒子被吸入则游戏结束。内容涵盖粒子群、吸引子的实现细节及额外效果。
摘要由CSDN通过智能技术生成

一、效果

在这里插入图片描述
//游戏效果动图

该游戏模拟了自治智能体的群体运动和物体间的引力。玩家可通过鼠标操控小球群运动,鼠标移动越快,球体之间的距离越大,反之粒子会趋向于聚集到一起。游戏过程中会随机出现大小位置不同的吸引子,对群体粒子产生引力,小球一旦被吸引子吸入则消失。游戏通过操控群体粒子到达目标点来计分,所有粒子被吸引子吸入则游戏结束。

二、实现

1、粒子群的实现

单个粒子

在这里插入图片描述
小球会跟着鼠标的移动转换运动方向,当小球离鼠标距离很近时,小球受到鼠标位置的影响会变小。小球下一帧速度的方向是由小球当前速度方向的向量与小球位置与鼠标位置之间的向量相减产生的,为了防止小球移动的速度过大,设定了一个maxspeed,限制了小球运动的最大速度,另外minspeed规定了小球与鼠标距离很近时的速度大小。
代码如下:

this.move=function()//移动位置计算   
{
              
  this.targetchange();
  op=this.valocity.sub(target);      
  op=op.normalize();
    if(target.mag()<50)
      op=op.mult(this.minspeed);
  else
      op=op.</
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值