企业官网网站建设报价,手机端网站建站手册,个人简历代写,怎么在百度做宣传广告使用物理引擎JBox2D完成游戏关卡的各个物理状态模拟根据物理引擎设计Bird,Pig,Brick等游戏中出现的可运动刚体类建立JBox2d的工具类以实现###本人对这次课设的看法与吐槽 1.课设内容的脑洞是我在看完17级学长的游戏课设之后想出的 当时还没学java网络编程的内容#xff0c;误以…使用物理引擎JBox2D完成游戏关卡的各个物理状态模拟根据物理引擎设计Bird,Pig,Brick等游戏中出现的可运动刚体类建立JBox2d的工具类以实现###本人对这次课设的看法与吐槽 1.课设内容的脑洞是我在看完17级学长的游戏课设之后想出的 当时还没学java网络编程的内容误以为java课设只能做游戏(然后一路头铁到底)在前期准备的时候参考的基础代码和郑老师博客中的参考资料南洋理工Java Game Programming 前者的代码仅使用了碰撞检测无法对物体的实际运动状态进行模拟 后者使用物理公式模拟了运动轨迹利用圆的各向性质相同实现了圆形的碰撞后反向运动而愤怒的小鸟游戏中各向性质相同的物体并不存在 于是当时在前期调查报告中加了这句话 天真的认为物理引擎是简单物理公式/数学公式进行编写碰撞旋转等操作的代码 下载了一个JBox2D的jar包找不到文档就先扔着了(并不知道将要面对什么) 直到发现JBox2D的示例代码也基本没有时到github下载了源码才发现自己工作量远超想象##3.物理引擎JBox2D简介/分析JBox2D是开源的物理引擎Box2D的Java版本 该引擎能够根据开发人员设定的参数如重力、密度、摩擦系数和弹性系数等对2D刚体物理运动的全方位模拟 安卓版的愤怒的小鸟也是依赖JBox2D引擎###3.1 JBox2D引擎的主要类 ####Vec2类 二维矢量####World类 世界####Body类 刚体####BodyDef类 刚体描述####Fixture 夹具####FixtureDef 夹具描述####CircleShape 圆形####PolygonShape 多边形 ####包含关系该博客使用的JBox2D版本已过时大部分对物理引擎的调用方法已失效已通过阅读新版源码的方式修正这些方法 只有球类的自由落体演示并且作者对Jbox2d方面的内容不再更新 刚体绘制无法进行旋转自行研究了如何进行刚体随实际运动 但是作为唯一的一份找到的帮助我理解JBox2D引擎的代码对作者还是十分感谢 Conf类配置参数存储构建世界/画布时使用的常量抽象类MyFrame 继承自JFrame属性 AABB aabb //规定世界范围World world //模拟的物理世界ArrayList bodyList //刚体集合MyBody类DrawThread类 继承自Thread 绘制线程同步启动鼠标监听器Gview 类 继承自JPanel 设置背景启动绘制线程Box2dUtil类 根据JBox2d引擎进行Body的组装MymouseListener类 根据鼠标点击创建并发射bird类MyBrickBody类 矩形刚体及绘制方法MyCircleBody类 圆形刚体及绘制方法Bird类 继承自MyCircleBody 设置图片与hpPig类 继承自MyCircleBodyWall类 继承自MyBrickBody类Brick类 继承自MyBrickBody类##5.存在的问题对物理引擎的理解仍然不够深入部分操作短时间内不能实现 存在无法无法解决的bug,github上已经开源的代码与依赖jar包版本不匹配对问题发生处朔源失败 课设时间(一周)实在太短只完成了勉强能动的游戏内容