minecraft吧 关注:2,482,844贴子:30,872,293

回复:[17-02-06]【程序员乱入】Minecraft源代码分析

只看楼主收藏回复

第一个结果在328行,是个注释,不管它。到了383行,是这样的:

找到啦!


回复
17楼2017-02-06 15:48
    看到388~398行:


    try
    {
    this.startGame();
    }
    catch (Throwable var11)
    {
    var2 = CrashReport.makeCrashReport(var11, "Initializing game");
    var2.makeCategory("Initialization");
    this.displayCrashReport(this.addGraphicsAndWorldToCrashReport(var2));
    return;
    }


    this代表自己这个对象。在什么类中,this就是什么类的对象。这里this是一个Minecraft对象,调用startGame方法。从字面上分析就知道这一方法用来启动游戏。后面跟的catch用来捕获异常,因为startGame()可能会抛出异常。(如果没学过C++/Java,就认为异常就是“有问题”就好了。)Throwable是一个异常接口,因为所有异常类都implements Throwable,所以可以用Throwable来捕获。


    大概的意思就是,如果出了问题,就报告错误,然后退出。


    收起回复
    本楼含有高级字体18楼2017-02-06 15:49



      回复
      20楼2017-02-06 15:51



        回复
        21楼2017-02-06 15:51
          419~424行:


          continue;
          }
          this.displayCrashReport();

          return;
          }


          continue开始下一轮循环,因此如果进入了if (!this.hasCrashed || this.crashReporter == null)这一块,到了continue的位置就会开始下一轮循环,不会执行到后面;但假如没有进入这一块,就会执行this.displayCrashReport(),意思是显示崩溃报告,然后return导致函数返回,退到Main.main()的最后一行,然后游戏就结束了。


          回复
          22楼2017-02-06 15:52

            426~443行一堆异常处理,这里暂时不讲。看到444~447行,finally是Java的一个关键词,大概意思是说,不管有没有异常,在最后都会调用shutdownMinecraftApplet()关闭Minecraft。最后函数返回,Minecraft就关闭了。


            回复
            23楼2017-02-06 15:52
              好了,到这里,Minecraft的基本架构就 介 绍 完 了。


              收起回复
              24楼2017-02-06 15:52
                〖冒个泡〗全程看楼主自言自语


                收起回复
                来自Android客户端25楼2017-02-06 19:18
                  我开了只看楼主?


                  收起回复
                  来自Android客户端26楼2017-02-06 19:19
                    佩服初二的楼主!


                    收起回复
                    来自Android客户端27楼2017-02-06 19:23
                      顶顶


                      回复
                      30楼2017-02-06 19:38
                        坐看dalao装逼


                        回复
                        来自Android客户端32楼2017-02-06 20:10
                          eclipse辣鸡,vim是最好的


                          收起回复
                          来自Android客户端33楼2017-02-17 21:01
                            分析这个有啥意思= =
                            mc的源码感觉是艺术家写出来的,太随意了
                            比方说好多不该私有化的东西被私有化,然后逼得你调用的时候去反射构造
                            讲道理如果不是有一些API在曲线救国的话
                            制作mc的mod绝对是让人呕吐的一个过程


                            收起回复
                            来自Android客户端36楼2017-02-17 21:30