新年第一问,关于游戏同步的问题(顶者有分)(300分)

  • 主题发起人 主题发起人 dira
  • 开始时间 开始时间
D

dira

Unregistered / Unconfirmed
GUEST, unregistred user!
我一个游戏中处理了动作和语音,由于采用多线程处理,语音和动作是分开发送的,所以,会出现动作和语音不同步的情况,请问各位大侠有何解决办法,祝大家新年愉快!
 
本帖第一顶
 
对这个东西不熟,冒昧说两句
语音和动作在录制的时候频率应该是配套的,否则电脑怎么能自动去调控呢?
有一个时间在它们两个之间联系,这样就知道在某个声音处,找到相应的动作。
 
这两个数据包我是多线程分别发送的,如果一个数据包到了,另一个没到也很麻烦
 
给个建议,如果对动作和语音的同步要求很高,那么可以采用这两种方式试试:
1。在语音和动作数据内分别加入同步信号。
2。把动作和语音一并打包发送,收到后解包分离。
 
这个东西我不太了解,衷心希望你能快点解决!
 
帮顶!

╭=========================================╮

80G海量源代码,控件,书籍全免费狂下不停!

http://www.source520.com

╰=========================================╯
 
在游戏中处理音乐应该是由你定义的事件来控制吧,比如当你的某一个图形(按纽)按下,那么播放一个声音.不知道楼主是什么意思.
 
如果是这样到好了,只要消息到的时候播放一个声音就好了,现在是比如CS中我语音通知队友到A区,但有网络延时,等我到了A区了,声音才传到队友那里,我孤身一人岂不是黄了
 
谢谢UFO!的建议,我正在考虑这方面的结构
 
可以先做个缓存,提前接收数据包,如果动作和语音包有一个没接收到,就等待一下,接收到了再处理,这样应该没问题的
 
如果只是使用一个连接的话,建议把语音和动作合并打包,如果使用了两个或以上连接,或者两种或以上连接方式的话,建议在数据头加同步信号.
 
现在主要是采集是两个来源,声音和动作,同时打包有点问题;请问加同步信号是怎样的处理原理,能否叙述一二,再次感谢 !
 
对于多线程不同步是无法避免的!除非使用多个CPU。一个CPU一次只能处理一个事件!
就像在机器上进程过多后会感到卡机一样!就是这样产生的,因为CPU的频率有限,多了就不用说了吧!..................................
如果需要楼主说的那样CS的问题!你可以把那些特殊的文件分类,然后将起优先值设高!
那样CPU在处理是后根据优先值的高低安排处理!
 
帮顶!

╭=========================================╮

80G海量源代码,控件,书籍全免费狂下不停!

http://www.source520.com

╰=========================================╯
 
为什么你要发送动作和声音?如果要做成CS那样的游戏,你完全可以不用多线程,比如说你开了一枪,就只发送动作信号就可以(例如,AK47在地图位置A0010023开火3下,可翻译成FIRE/AK47/A0010023/3/Player1,当然CS中并不是我这么写的,我只是举例说一下),至于声音让接收到该信号的在线客户端自己处理就可以了,他们一接收到动作信号,相应就调用了对应的声音,这是封装在客户端中的。
 
同意楼上,如果上游戏的话可以把这些都封装到客户端里就好了,到时候只是发各指令本机上去执行响应的操作就ok了 !
 
多人接受答案了。
 
后退
顶部