当前位置: 首页> 财经> 股票 > 移动宽带怎么网上续费_最挣钱没人干的生意_官网seo优化找哪家做_长沙seo网站优化

移动宽带怎么网上续费_最挣钱没人干的生意_官网seo优化找哪家做_长沙seo网站优化

时间:2025/8/28 1:45:14来源:https://blog.csdn.net/qq_41094072/article/details/147198952 浏览次数:0次
移动宽带怎么网上续费_最挣钱没人干的生意_官网seo优化找哪家做_长沙seo网站优化

BEPUphysics v1 入门指南

  • 前言
  • 下载获取库工程
  • 1.创建物理模拟环境
  • 2.添加物理实体
  • 3.与物理系统交互
  • 4.发射物体
  • 5.构建环境
  • 6.事件处理
  • 7. 进阶学习


前言

本文档记录完成 BEPUphysics 物理引擎的基础设置。
文档链接:https://github.com/bepu/bepuphysics1/blob/master/Documentation/Documentation.md

下载获取库工程

github链接:https://github.com/bepu/bepuphysics1/blob/maste

更多示例参考 BEPUphysicsDemos!

1.创建物理模拟环境

基础设置,在开始模拟前,需要创建 Space 类实例作为物理世界容器:

space = new Space();

在游戏的 Update 方法中添加时间推进逻辑:

space.Update();

完整代码

        public void Init(){DLogger.Log("==============>Init world physics system!");//关掉物理系统Physics.autoSyncTransforms = false;  //射线检测关闭Physics.autoSimulation = false;//创建物理世界,设置重力加速度bEpUPhysicsSpace = new BEPUphysicsSpace{ForceUpdater ={Gravity = new FPVector3(0, -9.81m, 0)},TimeStepSettings ={TimeStepDuration = Time.fixedDeltaTime}};  }public void FixedTick(){if (bEpUPhysicsSpace != null){bEpUPhysicsSpace.Update(Time.fixedDeltaTime); }}

2.添加物理实体

Entity 类代表物理世界中的物体,支持多种形状:

盒子 (Box)
圆柱 (Cylinder)
球体 (Sphere)
胶囊体 (Capsule) 等

实体分为两类:
动态实体:受物理力影响(质量参数)
运动学实体:不受力影响(无质量参数)

创建地面(运动学盒子):

Box ground = new Box(Vector3.Zero, 30, 1, 30);
space.Add(ground);

添加动态立方体:

space.Add(new Box(new Vector3(0, 4, 0), 1, 1, 1, 1)); // 最后一个参数是质量

设置重力加速度:

space.ForceUpdater.Gravity = new Vector3(0, -9.81f, 0);

3.与物理系统交互

渲染实体位置
通过实体变换矩阵同步图形:

Matrix worldMatrix = Transform * entity.WorldTransform;

4.发射物体

设置初速度发射盒子:

Box toAdd = new Box(camera.Position, 1, 1, 1, 1);
toAdd.LinearVelocity = camera.WorldMatrix.Forward * 10;
space.Add(toAdd);

5.构建环境

使用静态网格创建复杂地形:

Vector3[] vertices; 
int[] indices;
ModelDataExtractor.GetVerticesAndIndicesFromModel(model, out vertices, out indices);
var mesh = new StaticMesh(vertices, indices, new AffineTransform(new Vector3(0, -40, 0)));
space.Add(mesh);

6.事件处理

碰撞事件示例:

deleterBox.EventManager.InitialCollisionDetected += HandleCollision;void HandleCollision(EntityCollidable sender, Collidable other, CollidablePairHandler pair) {var otherEntity = other as EntityCollidable; if (otherEntity != null) {space.Remove(otherEntity.Entity);Components.Remove((EntityModel)otherEntity.Entity.Tag);}
}

7. 进阶学习

更多资源:
探索其他 示例程序
查阅 完整文档
访问 官方论坛 获取帮助
关键术语对照表
英文术语 中文翻译
Space 物理空间
Entity 物理实体
Dynamic entity 动态实体
Kinematic entity 运动学实体
Collision detection 碰撞检测
StaticMesh 静态网格
AffineTransform 仿射变换
Event handler 事件处理器
Bounding box 包围盒
代码注释翻译规范
保留所有技术术语原文(如 Space、Entity)
描述性文字全部翻译
保持代码缩进和格式不变
关键参数添加中文注释:

new Box(position,    // 初始位置width,       // 宽度height,      // 高度length,      // 长度mass         // 质量(动态实体必填)
);
`
关键字:移动宽带怎么网上续费_最挣钱没人干的生意_官网seo优化找哪家做_长沙seo网站优化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: