游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2038|回复: 7

问题

[复制链接]

87

主题

790

帖子

806

积分

高级会员

Rank: 4

积分
806
QQ
发表于 2006-10-7 20:47:00 | 显示全部楼层 |阅读模式
A对象的B功能对C对象操作,如果我要在A对象的B功能中标识A对象的B功能已经操作C对象,而C对象中标识被A对象的B功能操作,数据结构该怎么设计

举个例子说明:成都城池的移动武将功能对张飞操作,如果我要在城池的移动武将功能上标识移动武将的操作对象是张飞,而在张飞中标识张飞被成都城池执行了移动武将的操作,数据结构该怎么设计

27

主题

418

帖子

455

积分

中级会员

Rank: 3Rank: 3

积分
455
QQ
发表于 2006-10-8 00:58:00 | 显示全部楼层

Re:问题

并不复杂呀

27

主题

418

帖子

455

积分

中级会员

Rank: 3Rank: 3

积分
455
QQ
发表于 2006-10-8 01:00:00 | 显示全部楼层

Re:问题

不过,我的VB都快忘光了,所以无法给你解答了。

20

主题

451

帖子

470

积分

中级会员

Rank: 3Rank: 3

积分
470
发表于 2006-10-8 02:55:00 | 显示全部楼层

Re:问题

两种方法,一种是通过事件:

成都城池这个对象加一个移动这个Event,参数则传递移动的谁
只要执行了移动命令就Raiseevent 移动(张飞),这样就可以处理这个事件

在张飞对象类似,不过传递的对象是哪个城池移动的:RaiseEvent 移动(成都)

第二种,通过变量保存:
成都城池对象申明:dim 移动 as Object(vb6中应该是Any)。
当执行移动命令时则:移动=张飞

对张飞对象同理,而:移动=成都

26

主题

537

帖子

537

积分

高级会员

Rank: 4

积分
537
发表于 2006-10-8 12:33:00 | 显示全部楼层

Re:问题

我认为数据结构应该在程序整体设计时考虑好。既然是战略游戏,城池、武将等都是对象,那么在安排好某月所有任务并开始执行后,它们都应存在一个表示当月操作状态的统一结构。
简单举例:城池的操作状态结构
Type CityOperate
Dim Command As Integer    '命令编号:例如武将移动为15
Dim Character() As Integer  '执行者编号表:例如武将张飞为3、赵云为4
Dim Object As Integer        '目标城池编号
......
所带兵、粮、物品等数量
......
End Type
这一结构需要适应城池的所有月命令操作,只不过在某些命令(如耕作等)中,结构里的某些属性(如所带兵、粮等)为空即可。
同理,武将也应存在一个统一的月操作状态结构,在该结构中只要存在任务城池和任务类别属性即可满足楼主问题的需求,但设计该结构时则需要适应武将的所有其它月操作。

32

主题

1259

帖子

1351

积分

金牌会员

Rank: 6Rank: 6

积分
1351
发表于 2006-10-8 15:55:00 | 显示全部楼层

Re:问题

建立一个表,纪录XX操作XX。
操作的时候,插入一条XX操作XX的纪录,
操作完成后,删除这条纪录

每个对象如果有需要自己去查询这张表,就知道“正在操作”和“正在被操作”了!

73

主题

612

帖子

618

积分

高级会员

Rank: 4

积分
618
发表于 2006-10-9 16:08:00 | 显示全部楼层

Re: Re:问题

Devil: Re:问题

建立一个表,纪录XX操作XX。
操作的时候,插入一条XX操作XX的纪录,
操作完成后,删除这条纪录

每个对象如果有需要自己去查询这张表,就知道“正在操作”和“正在被操作”了!

[em20]

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-10-10 17:47:00 | 显示全部楼层

Re:问题

如果你的功能是==函数。那么好说。保证函数是不会重入的话,标记不标记问题不是很大吧?
如果功能是个所谓的一个状态,或者说是一组函数,并需要很长时间来操作的话。你就只能设置状态了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 14:02

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表