`
cenphoenix
  • 浏览: 161475 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

APE 物理引擎与 Box2D 物理引擎对比

阅读更多
初学Box2D ,有几个心得

1.贴图。
    在 APE 中,不给粒子贴图,会有默认的白色粒子。如果要贴图,只要一个setDisplay 函数,就会用贴图代替默认的白色贴图。

    而 Box2D 压根儿没有贴图的概念。可以这么认为,Box2D 只负责数据的处理。往 box2D 的世界中输入各种数据,比如粒子大小,位置,摩擦力,重力等等,每一帧,box2D 都会返回给你每个物体的坐标,角度等等(注意返回的只是数据)。
    然后我们每一帧赋予贴图相应的坐标,角度,让他们动起来。实际上引擎纯粹在计算数据。然后我们操作数据。比APE 抽象吧。(可能我讲的比较抽象)
2.定义粒子
    Box2D 粒子的设置比较麻烦,要设置 粒子的 基本定义(位置,角度,userData ),形状定义(粒子的形状,大小,质量,密度等等)。基本定义用 body = world.CreateBody(bodyDef); 这种语句赋值给粒子,而形状定义则用 body.CreateShape(boxDef); 这种语句赋值,很繁琐。
    APE 的粒子,只要在类的构造函数中赋予各种属性可以生成。
3.粒子的动态和静态
    Box2D 中粒子有动态粒子和静态粒子之分,即物体是否固定。质量为 0 的粒子是静态(默认质量都为0,所以粒子默认都为静态),质量大于 0 的粒子是动态。
    APE 可以直接设置物体的静态属性。
4.单位
     Box2D 是用 “米” 做单位的,一米等于 30 像素(奇怪的比例)。要时不时的进行单位转换。

    APE 以像素做单位。
5.碰撞检测
    Box2D 的碰撞检测要继承一个类。这个类可以返回碰撞的位置,碰撞的双方等等。
    具体的方法在http://www.box2d.org/wiki/index.php?title=Listening_to_contact_events_in_Box2D_AS3
    (上面的 wiki 还有几个教程,很不错。)
    APE 有专门碰撞检测的类。
6.拖拽
    Box2D 的拖拽要用到 b2MouseJoint 类。源码在 http://dl.getdropbox.com/u/1249798/Test.zip
    APE 的拖拽很简单,侦听鼠标事件,设置鼠标事件的 target 跟随鼠标移动就可以。
其他概念
       Box2D 有个模拟范围的概念。物体在模拟范围内才有物理性质。文档里面说这个范围越大越好。这个功能我觉的挺有用的。可以实现多个物理世界并存。

    还有休眠的概念。如果物体静止。如果休眠属性 为 true ,那么当物体静止时就自动进入休眠,以节约CPU 资源。
分享到:
评论
1 楼 junlas 2010-03-19  
 

相关推荐

    flash一些3D和2D物理引擎

    这里我们将深入探讨几个在Flash平台上广泛使用的3D和2D物理引擎:BOX2D、FIVE3D、MOTOR2、FLADE以及APE。 首先,我们来看一下**BOX2D**。BOX2D是一款开源的2D物理引擎,由Erin Catto开发。它被广泛应用于Flash、C++...

    flash as3 COVE.APE物理引擎(2D)

    今天我们要讨论的是COVE.APE,一个专为Flash AS3设计的2D物理引擎。 COVE.APE物理引擎是为了解决2D游戏中的碰撞检测、重力模拟、物体运动等问题而诞生的。它提供了高级别的API,让开发者能够轻松地实现各种复杂的...

    ape 开源 物理引擎

    本文将深入探讨名为"ape"的开源物理引擎,以及其与SDL(Simple DirectMedia Layer)库的结合应用。 一、ape开源物理引擎概述 ape,全称为“Advanced Physics Engine”,是一款高度可定制的开源物理引擎,旨在为...

    APE物理引擎中文API.pdf

    APE物理引擎中文API APE物理引擎是一种基于ActionScript 3.0的物理引擎,用于模拟各种物理现象。该引擎提供了多种粒子类型,例如矩形粒子、圆形粒子、轮子粒子等,每种粒子都有其独特的属性和方法。 AbstractItem...

    Ape物理引擎-白鹭(egret)库

    可用的超轻量的APE物理引擎库。min文件只有38k,APE中总共才12个类,用起来相当的方便。实现了大部分物理模拟(弹性、摩擦力、牵引力等),对于初学...但相比较另一个物理引擎Box2D来说,APE还缺乏例如多边形碰撞等等。

    APE物理引擎的中文说明文档

    **APE物理引擎中文说明文档详解** APE(物理引擎)是一个基于ActionScript 3(AS3)的开源物理模拟库,专为Flash平台设计,用于创建动态的、具有真实感的物理效果。它允许开发者在2D环境中模拟物体的碰撞、重力和...

    APE0.45物理引擎_中文版.rar

    提到物理引擎,就不能不提Box2D,这是另一个广泛使用的2D物理引擎。Box2D以其高效、简洁的API闻名,许多2D游戏都采用了它。虽然《APE0.45》可能并非基于Box2D,但两者都致力于提供高质量的2D物理模拟,让开发者能够...

    flash物理引擎APE小实例

    APE(Actionscript Physics Engine)是专门为Flash平台设计的2D物理引擎,它使用AS3编写,支持多种物理特性。通过这个引擎,开发者可以轻松地添加物理行为到他们的Flash项目中,比如使对象自由下落、响应碰撞,甚至...

    APE物理引擎中文API

    【APE物理引擎中文API】是针对ActionScript 3(AS3)编程语言设计的一个物理引擎,主要用于模拟现实世界中的物体动态行为和碰撞效果。这款引擎是免费且开源的,遵循MIT协议,使得开发者可以在各种项目中灵活使用,...

    [转] ape引擎系列教程-第一篇:模拟最简单的物理世界

    这篇教程主要介绍的是ape引擎,一个用于创建2D物理模拟的开源工具。在本篇教程中,我们将学习如何使用ape引擎来模拟一个基本的物理世界,包括物体的碰撞检测、重力影响以及动态运动。 一、ape引擎简介 ape引擎,...

    APE物理引擎

    这个引擎为开发者提供了一种在2D环境中创建复杂物理效果的能力,如碰撞检测、重力模拟以及物体动态行为等。在游戏开发、互动媒体设计和动画制作等领域,物理引擎的应用十分广泛。 **1. APE引擎的核心功能** - **...

    APE as3 物理引擎

    APE (ActionScript Physics Engine) 是一款基于ActionScript 3(AS3)开发的2D物理引擎,主要用于Flash平台的游戏开发和其他需要实时物理模拟的应用。0.5a版是该引擎的一个稳定版本,提供了一系列基础的物理特性,如...

    APE AS3物理引擎学习

    APE(ActionScript Physics Engine)是一个开源的物理引擎,由Erik Loyer创建,专为Adobe Flash平台提供实时的2D物理模拟。它利用AS3的高性能特性,实现了碰撞检测、刚体运动、力的作用等关键物理现象,使得开发者...

    Java简单物理引擎.pdf

    2.高性能:该引擎的Java版本速度比JBOX2D快很多,提供了高速的物理模拟解决方案。 3.跨平台支持:该引擎支持多种平台,包括Windows、Mac OS和Linux等。 APE引擎的架构主要包括12个类,继承关系如下: 1. ...

    ActionScript 3.0 物理引擎 APE 0.45版本以及DEMO

    APE是一个结构清晰简单的ActionScript 2D物理引擎。 APE实现了大部分物理模拟(弹性、摩擦力、牵引力等),对于初学物理引擎的同学可以从APE学起。但相比较另一个物理引擎Box2D来说,APE还缺乏例如多边形碰撞等等。

    java简单物理引擎

    - **性能优势**:与JBOX2D相比,APE的Java版本具有更快的速度,这意味着它可以处理更复杂的物理模拟场景。 - **易用性**:APE的Java版本提供了丰富的文档和支持,对于初学者来说非常友好。 - **灵活性**:除了游戏...

    Box2D 学习资料

    做C++ 的应该知道 BOX2D这个物理引擎,现在他已经有FLASH 的 AS3 版本了 性能据说很好,功能也非常完善,想成为恐怖的高手,我想非它不选 但是学起来也不简单,比APE 那几个简单的类来说要复杂的多 而且没有API...

    ape_a0452d物理引擎

    ape_a0452d物理引擎 06-21-07 Version 0.45a Two new properties for much greater stability - constraintCycles and constraintCollisionCycles Group now takes collideInternal setting as a parameter in the ...

Global site tag (gtag.js) - Google Analytics