C#服务端的微信小游戏——多人在线角色扮演(四)

C#服务端的微信小游戏——多人在线角色扮演(四)

时间、空间和物质,这就是宇宙的全部,让世界在你的服务器上运转起来吧。
——茂叔

GameServer的第一个工作。

在上一篇里,服务端的GameServer启动后,并没有进行任何实际的工作,只是通知GameMonitor它已经启动了。这个相当于我们上班打卡,然后在座位上补瞌睡……现在,让我们看看有什么活需要干吧。

首先,我们知道GameServer的功能主要有三个:

  1. 让游戏跑起来
  2. 接受和处理客户端发过来的请求
  3. 把客户需要的信息发回客户端

现在我们先处理让游戏跑起来的工作。后面两项工作将来配合客户端开发来一起完成。
所以,我们要有个Game类对吧。
然后这个Game类要可以创建一个空间,把控时间,调动空间里的物质。
好的,在VS方案里面创建一个新的项目,类型为Class Library(.NET Framework),命名为GameLib,然后把自动生成的Class1更名为Game

另外在新建一个用以保存全局信息的类G,在G里面定义一个静态成员GlobeTime,这就是我们在游戏里面的时间了。游戏世界的任何动作都应该以这个时间为尺度。
对于世界上所有的内容,时间,都是平等的,不仅仅是在游戏里。

在游戏类创建的时候,将时间归零,一切从头开始……这个只有游戏里面可以做到。

接下来创建一个新的类GameWorld 这就是我们游戏世界的空间
因为我们是做的2D游戏,所以空间是由若干地图构成的,因此还需要一个GameMap类。
另外再创建一个GameObject这个是空间里的内容

有了全局的时间,Game里面还必须有个GameWorld,而GameWorld里面有一堆GameMap,然后GameMap里面又有一堆GameObject,所以,这几个类应该是这样的:

public class G
    {
   
   
        public static uint GlobeTime;
    }
public class Game
    {
   
   
        private readonly GameWorld gWorld;
        public Game()
        {
   
   
            G.GlobeTime = 0;
            gWorld = new GameWorld();
        }
    }
class GameWorld
    {
   
   
        private readonly List<GameMap> gMaps;
        public GameWorld()
        {
   
   
            gMaps = new List<GameMap>();
        }
    }
class GameMap
    {
   
   
        private readonly List<GameObject> gObjects;
        public GameMap()
        {
   
   
            gObjects = new List<GameObject>();
        }
    }
class GameObject
    {
   
   
        public GameObject()
        {
   
   
        }
    }

当游戏服务器GameServer启动的时候,我们需要让游戏跑起来,那就需要访问Game类,所以要为GameMonitor项目添加引用GameLib,右键选取GameMonitor,选择添加->引用->‘工程’,然后给GameLib打上勾勾,确定。再到GameServer里面添加一行using GameLib;就可以了。

GameServer增加一个成员private readonly Game gGame,这个就是我们的游戏了。

GameServerStartUp方法里面,添加gGame.Run(),这样游戏就跑起来了。VS会提醒gGame没有Run这个方法,没关系,选中Run然后alt+enter,选择自动生成一个就可以了。

GameServer.cs里面:

 public void StartUp()
        {
   
   
            if (Status == 0)
            {
   
   
                gGame.Run(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值