请问,过去游戏机的**,是通过什么技术实现的?

[复制链接]
5170|14
 楼主| leafstream 发表于 2008-1-24 09:30 | 显示全部楼层 |阅读模式
很早以前,无论是任天堂还是小霸王的游戏机,8位红白机,都带一个打猎的游戏,有个手枪,突然想起它,它是怎么实现定位的呢?<br />怎么判定瞄准没瞄准的呢?
PowerAnts 发表于 2008-1-24 09:34 | 显示全部楼层

很久以前思考过这个问题

应该是目标发出特定的信号(频率、占空比?),枪内就一个光电管而已
古道热肠 发表于 2008-1-24 11:06 | 显示全部楼层

显示屏幕上的内容是受控的

构成闭环控制系统了。
sz_kd 发表于 2008-1-24 11:13 | 显示全部楼层

应该是激光吧

  
xwj 发表于 2008-1-24 11:18 | 显示全部楼层

2、3楼正解,枪内就一个光电管而已

以前讨论过的,LZ去搜索下旧帖吧
mohanwei 发表于 2008-1-24 11:53 | 显示全部楼层

光电管

  
dai_weis 发表于 2008-1-24 11:56 | 显示全部楼层

据听说是这样

枪内一个光电管,发射时,屏幕配合,产生一个黑屏,目标产生一个白块
eelover 发表于 2008-1-24 14:56 | 显示全部楼层

找到的,一起学习下

和我们想象的不同,光线枪不会射出光线,只能接收光线。在接收到光线后,光线枪会把枪口对准点的信号传回给游戏机,对应的软件就会告诉主机枪口所瞄准的位置在哪里。&nbsp;<br /><br />那么软件又是怎么测量位置的呢?如果你仔细观察的话,当按下扳机后,无论枪口是否对着屏幕,屏幕上总会有一道闪光,而这道由软件控制发出的白色帧就是光枪测位的关键。在此之前我们还有必要先来看一下隔行扫描电视机的成像方式:&nbsp;<br /><br />在PALNTSC的CRT电视中,扫描线是影像生成的方式。以NTSC为例,每次影像扫描时,在六十分之一秒内并非从头到尾连续扫描525条扫描线,而是只扫描一半,也就是262.5线,剩下一半在另外一个六十分之一秒时扫描。第一次扫描时只由上而下水平扫描奇数线,第二次扫描时扫描偶数线。二次扫描所生成的图场(Field)就结合成一幅完整的图像帧(Frame)。由于扫描时是以奇数、偶数扫描线做交替隔行扫描,所以叫隔行扫描。&nbsp;<br />按下扳机后,游戏软件控制主机发送一个全白色的帧,正如前面提到的,电视机显示这个白色帧是需要从上到下,从左往右扫描的,所以从这一帧扫描第一个点开始,到枪口收到白色光(注:尽管枪口看上去较大,但真正能接受光的感光机构可接受范围很小,所以它只会对准屏幕上很小的一块范围,这个范围略大于两行扫描线距离,可以认为其对准的是一个“点”)这个时间差T(pos),就可以算出坐标位置,这里假定从屏幕到光线枪的光线传播时间为0。NTSC情况下一个隔行帧显示的时间是:0.0167秒&nbsp;(60Hz),这里&nbsp;为了方便大家理解计算过程,暂定理想状况:扫描线无消隐时间,帧无消隐时间,扫描线回扫时间为0,扫描线共480线(扫描线实际上是525条,但真正有成像能力的只有480线左右),水平点数为640。&nbsp;<br /><br />所以每一行扫描线需要的扫描时间为&nbsp;T(scanline)=0.0167/480,我们就可以计算出&nbsp;<br />垂直位置:&nbsp;<br />Y=Trunc(T(pos)/T(scanline))&nbsp;<br />水平位置:&nbsp;<br />X=(T(pos)-Y×T(scanline))/T(scanline)×640&nbsp;<br />如果把所有情况(扫描线消隐、回扫,有效扫描线等等)考虑到,计算过程要复杂很多,但是原理仍然基于上面de“理想状况”。&nbsp;<br />实际上,发送全白色帧之前,游戏机还会发射一帧全黑帧,这样可以去除游戏画面上高亮颜色的干扰。&nbsp;<br /><br />简单的来说,光枪的工作原理就是:&nbsp;<br />抠下扳机――――线缆将信号传给主机――――软件命令电视机发出一个白色帧――――枪口将接受到的光信号传回给主机――――软件计算时间差从而算出位置――――命令电视机发出一个击中点――――如果刚好在目标上,那么恭喜,你击中了!&nbsp;<br /><br />基于以上分析我们可以得出结论:&nbsp;<br />1,光枪对电视没有任何损害,因为它只接受光而非发射光。&nbsp;<br />2,光枪不能用在逐行电视上,因为逐行电视的成像原理和隔行电视完全不同,它是从屏幕图像第一条扫描线一直连续扫描到最后一条,而非先扫奇数条再扫描偶数条。当然更不能应用在加了电视卡的显示器以及液晶显示设备上了。实际上现在SEGA和NAMCO都已研制出对应逐行设备的光线枪系统,但由于造价昂贵,目前还不太可能出现在家用机上。&nbsp;<br />3,其他注意问题。a.光枪不能用在14寸以下的电视机上;b.对于某些老式电视机可能需要调低亮度和避开日光灯以提高定位精度;c.对于某些过扫描比例过大的电视机,边缘有可能射不到的情况是正常的,并非原装光枪的问题。&nbsp;<br /><br />注:什么叫过扫描?一般来说电视机都会有5%左右的过扫描,以避免产生呼吸效应时(内部电压变化大时画面伸缩)露出难看的黑边和弯曲的边缘。在众多的CRT中,低档显示器的边缘几何变形要比高档显示器如SONY特丽珑要严重的多,这是因为控制几何变形需要精湛的制造技术,即使是SONY也不能做到100%垂直,这是CRT本身的缺点。电视机也一样,甚至要比显示器明显的多,某些厂商为了掩盖自身技术的缺陷和变形过大的观感,故意将过扫描做到10%的上限,使得显示面积和清晰度都有所下降,甚至有可能影响光枪的边缘定位。
杨真人 发表于 2008-1-25 00:52 | 显示全部楼层

