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

关于Box2D加载 贴图 或者说加载 素材

阅读更多
最近在研究Box2D

研究这贴图之前,请一定要先搞明白一个HelloWorld,如果Box2D的HelloWorld都没看过的话,可能会不好理解

光是贴图就研究了很长时间

直接入题

目的 是想让游戏角色或者说动作与逻辑代码相分离

目前的看到网上的例子都是直接使用fla文件里面的MovieClip来实现
而这种情况下,使用这个角色对象的话,逻辑代码就要写到fla文件中或者是fla关联.as类文件

这样的话在纯AS代码来说不容易调试


如下是自己总结的解决方案
自己写的角色类用于调试,在不贴图的情况下,使用Box2D的showDebug可以方便的调试游戏,而又不影响调试和逻辑代码的使用

那么这个角色类要给予最基本的Sprite
里面存储一个Movie对象

我们通过Loader来加载外部的swf资源文件,这样实现资源文件 影片剪辑与代码的分离
我们通过loader来与角色类进行绑定
也就是
_resourceClass  =loader.contentLoaderInfo.applicationDomain.getDefinition(_symbol) as Class;
可以获取swf中定义的MovieClip对象类,然后创建他,并添加到这个角色类当中进行显示
body = new _resourceClass();
addChild(body);

这样还不够

说说最基本的Box2D

Box2D是通过b2BodyDef  也就是Body的定义类中的userData来实现贴图的
刚才我们做的动作只是来实现了一个角色的定义,我们需要通过这个来添加角色
bodyDef = new b2BodyDef();
bodyDef.userData = new XXXX();//创建角色对象
这里要注意,如果设置了userData的话,需要对他进行添加
在跟sprite中addChild(body.m_userData);
这样就实现了添加,不过这还没完

要想和box2d中的模拟对象和添加的素材角色对象同步运行,需要在
Event.ENTER_FRAME事件执行的方法中不断的重新做坐标

body.m_userData.x = body.GetPosition().x*30;
body.m_userData.y = body.GetPosition().y*30;
body.m_userData.rotation = body.GetAngle() * (180 / Math.PI);

这样就可以了实现逻辑代码与素材分离来制作了并且不会影响逻辑代码编写和调试
分享到:
评论

