随笔-43  评论-2  文章-6  trackbacks-0

游戏里“人物”是以对象形式存在。
对象有很多“属性”,和“方法”,
“人物“可以有血,蓝,坐标x,坐标y。等等属性。
可以有“攻击”,“选怪”,“走路”等方法。
在游戏编程的时候,定义了一个对象。
他的属性是按照线性的地址排列。
“对象”在内存中的地址,就是基址。
“属性”和“方法”相对于对象的内存排列,就是偏移。
比如刚开始,游戏定义了“人物”对象具有,1.血2.蓝3.坐标x.4.坐标y
这时候,血值相当于“对象”基址的偏移就是4,蓝的偏移就是8,坐标x就是12,坐标y就是16
然后大更新了一次,游戏给“人物”对象添加了一个属性“经验”。且插入在在"2.蓝"这个属性之后,这时候,其他属性的“相对于对象基址的偏移”就发生了改变。
1.血2.蓝3.经验4.坐标x.5.坐标y

血偏移4,蓝8,经验12,坐标x16,坐标y20。。依次类推。

游戏一般会维护一个“对象列表”,就是把“对象“在内存中的地址存放在特定的数据结构之中,这个数据结构可以是”数组“,”链表“,”树“之类的。

posted on 2012-12-26 10:09 寻步 阅读(1255) 评论(0)  编辑 收藏 引用 所属分类: Hack

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理