browser request client端源代码解析

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
这个函数里挂了非常多的回调函数

 

你可能感兴趣的:(js,游戏,client,game)