Y Yves Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-01 #1 游戏程序一般有 己方和敌方 之分,这是否就用到了多线程呢?
Y Yves Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-05 #8 我到不这么觉得,很多战略游戏都是你在发展的同时,敌人也在发展, 这用单一线程实现么(配合do events—vb的语句 ?) 不知哪位高手肯不吝赐教,完整的讲讲: 这种游戏是否需要多线程——这是否是一种经典的做法? 小子愚钝,诸位多费心了
我到不这么觉得,很多战略游戏都是你在发展的同时,敌人也在发展, 这用单一线程实现么(配合do events—vb的语句 ?) 不知哪位高手肯不吝赐教,完整的讲讲: 这种游戏是否需要多线程——这是否是一种经典的做法? 小子愚钝,诸位多费心了
张 张无忌 Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-06 #9 游戏多线程同步太难,我打个比方,你用一个线程控制敌方才矿, 如果这个时候本方进攻,而且你的这个线程在计算最优路径,阻 塞在线程中,移动难免要出现问题,这样响应还击就有可能出现 问题。
T timerri Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-06 #11 不是多线程,用循环解决! 每次循环顺序计算所有单位的动作。这是最简单的同步方法。
Y Yves Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-07 #12 这样 啊! 不过 一般的delphi程序 好象是用 事件(events) 堆垒起来的,向timerri所说的 循环控制 好象无需响应事件(敌人有独立思考的能力,不能由你的动作,触发他的思考) 那这样的循环控制就要放到一个 main()(vb中有这样的函数,当程序执行时, 先执行该函数中的内容)中 统一调配,delphi有这样的函数么? 而且 我觉得 向timmeri所说 如果是一个复杂的游戏,等循环一周, 计算机开始处理我的动作时,是不是有点晚了?就没有其他办法了么?
这样 啊! 不过 一般的delphi程序 好象是用 事件(events) 堆垒起来的,向timerri所说的 循环控制 好象无需响应事件(敌人有独立思考的能力,不能由你的动作,触发他的思考) 那这样的循环控制就要放到一个 main()(vb中有这样的函数,当程序执行时, 先执行该函数中的内容)中 统一调配,delphi有这样的函数么? 而且 我觉得 向timmeri所说 如果是一个复杂的游戏,等循环一周, 计算机开始处理我的动作时,是不是有点晚了?就没有其他办法了么?
X xwings Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-07 #13 我想有一个线程负责处理用户输入。一个线程负责处理需要显示和更新的东西。 一个线程负责所有的AI和动作同步。这样就可以了。
Y Yves Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-07 #14 这样可以么? 显示 是 需要与 用户操作、AI动作 相协调的,如果使用多线程反倒协调不起来了(如张无忌所说), 现在有7个人参与讨论,分数不够分的,我想提高分数,怎么办呀? 而且也希望更多的人能更多的赐教,以便我可以进一步提高本题的分数。 谢谢了
这样可以么? 显示 是 需要与 用户操作、AI动作 相协调的,如果使用多线程反倒协调不起来了(如张无忌所说), 现在有7个人参与讨论,分数不够分的,我想提高分数,怎么办呀? 而且也希望更多的人能更多的赐教,以便我可以进一步提高本题的分数。 谢谢了
X xwings Unregistered / Unconfirmed GUEST, unregistred user! 2002-08-07 #15 显示需要协调的部分不多阿。只需要根据每个对象属性和当前屏幕位置画出就可以了。 不知道你有没有玩过星际。:) 当游戏系统很慢地时候,如果在等待网络上的另一个游戏者。这时候 显示还是很流畅的。卷屏也没有滞后。你的输入和鼠标操作也没有变慢。 而当你放Replay的时候如果把播放速度调的很高。就会发现游戏系统很快。这时候显示就有点滞后了。对象动作有点一跳跳的。 我觉得这些现象就说明我的猜测有一定根据。
显示需要协调的部分不多阿。只需要根据每个对象属性和当前屏幕位置画出就可以了。 不知道你有没有玩过星际。:) 当游戏系统很慢地时候,如果在等待网络上的另一个游戏者。这时候 显示还是很流畅的。卷屏也没有滞后。你的输入和鼠标操作也没有变慢。 而当你放Replay的时候如果把播放速度调的很高。就会发现游戏系统很快。这时候显示就有点滞后了。对象动作有点一跳跳的。 我觉得这些现象就说明我的猜测有一定根据。
A apexxx Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-28 #18 应该是用的判断吧,对每个线程在某种情况下执行某种操作,例如,在采矿的时候收到攻击 就自动反击,用的就是判断是否被攻击,若没有则继续采矿,反之则攻击,我想应该是用这样 的原理吧
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-10 #19 完全不需要用, 比如街机的CPS,MVS,PGM等机板使用68K CPU,是支持多线程的。