09 2012 档案
摘要:AOI服务作为网络游戏中的中的一个重要组件,用于为地图中的对象根据当前坐标更新关注列表.对于玩家而言,在A关注列表中的对象,其状态发生改变时,需要通知A,这样A才能看到在视野内其它对象的移动,战斗等。对于NPC而且,关注列表中的对象表示在自己一定范围内的对象,可作为AI选择的攻击目标。典型的AOI算法包括格子,十字链表等,关于十字链表法可参考:http://www.codedump.info/?p=388本文介绍一种基于格子的算法.本算法实现的目标是支持可变长视距,根据视距半径,计算出一个包围这个视野圆的最小正方形,然后计算出这个正方形包含在哪些格子中,这些格子中的对象都有可能是可见对象.首先
阅读全文
摘要:将用户级线程添加到我的工具库中,主要的目的就是用于实现同步远程调用接口。这里的同步,是指在调用返回或超时之前,用户级线程的执行路径阻塞在调用接口上,但其底层的线程并不会阻塞,可以继续其它的工作。基于这个结构,我的服务器主线程将运行一个用户级线程调度器,并预先创建一组用户级线程池。当收从网络层收到一个网络消息时,从线程池中取出一个空闲的线程,将消息交给它处理。这个线程在执行的过程中如果发生了阻塞调用,就将运行权交换给调度器,由调度器挑选下一个可用的线程执行。阻塞线程直到超时,或被通知可以解除阻塞才被重新投入到调度器的可运行队列中。下面贴出一个简单的测试代码,用于测试调用的效率。首先是两个远程函数
阅读全文

浙公网安备 33010602011771号