欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

browser request client端源代码解析

程序员文章站 2022-06-14 16:08:34
...
browser request client端源代码解析

  main.js 入口,处理html最外层界面的回调
  app.js  总配置接口
  game.js 游戏主逻辑

继承关系:Entity---character-----player----warrior
主渲染循环  game.start --------game.click

初始化:main.js----initApp---initGame
      Game的主要组件 renderer、updater、bubbleManager(弹出菜单)、audioManager、chatinput、pathfinder、player
      game = new Game(app);
    game.setup('#bubbles', canvas, background, foreground, input);

      game.run中的初始化
      this.loadSprites();
      this.setUpdater(new Updater(this));
      this.camera = this.renderer.camera;

      this.setSpriteScale(this.renderer.scale);
    self.loadAudio();

      self.initMusicAreas();
      self.initAchievements();
      self.initCursors();
      self.initAnimations();
      self.initShadows();
      self.initHurtSprites();

      if(!self.renderer.mobile
      && !self.renderer.tablet
      && self.renderer.upscaledRendering) {
          self.initSilhouettes();
      }

      self.initEntityGrid();
      self.initItemGrid();
      self.initPathingGrid();
      self.initRenderingGrid();

      self.setPathfinder(new Pathfinder(self.map.width, self.map.height));

      self.initPlayer();
      self.setCursor("hand");

  调用流程:
    输入name字段,按下回车或点击play
    app.tryStartingGame---app.startGame-----app.start----game.run---game.connect----GameClient.connect

    GameClient 对消息的处理
    connection.onmessage----receiveMessage----receiveAction 通过map this.handlers来对消息进行处理

server   client
'GO'----'HELLO'----'WELCOME'
server发回来的消息序列:

交互消息序列:
client 发送:Types.Messages.HELLO
server 发送:Types.Messages.WELCOME   ------------gameclient.receiveWelcome--------gameclient.onWelcome game.js:line 768
这个函数里挂了非常多的回调函数