关于FC(红白机或8位)的射击类游戏的疑惑?

2024-12-01 03:32:44
推荐回答(1个)
回答1:

分类: 游戏 >> 射击游戏
问题描述:

在小时候,我有一台带枪的FC,在附送的卡带里面有一款游戏是射击罐头瓶子,就是我拿着枪,对着电视机的屏幕射击。请问这样的游戏它的原理是什么啊?难道里面有什么传感器吗~~?它是如何判断我的枪有没有瞄准目标啊?~~奇怪

解析:

呵呵,我当年也是Fc游戏狂人,记得第一次打通超级玛丽的时候极爽。。

这里有比较详细的解说,各位可以参考一下这位热心网友写的原理介绍。希望对有兴趣的朋友有帮助。

这是一个八位元时代就有的周边,可是很多人都不清楚它的运作原理。那就是「光线枪」。

自从VR COP上市以来,光线枪又受到大家的重视了。许多人都问一个问题,电视机没有感应器,那如何接受光线枪的讯号呢?

这个问题也曾经困扰着我,不过多亏VR COP发行之赐,我从一本日文杂志看到了枪的原理,才恍然大悟。原来接受讯号的是枪不是电视,所以玩光线枪的GAME时不必在电视上加装感应器。也因此就想写本文,以服务玩家。

以下以三点来说明光线枪的原理:

一、电视机的成像原理。

大家可能会奇怪,前面已经说了感应器不是电视而是枪,那为何要谈电视的成向原理呢?这个原因可大了,因为光线枪能知道要射击的目标的座标,全靠现行的电视(交错式萤幕)的特性而来。

大家都知道的一点,电视讯号是一条条的扫瞄线所组成的。以目前三台为例,三台的讯号是512条扫瞄线。那这512条线是如何来的?那是电台把讯号一条条的送过来(因握微波不可能送整个画面,就算它的频宽很宽那也只能提高资料量而已)而512条就是一个画面由512条线组成的。而每秒钟中电视要送出30张画面,也就是说电视的电子枪的频率是512*30/秒(这是三台的讯号)不过一般的电视都比这个数字大。如下图:

╭——————————————╮

│→→→→→→→→→→→→→→│

│→→→→→ │

│ │

│ │

│ │

│ │

│ │

╰——————————————╯

是由左向右,由上到下一条条的由电子枪送出来的。黑白电视只要送出亮度资料,而彩色电视还要送出三原色的的资料。而萤幕为何会亮,那是由电子枪送出的讯号打在营幕后的萤光材质上,萤光物质受到辐射线的照射,就会发光了!

由上面可以知道,宽萤幕和大尺寸电视为何比较贵了。因为电子枪振动的振幅比较大的缘故。而高画质电视更贵的原因就是因为振动数远高于一般电视的缘故。而利用这种特性,光线枪就能知道我们射击的目标的座标值。

二、光线枪如何知道我们射击那里?

这下到重点了。在光线枪里有个感应器,这个感应器只接收特定频率的光线(肉眼看不见的)而游乐器送讯号到电视时,就在每个dot后面加上一个dot的光线枪用的讯号。而光线枪里有个计时器,当每个画面第一点的讯号送出时(这个讯号由游乐器提供)计时器就开始计时,当感应器收到讯号时,计时器得到受信的时间,再由这时间就可算出座标了。(有点难吧!)如下图:

╭——————————————╮

│→→→→→→→→→→→→→→│

│→→→→→→→→→→→→→→│

│→→→→→→→→→→→→→→│

│→→→→→⊙ │

│ │

│ │

│ │

╰——————————————╯

讯号由左到右,由上到下发出时会用掉时间(虽然非常短)当枪对准⊙时,特殊频率的光由左上角出发当它到⊙时,感应器收到讯号计时器就把时间记下来,如此游乐器就能知道座标了。所以只要枪口指著萤幕,电脑就知道座标了。

而有人可能会奇怪,那萤幕的大小没影响吗?程式难道会因萤幕而修正吗?答案是不必,因为程式是根据扫瞄频率来算的。所以大小萤幕只牵涉到 dot和dot间的间距,和频率无关。而以上的动作向VRCOP每秒要计算30次。也因此枪里面的计时器越精确(最小时间单位月小)那枪的准确度越高。所以VR枪的台制品准确度极差(放在萤幕前也会打偏)就是因为计时器的IC不好的缘故。这就是VR枪原版的不便宜的缘故。

而我们扣扳机时枪为何知道打那里?那很简单。枪的扳机本身是个开关,当按下时,游乐器会送出另一个讯号(枪也能收的,我们会发现萤幕会闪一下)座标的算法还是和上面一样(其实对程式而言更简单,因为它只要算这一瞬间的资料就可以了)。

由以上的介绍,各位应该对光线枪有所了解了吧!

三、关于光线枪的问题。

?光线枪为何不能再投影电视和液晶电视上使用?

