minecraft吧 关注:2,484,545贴子:30,912,422

回复:[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