相关推荐

    Box2D中文手册

    总的来说,Box2D中文手册是游戏开发者的宝贵资源,无论你是初学者还是有经验的开发者,都可以从中获得关于2D物理引擎的深入知识,提高你的游戏开发能力。通过学习和应用Box2D,你将能够创造出更加生动、真实的2D游戏...

    Box2d中文说明

    ##### 1.1 关于Box2D Box2D是一款专为游戏设计的2D物理引擎,它通过精确的刚体动力学仿真,使得游戏中的物体运动更加真实、自然,从而增强游戏的沉浸感与互动性。对于游戏开发者而言,Box2D充当了一个程序化动画...

    Box2D_02_碰撞_box2D安卓快写代码_box2D_box2d碰撞_

    Box2D是一款强大的开源物理引擎,专为2D游戏和模拟设计。在“Box2D_02_碰撞”这个主题中,我们将深入探讨Box2D如何处理2D空间中的物体碰撞,以及如何在Android平台上编写C++代码来实现这些功能。 首先,Box2D的核心...

    box2d_py-2.3.5-cp39-cp39-win_amd64.whl.zip

    Box2D是一个流行的开源...综上所述,这个压缩包提供了Box2D的Python接口,对于想要在Python项目中实现2D物理效果的开发者来说非常有用。通过安装和学习提供的说明,开发者可以轻松地将物理模拟集成到他们的应用程序中。

    box2d_2.添加鼠标关节MouseJoint和box2d基础概念

    Box2D是一个流行的开源物理引擎,用于在2D空间中模拟真实世界物理行为。它广泛应用于游戏开发,让开发者能够创建具有逼真物理效果的游戏场景。在这个“box2d_2.添加鼠标关节MouseJoint和box2d基础概念”的主题中,...

    box2d碰撞检测教程

    总的来说,"cocos2d box2d碰撞检测教程"将引导你深入理解如何在Cocos2d项目中设置和利用Box2D的碰撞检测系统。通过学习这个教程,你将能够创建更真实、更互动的游戏环境,为玩家带来更好的体验。教程可能包括创建...

    box2d_py-2.3.5-cp37-cp37m-win_amd64.whl.zip

    总的来说,Box2D_Py是一个强大且易用的2D物理引擎,适用于那些希望在Python环境中快速实现物理效果的开发者。正确安装并理解其核心概念后,开发者可以充分利用其功能,为他们的项目增添丰富的物理行为。

    box2d开发说明(cocos2d for iphone)

    #### 1.1 关于Box2D Box2D是一款专为游戏开发设计的二维物理引擎库,它可以帮助开发者实现更加真实的物理效果,提高游戏世界的互动性和真实感。Box2D通过模拟现实世界中的物理现象,如碰撞、重力等,使游戏中的物体...

    Box2D+v2.1.0用户手册中文翻译

    Box2D是一个开源的2D物理引擎,广泛应用于游戏开发、模拟和教育领域。它以C++编写,但在多个平台...用户手册中文翻译文档对于初学者和有经验的开发者来说都是宝贵的资源,它详细解释了如何在AS3环境下有效地使用Box2D。

    box2d中文教程.pdf

    ### Box2D中文教程知识点概览 #### 一、Box2D简介 - **Box2D**是一款2D物理引擎,主要用于游戏开发中物体的物理模拟。它通过提供逼真的物体运动效果,使得游戏世界更加生动有趣。Box2D的核心功能在于能够模拟刚体的...

    box2d中文教程

    Box2D是一个开源的2D刚体物理引擎,主要用于游戏开发,它可以模拟真实的物理世界,使游戏中的物体运动更加真实可信,增强游戏的交互性和趣味性。Box2D使用C++编写,具有很高的可移植性,大部分定义类型都有b2前缀。...

    box2D中文手册

    Box2D是一个开源的2D物理引擎,广泛应用于游戏开发、模拟和教育领域。这个“Box2D中文手册”提供了一套详细的指南,帮助开发者更好地理解和使用Box2D引擎。以下将详细介绍Box2D的基本概念、核心功能以及如何在实际...

    Box2D中文教程

    综上所述,Box2D中文教程为我们提供了关于Box2D物理引擎的核心概念、工作原理以及如何在游戏开发中实现物理仿真。通过学习这些知识,开发者可以更深入地理解如何在游戏项目中应用Box2D,从而创造出更加真实和有吸引...

    Box2D v2.3.0 用户手册中文版

    关于 Box2D Box2D 是由 Erin Catto 创建的开源物理引擎,于 2007 年首次发布。Box2D 的主要目的就是提供一个高性能、可靠、易于使用的物理引擎,用于模拟二维碰撞和刚体动力学。 Box2D 的特点 Box2D具有以下特点...

    Box2D 最新引擎

    Box2D是一款非常知名的开源2D物理引擎,广泛应用于游戏开发和模拟系统中。它为开发者提供了实现真实感物理效果的工具,如碰撞检测、刚体动力学等,让游戏中的物体运动更加逼真,增加了游戏的趣味性和挑战性。 Box2D...

    box2d物理引擎cocos2d

    Box2D是一个开源的2D物理引擎,广泛用于游戏开发,尤其在Cocos2d这样的2D游戏引擎中。Cocos2d是一个流行的跨平台的游戏开发框架,它提供了丰富的功能和工具,使得开发者能够轻松创建各种2D游戏。在本案例中,我们...

    Box2D库(头文件+dll)

    描述中提到,Box2D源码已经被编译为DLL形式,这对于开发者来说是非常方便的。通常情况下,开发者需要下载源码,配置编译环境,然后编译生成所需的库文件。但在这里,这个步骤已经简化,开发者可以直接使用提供的DLL...

    box2d详细资料

    Box2D是一个开源的2D物理引擎,广泛应用于游戏开发、模拟和教育...对于初学者来说,理解并熟练运用这些概念是掌握Box2D的关键。同时,结合实际项目练习,将理论知识与实践相结合,能更好地提升你的2D物理引擎应用能力。

Global site tag (gtag.js) - Google Analytics