因为投影电视和液晶电视得成像原理,和一般电视不同。它们不是用扫瞄线成像的方式,所以光线枪无法计算座标,因此无法使用。(反正只要不是用映像管的电视都不能用啦!)

?为什么小于20吋的萤幕没办法用?

因为萤幕小于20吋时,由于dot和dot间的距离太近了,小于光线枪的误差值,所以它们虽然能用,但是误差会很大。(反正大家也不会拿14吋电视玩VR COP来折磨自己)
bbs.emumax/simple/index.php?t23620

===============

================

FC的光枪的原理

来源:levelup

和我们想象的不同,光线枪不会射出光线,只能接收光线。在接收到光线后,光线枪会把枪口对准点的信号传回给游戏机,对应的软件就会告诉主机枪口所瞄准的位置在哪里。

那么软件又是怎么测量位置的呢?如果你仔细观察的话,当按下扳机后,无论枪口是否对着屏幕,屏幕上总会有一道闪光,而这道由软件控制发出的白色帧就是光枪测位的关键。在此之前我们还有必要先来看一下隔行扫描电视机的成像方式:

在PAL\NTSC的CRT电视中,扫描线是影像生成的方式。以NTSC为例,每次影像扫描时,在六十分之一秒内并非从头到尾连续扫描525条扫描线,而是只扫描一半,也就是262.5线,剩下一半在另外一个六十分之一秒时扫描。第一次扫描时只由上而下水平扫描奇数线,第二次扫描时扫描偶数线。二次扫描所生成的图场(Field)就结合成一幅完整的图像帧(Frame)。由于扫描时是以奇数、偶数扫描线做交替隔行扫描,所以叫隔行扫描。

按下扳机后,游戏软件控制主机发送一个全白色的帧,正如前面提到的,电视机显示这个白色帧是需要从上到下,从左往右扫描的,所以从这一帧扫描第一个点开始,到枪口收到白色光(注:尽管枪口看上去较大,但真正能接受光的感光机构可接受范围很小,所以它只会对准屏幕上很小的一块范围,这个范围略大于两行扫描线距离,可以认为其对准的是一个“点”)这个时间差T(pos),就可以算出坐标位置,这里假定从屏幕到光线枪的光线传播时间为0。NTSC情况下一个隔行帧显示的时间是:0.0167秒 (60Hz),这里 为了方便大家理解计算过程,暂定理想状况:扫描线无消隐时间,帧无消隐时间,扫描线回扫时间为0,扫描线共480线(扫描线实际上是525条,但真正有成像能力的只有480线左右),水平点数为640。

所以每一行扫描线需要的扫描时间为 T(scanline)=0.0167/480,我们就可以计算出

垂直位置:

Y=Trunc(T(pos)/T(scanline))

水平位置:

X=(T(pos)-Y×T(scanline))/T(scanline)×640

如果把所有情况(扫描线消隐、回扫,有效扫描线等等)考虑到,计算过程要复杂很多,但是原理仍然基于上面de“理想状况”。

实际上,发送全白色帧之前,游戏机还会发射一帧全黑帧,这样可以去除游戏画面上高亮颜色的干扰。

简单的来说,光枪的工作原理就是:

抠下扳机――――线缆将信号传给主机――――软件命令电视机发出一个白色帧――――枪口将接受到的光信号传回给主机――――软件计算时间差从而算出位置――――命令电视机发出一个击中点――――如果刚好在目标上,那么恭喜,你击中了!

基于以上分析我们可以得出结论:

1,光枪对电视没有任何损害,因为它只接受光而非发射光。

2,光枪不能用在逐行电视上,因为逐行电视的成像原理和隔行电视完全不同,它是从屏幕图像第一条扫描线一直连续扫描到最后一条,而非先扫奇数条再扫描偶数条。当然更不能应用在加了电视卡的显示器以及液晶显示设备上了。实际上现在SEGA和NAMCO都已研制出对应逐行设备的光线枪系统,但由于造价昂贵,目前还不太可能出现在家用机上。

3,其他注意问题。a.光枪不能用在14寸以下的电视机上;b.对于某些老式电视机可能需要调低亮度和避开日光灯以提高定位精度;c.对于某些过扫描比例过大的电视机,边缘有可能射不到的情况是正常的,并非原装光枪的问题。

注:什么叫过扫描?一般来说电视机都会有5%左右的过扫描,以避免产生呼吸效应时(内部电压变化大时画面伸缩)露出难看的黑边和弯曲的边缘。在众多的CRT中,低档显示器的边缘几何变形要比高档显示器如SONY特丽珑要严重的多,这是因为控制几何变形需要精湛的制造技术,即使是SONY也不能做到100%垂直,这是CRT本身的缺点。电视机也一样,甚至要比显示器明显的多,某些厂商为了掩盖自身技术的缺陷和变形过大的观感,故意将过扫描做到10%的上限,使得显示面积和清晰度都有所下降,甚至有可能影响光枪的边缘定位。
geminight/BBS/dispbbs.asp?boardID=6&ID=1959