心里一片空白,要弄个p2的demo出来。。。

先了解下p2的概念吧

P2只是一个算法库,以刚体为对象模型,模拟并输出物理碰撞、运动结果。这个过程通过持续调用world中的step()方法来实现

p2的单位是米,egret的单位是像素, 1米=50像素

p2的坐标系 x:从左往右,y:从下往上. (0,0)点在左上角.   egret的坐标系 x:从左往右,y:从上往下.(0,0)点在左下角.

p2刚体的默认锚点是在中间,egret显示对象的锚点默认位于其左上角

钢体 (它是一块无限坚硬的物体。因此,在这块物体上任何两点之间的距离都被认为是固定的。Body(刚体)有自己的参数用来规定位置、质量和速度等,刚体的形状是由Shape创建的形状确定的)

形状  (一个几何形状,可以是矩形、圆形等等)

约束 (constraint 是一个物理连接件,用来控制刚体的自由度.下面是一些常用的约束)

  1. 距离约束DistanceConstraint,
  2. 旋转约束RevoluteConstraint
  3. 齿轮约束GearConstraint
  4. 坐标轴约束PrismaticConstraint
  5. 车轮约束WheelConstraint

创建形状:  boxShape = new p2.Box({ width: 2, height: 1 });

创建钢体:  boxBody = new p2.Body({ mass:1, position:[0,3],angularVelocity:1 });

给附加形状: boxBody.addShape(boxShape);

添加钢体到舞台: world.addBody(boxBody);

body.type=p2.Body.KINEMATIC. body的type属性用于设置是哪种类型的钢体,有些钢体不参与碰撞,有些钢体是不动的.

world.sleepMode = p2.World.BODY_SLEEPING;    sleepMode属性用于钢体休眠模式

下面是一些例子:

// 画钢体

world.on("addBody",function(evt){
  evt.body.setDensity(1);
});

创建汽车的轮子

// Constrain wheels to chassis with revolute constraints.
// Revolutes lets the connected bodies rotate around a shared point.
revoluteBack = new p2.RevoluteConstraint(chassisBody, wheelBody1, {
localPivotA: [-0.5, -0.3], // Where to hinge first wheel on the chassis
localPivotB: [0, 0],
collideConnected: false
});
revoluteFront = new p2.RevoluteConstraint(chassisBody, wheelBody2, {
localPivotA: [0.5, -0.3], // Where to hinge second wheel on the chassis
localPivotB: [0, 0], // Where the hinge is in the wheel (center)
collideConnected: false
});
world.addConstraint(revoluteBack);
world.addConstraint(revoluteFront);

// Enable the constraint motor for the back wheel. 后驱.哈哈
revoluteBack.enableMotor();
revoluteBack.setMotorSpeed(10);

// 钢体固定移动

boxBody = new p2.Body({
mass: 1,
position: [-0.3,2],
fixedRotation: true,
fixedX: true
});

p2 入门的更多相关文章

  1. Egret P2 入门学习资料

    1 p2库下载: https://github.com/egret-labs/egret-game-library/tree/rc/4.1.0 2 p2 作者demo:https://github.c ...

  2. MySQL笔记---视图,存储过程, 触发器的使用入门

    大二学数据库的时候,只是隐约听到老师提起过视图啊,存储过程啊,触发器啊什么的,但只是淡淡的记住了名字,后来自己做些小项目,小程序,也没有用上过,都只是简单的建表,关联表之类的,导致我对这些东西的理解只 ...

  3. webpack入门——webpack的安装与使用

    一.简介 1.什么是webpack webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. ...

  4. ACM/ICPC 之 计算几何入门-叉积-to left test(POJ2318-POJ2398)

    POJ2318 本题需要运用to left test不断判断点处于哪个分区,并统计分区的点个数(保证点不在边界和界外),用来做叉积入门题很合适 //计算几何-叉积入门题 //Time:157Ms Me ...

  5. 一小时包教会 —— webpack 入门指南

    什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...

  6. JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式

    相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...

  7. 15、ASP.NET MVC入门到精通——MVC-路由

    本系列目录:ASP.NET MVC4入门到精通系列目录汇总 Routing(路由) – URL url 作为广泛使用的Web用户接口,需要被重视 好的Url应该满足如下条件: URL应为获取某种资源提 ...

  8. [Java入门笔记] 面向对象编程基础(二):方法详解

    什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...

  9. 突袭HTML5之SVG 2D入门1 - SVG综述////////////////zzzzzzzz

    以二次贝塞尔曲线的公式为例: js函数: //p0.p1.p2三个点,其中p0为起点,p2为终点,p1为控制点 //它们的坐标用数组表示[x,y] //t的范围是0-1 function qBerzi ...

随机推荐

  1. Linux下c语言实现myod

    首先根据od要输出16进制的功能,以及c语言中文件的打开读取等函数,编写了如下代码. #include<stdio.h> #define N 1000 int main() { int c ...

  2. 20155313 实验三《Java面向对象程序设计》实验报告

    一.实验内容 XP基础 XP核心实践 相关工具 二.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器>课程 2.完成实验.撰写实验报 ...

  3. 微信小程序点击事件

    <---------------------------------------------------index文件夹:------------------------------------ ...

  4. Mac下 Windows 7 虚拟机成功搭建SVN服务器后如何与Xcode建立联系,并上传原始工程的详细步骤

    内容中包含 base64string 图片造成字符过多,拒绝显示

  5. DataGrid中Combox bingding string

    DataGrid列中绑定Combox 正常情况下的Combox绑定回传不会失效:但是在DataGrid中选择Combox属性后不会回传:即调用Set属性 如图中的模板: 显示的方式有三种: 第一种: ...

  6. Lua学习笔记(4): 字符串

    Lua的字符串有3种初始化方式 str = "2333" str = 'hahahaha' str = [[ruarua]] 其中单引号和双引号的初始化方式并无区别,[[]]双中括 ...

  7. mysql 数据库优化之执行计划(explain)简析

    数据库优化是一个比较宽泛的概念,涵盖范围较广.大的层面涉及分布式主从.分库.分表等:小的层面包括连接池使用.复杂查询与简单查询的选择及是否在应用中做数据整合等:具体到sql语句执行效率则需调整相应查询 ...

  8. NO.05--谈一谈Angular 和 Vue.js 的对比。

    几天的vue之后,给需要的盆友们带来一篇对比,也算是我近期之内业余时间的大工程,现在开始: Vue.js 是开源的 JavaScript 框架,能够帮助开发者构建出美观的 Web 界面.当和其它网络工 ...

  9. 爬虫2.5-scrapy框架-下载中间件

    目录 scrapy框架-下载中间件 scrapy框架-下载中间件 middlewares.py中有两个类,一个是xxSpiderMiddleware类 一个是xxDownloaderMiddlewar ...

  10. MySQL双主复制

    原文发表于cu:2017-06-12 本文简单介绍MySQL双主复制原理及1个简单是双主复制验证. 一.MySQL双主复制原理 1. 双主复制原理 master-master复制的两台服务器,既是ma ...