捣蛋猪吧 关注:33,089贴子:1,247,480

【真干货来了】捣蛋猪基础理论简明概要

只看楼主收藏回复

抱歉由于时间不能逐一将一些名词向各位解释,也不能在捣蛋猪里截图。我会尽量在纸上画一些示意图再拍照发上来。
本帖中部分结果在1.5.0版本中实验,可能与最新版本不符
本帖需要的知识背景:初中与部分高中的数学与物理知识

还是@下大王 的图


IP属地:上海1楼2017-07-10 20:11回复
    以前猪吧里经常出现一个词,叫技术党。这个词,简单说就是捣蛋猪玩的很6的人,但在猪吧可以细分为三种不同的类型:
    ·擅长载具建造的
    ·擅长理论分析的
    ·擅长程序代码的
    本帖主要普及关于捣蛋猪基础理论的知识。


    IP属地:上海2楼2017-07-10 20:11
    收起回复
      本帖中的基础理论分为三大模块
      1、 游戏环境
      2、 部件特性
      3、 实验方法
      然而这个假期可能更不到实验方法


      IP属地:上海3楼2017-07-10 20:12
      回复
        1、 游戏环境
        这里所说的游戏环境,包括游戏最基础的设定,与地面、墙壁等关卡内的“自然物体”,也涉及一部分程序内部的内容。
        捣蛋猪是基于unity3d中与box2d有关的命令的一款游戏,unity3d是一款三维游戏制作引擎。虽然unity3d可以用于平面游戏的制作,但是捣蛋猪中仍然有少量3d遗留的bug,比如三向箔。关于unity3d和box2d,楼主与目前吧内的所有人都知之甚少,下面仅以楼主所理解的box2d来解释游戏的架构。


        IP属地:上海5楼2017-07-10 20:12
        回复
          (1)物理世界
          Box2D物理引擎可以创建的物理世界具备下面3个特点①:
          --物理世界中存在一个重力
          --物理世界可以是一个存在边界的范围(有碰撞效果)
          --在世界中加入静态和动态物体(具备质量和位置)。它们被用来模拟现实的运动规律
          重力的大小目前仍未知,因为我们无法得知一单位质量和长度在游戏中代表什么。根据本吧的一篇精品帖,如果假定捣蛋猪世界与地球的重力加速度相同,即9.80665m/s^2,那么测得的一格长度约等于0.94m。
          捣蛋猪世界中并没有空气,机翼、雨伞等空气动力学部件所带来的力只是根据游戏内置的公式计算得到的。对于非空气动力学部件,空气阻力被简化为一个恒定的阻力,这个阻力与物体运动方向相反。所不同的是,其大小与物体的质量、速度有关。而与物体的形状、迎风面积等无关。根据牛顿第二定律,在已知质量与长度单位的前提下,理论上可以通过录制视频算出这个力的大小。
          上左定则也是本游戏中一个奇怪的存在,即在某一部件的上方和左方的某些部件,与其下方和右方的同种部件表现出不同的特性。例如,判定断裂时,与木框连接的部件,如果在木框的上或左侧,断裂时显示snap;如果在木框的下或右侧,断裂时显示krak。另外,小铁轮如果放在框或分离器的上或左侧,铁轮受力时会像下端固定、掰向侧面后松手后的弹簧一样摆动,在下或右侧时则不会。
          除此之外,捣蛋猪所在的这个物理世界,大致遵循牛顿力学的框架。
          http://blog.csdn.net/u014096244/article/details/40183987


          IP属地:上海6楼2017-07-10 20:15
          收起回复
            前排


            IP属地:湖北来自Android客户端7楼2017-07-10 20:20
            回复
              玩命顶啊


              IP属地:河北来自Android客户端8楼2017-07-10 21:03
              回复
                黄灯军团前来围观


                来自Android客户端9楼2017-07-11 09:59
                回复
                  玩命顶啊


                  来自iPhone客户端10楼2017-07-11 10:02
                  回复
                    萌新前来支持


                    IP属地:辽宁来自Android客户端11楼2017-07-11 23:36
                    收起回复
                      1.2 物体
                      在box2d中,所有的物体都是刚体,简单理解就是形状永远不变的物体,因此才有“捣蛋猪部件永远不损坏”一说。物体由本体①与贴图两部分构成。box2d只负责物理模拟,贴图不归它管,而一个本体在引擎中包含刚体①、形状、框架(fixture)三部分。
                      ①box2d中刚体和物体通常指一个词,但在本文中为了区别,将刚体与贴图的集合统称为物体。本体为本帖自创,为了方便,下文中若无特别说明,以物体代指本体。


                      IP属地:上海12楼2017-07-12 10:05
                      收起回复
                        刚体是一个物体的基础,形状与框架都依附与它存在。刚体设定了该物体的类型、位置与角度、阻尼、休眠参数等参数。
                        物体类型
                        box2d中的物体分为三类:静态物体、平台物体、动态物体
                        静态物体,即静止的物体,无论受多大力也不会运动,质量为0(程序中用0表示质量无限大)。捣蛋猪中的墙壁、地面即为静态物体;
                        平台物体,是按照固定轨迹在做运动的物体,质量也为0。捣蛋猪中没有,其它一些游戏中左右移动的平台就属于此类。
                        动态物体,铁框、轮子等部件和小猪大冒险沙盒中的桥、铁盒等都是动态物体,可以移动。


                        IP属地:上海13楼2017-07-12 10:19
                        收起回复
                          阻尼
                          阻尼是在box2d中对空气阻力的模拟,表示一个物体速度减小的快慢。与之前所说的恒定的阻力不同,阻尼是一个物体的固有属性,是一个固定的数值,在程序内部已经被设定好,与质量、速度等都没有关系。
                          大部分部件的阻尼都是一样的,但沙袋、猪王、绳子的阻尼要大得多(金猪未知,尚未实验)。例如,沙袋、猪王、绳子自由下落时,他们的速度在开始下落一段时间后就不再加快,看起来像是慢悠悠地下落。并且绳子拴在较快速的车上运动时,将在空中飘动的绳子剪断,断掉的一端没飞多久就落地了。
                          气球的阻尼可能也较大。


                          IP属地:上海14楼2017-07-12 10:33
                          回复
                            补充:
                            box2d物理引擎只在点击建造格右边的对勾后才开始运行,其他如选关、拼装载具的界面都没有物理引擎参与。但是三向箔是例外。


                            IP属地:上海15楼2017-07-12 10:35
                            回复
                              休眠参数与游戏无关,各位如果觉得需要讲就再扩充一下


                              IP属地:上海16楼2017-07-12 10:37
                              回复