Libgdx Box2D现实---这缓释微丸(两:Box2D介绍)
Box2D官方网站 : http://box2d.org/
Box2D v2.1.0用户手冊翻译 : http://blog.csdn.net/complex_ok/article/category/871440
Libgdx使用jni封装了box2d的c++版本号,使得其执行效率比其它同级的物理引擎如jbox2d快不少。
一、基础类
BodyDef
A body definition holds all the data needed to construct a rigid body. You can safely re-use body definitions. Shapes are added to a body after construction.
定义Body所须要的全部数据都由它负责,我们能够反复使用。
Shape与Body的绑定必须在它之后完毕。
这个我理解为能够通过它来定义物体模型的类型等数据,它放入Body中。
常见使用方法是来定义类型:
如
BodyDef ballBodyDef = new BodyDef(); //构建对象
ballBodyDef.type = BodyType.DynamicBody;//定义类型,DynamicBody是不受控制的动态物体,KinematicBody是受控制的动态物体,StaticBody是静态物体
Body
A rigid body. These are created via World.CreateBody.
这是一个非常坚硬的物体,不要妄想去改变它的形状。我们仅仅能通过World.CreateBody方法来创建它。
使用方法例如以下(ballModels是body):
ballModels = world.createBody(ballBodyDef);
ballModels.createFixture(fd);
Box2DDebugRenderer
用于測试Box2D的图形显示。会把图形的形状通过不同颜色绘制出来。
ChainShape、CircleShape 、EdgeShape 、PolygonShape
他们都继承于Shap,是最主要的图形
Fixture
将形状绑定到物体之上, 并有一定的材质属性, 比方密度(density)等。必须由Body.createFixture生成。
FixtureDef
Fixture的属性申明。可反复使用。
FixtureDef fd = new FixtureDef();
fd.density = 1;//密度
fd.friction = 0f;//摩擦力
fd.restitution = 0.5f;//弹力0-1,1为全然弹性碰撞
fd.shape = shape;
World
The world class manages all physics entities, dynamic simulation, and asynchronous queries. The world also contains efficient memory management facilities.
管理全部物理实体,动态模拟,异步查询。
还包括高效的内存管理机制。
物理世界,管理全部body,
如:
<span style="color:#33cc00;">world = new World(new Vector2(0, -10f), false);//代表向下重力加速度为10的物理世界</span>
<span style="color:#33cc00;"></span>
因为物理世界和render中时间不一致,我们一般要进行转换,就是在render方法中加一句:
world.step(1 / 60f, 10, 10);
同一时候,物理世界參考点在屏幕中心。而stage是(0,0),希望大家可以注意。
物理世界的长度不是依照像素计算的。要注意单位换算。一般换算比是 1:60,。物理世界是1.
版权声明:本文博客原创文章。博客,未经同意,不得转载。
Libgdx Box2D现实---这缓释微丸(两:Box2D介绍)的更多相关文章
- Libgdx Box2D现实------这缓释微丸(一个:项目介绍)
它花了两个星期的假写物理游戏,在几次课逃逸,是大学,因为大部分时间点!今天,我基本上一直每节课的点1-3有时它,哎,这似乎是不再逃跑.不知道值没有值得,仅仅是简单地想做自己喜欢的事情,而不是跟老师大眼 ...
- Libgdx Box2D真实---这缓释微丸(三:规则经常使用body和精灵联合)
介绍规则body怎样和图片结合.上一篇文章我介绍了box2D的基本知识,假设你用心的话.你会搜索网上相关简单demo吧.那些我就不写了.那么假设我用图片表示我的那个body.而不是简单线条.那该怎么办 ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_3-04 SpringCloud微服务核心组件Eureka介绍和闭源后影响
笔记 4.SpringCloud微服务核心组件Eureka介绍和闭源后影响 简介: SpringCloud体系介绍 官方地址:http://projec ...
- [libgdx游戏开发教程]使用Libgdx进行游戏开发(11)-高级编程技巧 Box2d和Shader
高级编程技巧只是相对的,其实主要是讲物理模拟和着色器程序的使用. 本章主要讲解利用Box2D并用它来实现萝卜雨,然后是使用单色着色器shader让画面呈现单色状态:http://files.cnblo ...
- 微服务与Docker介绍
什么是微服务 微服务应用的一个最大的优点是,它们往往比传统的应用程序更有效地利用计算资源.这是因为它们通过扩展组件来处理功能瓶颈问题.这样一来,开发人员只需要为额外的组件部署计算资源,而不需要部署一个 ...
- 微服务框架Lagom介绍之一
背景 Lagom是JAVA系下响应式 微服务框架,在阅读本文之前请先阅读微服务架构设计,Lagom与其他微服务框架相比,与众不同的特性包括: 目前,大多数已有的微服务框架关注于简化单个微服务的构建-- ...
- 【Tars】腾讯微服务框架Tars介绍
目录 1.介绍2.设计思路3.整体架构4.平台特性1. 介绍 Tars是[基于名字服务][使用Tars协议]的高性能[RPC]开发框架,同时配套一体化的[服务治理平台],帮助个人或者企业快速的以微服务 ...
- java框架之SpringCloud(1)-微服务及SpringCloud介绍
微服务概述 是什么 业界大牛 Martin Fowler 这样描述微服务: 参考[微服务(Microservices)-微服务原作者Martin Flower博客翻译]. 下面是关于上述博客中的部分重 ...
- 微服务框架 ketchup 介绍
1.背景 在ketchup诞生之前.期间也是用surging开发了两个项目.奈何surging没有文档,升级之后,只能从头在读一遍源码,了解新功能,会消耗大量的时间.商业化也使一些 想学习微服务的人望 ...
随机推荐
- Spring配置与第一Spring HelloWorld
林炳文Evankaka原创作品. 转载请注明出处http://blog.csdn.net/evankaka 本文将主讲了Spring在Eclipse下的配置,并用Spring执行了第一个HelloWo ...
- Play Framework + ReactiveMongo
Play Framework + ReactiveMongo Play!是一个full-stack(全栈的)Java/Scala Web应用框架,包括一个简单的无状态MVC模型,具有Hibernate ...
- [Django1.6]The MEDIA_ROOT and STATIC_ROOT settings must different 解决
该项目有一个图片上传功能,为了把上传路径很简单,写在同一个静态文件路径,于wi7执行机器上没问题,今centos我们报道了机上,如下面的错误: django.core.exceptions.Impro ...
- Ubuntu中全然卸载Nginx
Nginx尽管好用,可是一旦关键配置文件被改动,想要卸载重装却是相当困难.本人由于採用apt-get方式安装后又源代码安装了Nginx,结果出现冲突,卸载不了,安装不上,非常是蛋疼.基本的问题还是Ng ...
- 系统ls命令出现1;2cl;2cl;2cl;2c(转)
1;2c after using cat or more on binary filesI noticed that if you use the hex 05 in a file and cat o ...
- TCP/IP的经典网络编程
TCP/IP网络编程之四书五经 ...
- react.js 从零开始(七)React (虚拟)DOM
React 元素 React 中最主要的类型就是 ReactElement.它有四个属性:type,props,key 和ref.它没有方法,并且原型上什么都没有. 可以通过 React.create ...
- Git联系oschina托管代码版本号
工作一般使用SVN,近期好像GitHub有些火.看到开源中国上也有Git的开源版本号管理. 另外看到一篇文章说Git 比 SVN 要好. 就想多了解一下Git.顺便也能够把自己平时的一些代码保存在云端 ...
- ASP.NET MVC 使用TryUpdateModel 更新的技巧
有使用 ASP.NET MVC 的朋友應該會對於 TryUpdateModel 有一定的認知,他不但可以利用 Metadata 來做欄位的驗證確保資料的正確性,也可以指定更新的條件以及不更新的條件來達 ...
- 基于Qt语音识别功能
基于在最近的研究Qt语音识别平台下.在此记录12 首先,语音识别做三件事 1.记录用户的语音文件到本地 2.将用户语音编码 使用flac或者speex进行编码 3.使用第三方语音识别API或者SDK进 ...