- 博客(8)
- 资源 (5)
- 收藏
- 关注
原创 Python对象多态性
Py多态的实现,主要是靠泛型指针。比如说维护int对象,用的是基类的point,PyObject* 而不是 PyIntObject*。这个指针的对象类型,我们无法知道,只能通过这个PyObject*指向对象的ob_type域动态判断,ob_type是对象的类型信息,而这个类型在python中也是对象PyType_Type(python一切皆对象)。...
2018-04-04 17:58:59 304
原创 C++ Reflection简单实现
记录成员变量相对于class/struct的offset和size, 再根据实例指针计算出内存地址#include <iostream> #include <stdlib.h> #include <vector> #define REFLEX_PROPERTY(obj,name) using namespace std; //属性信息记录 struct Pr...
2018-02-09 16:32:53 2229 1
原创 《王者荣耀》帧同步技术理解
帧同步的核心思想是客户端只发送玩家的操作,或者将玩家操作解释为可执行的指令,发给服务器执行并广播给其它客户端执行。相同的输入+相同的逻辑 = 相同的结果。 快进功能其实就是在一帧里处理多帧的数据,所以一般都有一个队列辅助维护每帧要处理的数据。关于掉线网络延迟的处理,一般会短时间内维持上一帧的移动指令,但没有其他的按键指令。 有些坑的地方,主要是不同步。因为帧同步技术只同步输入,结果由各个客户端
2017-12-27 21:23:08 4514
原创 static、const、define的一些理解
C+实在是太庞大了,实际工程中很多东西使用不上,太久不用就容易忘记。只能记些笔记,方便回顾吧。 关于static 有几个概念先阐述一下: 局部变量指在代码块{}内部定义的变量,只在代码块内部有效(作用域),其缺省的存储方式是自动变量或说是动态存储的,即指令执行到变量定义处时才给变量分配存储单元,跳出代码块时释放内存单元(生命期)。 外部变量指在所有代码块{}之外定义的变量,它缺
2017-11-07 12:00:54 732
原创 smart ptr 学习理解笔记
很多人使用C++的时候,最头疼的问题之一就是内存泄漏和野指针问题,内存泄漏的话风险会很大,野指针问题则会导致程序非法地址访问直接宕机。如果对内存没有概念,不知道生命周期,在使用C++上就会觉得非常头疼,但使用得当的话这也是C++的一把利剑。智能指针的出现,就是为了降低C++程序猿的门槛,即使你对内存没有那么深刻的概念,只要你按照智能指针的规则来使,就能很大程度上避免内存泄漏和野指针这两大难题。
2017-11-06 17:49:59 454
原创 第一款端游—PZ项目总结
2017.10.27 制作人周然相继与各个主管谈话,宣布PZ项目停项,端游停止制作,转而制作一款手游。 当时,作为国内为数不多(应该是唯一)的一款欧美魔幻风格的MMO端游,我们已经制作了近五年。而且,刚刚面向玩家进行了第一次黑盒测试,在首日服务器崩溃31次(主要是AOI的野指针问题)的情况下,我们次留仍然保持了54%。也因为首日的崩溃,我们不得已宽松了数值产出,导致游戏节奏加快。本应该能玩七日的
2017-11-04 21:20:20 683
C++ point类 求矩形面积及两点距离
2012-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人