这种"激光枪"是从老式定点设备——光笔 变形而来的。

这种&quot;激光枪&quot;是从老式定点设备——光笔&nbsp;变形而来的。<br />不同的是这个枪可以远离荧光屏,而光笔必须贴近(不必接触)荧光屏。<br />是不是隔行扫描并不是关键。<br /><br />打飞碟。移动的“物体”在扳机扣动时变成一个高亮度的白色光斑。当感光枪的感光轴线刚好落在这个光斑的位置时,枪内的感光器能输出一个有效的开关信号给主机。这个信号跟扳机开关信号进行与操作,判断是否命中。<br />扳机扣下AND光斑对准=命中<br />严格一点的判断方法是增加坐标锁存。通过计算扣下扳机时感光枪对准画面哪一点的坐标,用锁存得到的坐标与“物体”坐标比较,在一定范围内算命中。这个判断方法技术难度比前一个高,游戏机不常采用。<br />红白机用的是前一种判断方法。所以在扣下扳机的一刹那,屏幕上只有那个光斑,其他是漆黑。这样只需要比较1个逻辑状态而无须计算坐标,节约CPU时间。这样有一个弊病:当感光电路(故障或人为的)一直输出有效信号时,就是把枪口堵上,随便扣扳机也能百发百中。有兴趣的朋友不妨验证一下。
 楼主| leafstream 发表于 2008-1-25 08:48 | 显示全部楼层

原来如此,很强大。

感谢楼上两篇**,让我终于知道是怎么回事了。<br />个人认为这种技术在当时应该算是创新应用了吧。很好,很强大。呵呵
xwj 发表于 2008-1-25 08:54 | 显示全部楼层

9楼说的都是光笔工作原理,TVGame可没那么复杂,如10楼所说

因为电视游戏机的光线枪是接的手柄接口,而TVGame的手柄是基于并行口转串行移位寄存器(如CD4021)设计的,速度比较慢,根本不可能用它来检测、输入视频信号<br /><br />因此TVGame不可能用那么复杂的方法,只能用简单的方法,<br />以打野鸭子游戏为例,TVGame原理如下:<br />主机收到你扣动枪扳机的信号时,让游戏画面上的鸭子位置显示一个与鸭子一样大小的亮块,画面的其余部分全黑。这时,主机也在采集枪中光电管的信号。<br />如果你的枪这时正好瞄准在目标亮块(鸭子位置)上,枪上的聚光镜就会把亮块的光投向枪内的光电管,于是光电管的感光信号告诉主机:你打中了!<br /><br />顺便向各位公开一个小密诀:如何在玩打鸭子时做到百发百中无一失误?只要把枪口指向明亮的天空,开枪...&nbsp;<br />--当然,好的程序是能排除这种全中的可能的,只要多闪几次就可以准确判断了<br />呵呵<br /><br /><br />那些用光线枪玩的街机游戏也是一样的原理:目标闪亮<br />但由于游戏难度高些,为了区别多个目标,每个目标是分时闪亮的.<br /><br />
pk.kong 发表于 2008-1-25 08:55 | 显示全部楼层

貌似简单的东西,里面学问真不少。谢谢lz。

  
110xia 发表于 2008-1-25 12:56 | 显示全部楼层

学习了

  
ijk 发表于 2008-1-25 13:21 | 显示全部楼层

很有意思

以前自己空想,还真的想不明白
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

26

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部