请选择 进入手机版 | 继续访问电脑版

红白机打枪游戏的原理是啥?

[复制链接]
hJwvM 发表于 2017-8-26 16:32:00 | 显示全部楼层 |阅读模式
红白机上的打鸭子,需要玩家拿着枪朝屏幕射击,然后可以射中鸭子,请问原理是啥?
回复

使用道具 举报

tNquvf 发表于 2017-8-26 16:32:00 | 显示全部楼层
开枪的瞬间,屏幕会迅速依次显示下面几个画面,然后恢复到游戏画面,整个过程约 0.1 秒,光枪会在这 0.1 秒的时间里通过其所瞄准的区域的亮度变化来判断命中与否。
938aa54a8d8f1081499fb3f0aefb2323_b.png (制图:haomarlin)(制图:haomarlin)

『光枪』也是串行设备,它的 7 个接口中,有两个口用来提供状态信息——
6 In PORT0-3 PORT1-3 Zapper Light
7 In PORT0-4 PORT1-4 Zapper Button

第 6 位表示光枪检测到的光的强弱。
第 7 位表示玩家是否扣下了扳机。

----------------------------

『光枪』大体分为三代,
第一代是 1984 任天堂的『nes Zapper』光枪(红白机);
第二代是 1993 年以后 Sfc 所采用的更为精确的扫描线侦测式光枪(隔行扫描电视机);
第三代是 2006 年以后任天堂在Wii上使用的红外线感应技术(液晶屏幕)。

题主问的红白机打鸭子游戏指的是第一代的 Zapper 光枪。我答得也比较简单,因为这时候的『光枪』原理确实很简单。而直到 1993 年以后的 SFC 才采用了更先进的技术来判断坐标落点,其原理是隔行扫描电视机成像时,图像是从上到下,从左往右扫描的,在第一个六十分之一秒内扫描整个屏幕的一半条(奇数行),在第二个六十分之一秒里扫描另一半(偶数行)。而『光枪』的枪口的可接受范围略大于两行扫描线距离。从而通过时间差来判断准确坐标。至于第三代任天堂Wii『光枪』则是透过屏幕上/下方额外装设的红外线感应条两端所发出的红外线来判定坐标的。

最后,大家可能有一个误区,其实所谓的『光枪』并非是从枪口发射光线信号对准屏幕,恰恰相反,任天堂的"NES Zapper"光枪及同类产品的枪口其实只是一个接收装置(垃圾摄像头)
8787f05a9763cb140836023aff184f1a_b.jpg
资料参考:NES Zapper

PS:其实打鸭子游戏是两个人玩的,你基友打手枪的时候,你能用手柄来控制鸭子……


-----------------------------


答评论:暗光
原来可以控制鸭子啊! 还有,请问如果同时有2只以上鸭子在飞如何控制呢?


回答:
这游戏共有三种模式:【1只鸭】、【2只鸭】、【打飞碟】,只有【1只鸭】模式可以控制鸭子飞,控制的方式是使用手柄的上、下、左、右四个方向键。
回复

使用道具 举报

xO3 发表于 2017-8-26 16:32:00 | 显示全部楼层
如果弄个灯泡给光枪打光,估计是怎么打都能命中吧,呵呵...
回复

使用道具 举报

Ydp 发表于 2017-8-26 16:32:00 | 显示全部楼层
枪是个摄像头,开枪的时候检查摄像头中心有没有一个白色的东东,有就给游戏主机发信号“打中了!”。 这个白色的东东出现的时间非常短,肉眼轻易看不到。

-----------------------------------------------------------------
题外话,《千本樱》歌词里就有“光线銃”,想想这个歌的含义吧。
回复

使用道具 举报

pZiB4uSu 发表于 2017-8-26 16:32:00 | 显示全部楼层
我本人自己做实验研究过这个问题。

先直接说结论。其实很简单。
在玩家按下扳机的时候,注意观察会发现屏幕上的鸭子会整个被白色的实心矩形包围。这个矩形的亮度是非常高的。
像很多答案里说的,光枪里面就是一个廉价摄像头(其实我认为就是个光亮传感器,连摄像头级别都不到),可以检测到枪口所对的区域的亮度。
如果枪口刚好指向了鸭子(此时已经是白色矩形),会得到很高的亮度值,于是就判定打中。否则,就是没中。

有如下实际经历可以支持我上面的答案。
第一个是小的时候,不是每家都有游戏机,有些有游戏机的人会开游戏厅,收钱让孩子们玩游戏。打鸭子这个一般是交一定数额的钱可以玩一次的,如果能打赢就继续,打不到就结束。
有无良商人把电视亮度和对比度调低,导致命中率几乎为零。我在那里看了好多人来玩,而且确定其中一定有已经命中的,但是无一人被判为命中。我也是从那个时候开始研究这个问题的。(我小的时候就喜欢看别人玩游戏,从来不自己掏钱玩。)
第二个是很多年后,自己有了游戏机后实际自己做的实验。用枪直接顶在电视屏幕上(由于距离近,亮度总是超过光枪的检测阈值),或者前方放一个手电筒照亮,不论枪口指向哪里,都可以保证100%的命中率。

由于以上两个实验事实,很不幸,我无法支持貌似正确的 @梅花弄 的答案。不过还是感谢他告诉我游戏里可以控制鸭子。(上哪找一台机器试试呢……)
回复

使用道具 举报

9gKi 发表于 2017-8-26 16:32:00 | 显示全部楼层
梅花弄说的是对的,枪实质是一个超级烂的摄像头,开枪时主机收到信号会让屏幕变成纯黑色底,目标是白块
回复

使用道具 举报

Lwgpz 发表于 2017-8-26 16:32:00 | 显示全部楼层
我是勤劳的搬运工啦

这是一个八位元时代就有的周边,可是很多人都不清楚它的运作原理。那就是「光线枪」。
  自从VR COP上市以来,光线枪又受到大家的重视了。许多人都问一个问题,电视机没有感应器,那如何接受光线枪的讯号呢?
  这个问题也曾经困扰著我,不过多亏VR COP发行之赐,我从一本日文杂志看到了枪的原理,才恍然大悟。原来接受讯号的是枪不是电视,所以玩光线枪的GAME时不必在电视上加装感应器。也因此就想写本文,以服务玩家。
  以下以三点来说明光线枪的原理:

  一、电视机的成像原理。
  大家可能会奇怪,前面已经说了感应器不是电视而是枪,那为何要谈电视的成向原理呢?这个原因可大了,因为光线枪能知道要射击的目标的座标,全靠现行的电视(交错式萤幕)的特性而来。
  大家都知道的一点,电视讯号是一条条的扫瞄线所组成的。以目前三台为例,三台的讯号是512条扫瞄线。那这512条线是如何来的?那是电台把讯号一条条的送过来(因握微波不可能送整个画面,就算它的频宽很宽那也只能提高资料量而已)而512条就是一个画面由512条线组成的。而每秒钟中电视要送出30张画面,也就是说电视的电子枪的频率是512*30/秒(这是三台的讯号)不过一般的电视都比这个数字大。如下图:

  ╭——————————————╮
  │→→→→→→→→→→→→→→│
  │→→→→→                               │
  │                                            │
  │                                            │
  │                                            │
  │                                            │
  │                                            │
  ╰——————————————╯

  它是由左向右,由上到下一条条的由电子枪送出来的。黑白电视只要送出亮度资料,而彩色电视还要送出三原色的的资料。而萤幕为何会亮,那是由电子枪送出的讯号打在营幕后的萤光材质上,萤光物质受到辐射线的照射,就会发光了!
  由上面可以知道,宽萤幕和大尺寸电视为何比较贵了。因为电子枪振动的振幅比较大的缘故。而高画质电视更贵的原因就是因为振动数远高於一般电视的缘故。而利用这种特性,光线枪就能知道我们射击的目标的座标值。

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

  ╭——————————————╮
  │→→→→→→→→→→→→→→│
  │→→→→→→→→→→→→→→│
  │→→→→→→→→→→→→→→│
  │→→→→→⊙                             │
  │                                            │
  │                                            │
  │                                            │
  ╰——————————————╯

  讯号由左到右,由上到下发出时会用掉时间(虽然非常短)当枪对准⊙时,特殊频率的光由左上角出发当它到⊙时,感应器收到讯号计时器就把时间记下来,如此游乐器就能知道座标了。所以只要枪口指著萤幕,电脑就知道座标了。
  而有人可能会奇怪,那萤幕的大小没影响吗?程式难道会因萤幕而修正吗?答案是不必,因为程式是根据扫瞄频率来算的。所以大小萤幕只牵涉到 dot和dot间的间距,和频率无关。而以上的动作向VRCOP每秒要计算30次。也因此枪里面的计时器越精确(最小时间单位月小)那枪的准确度越高。所以VR枪的台制品准确度极差(放在萤幕前也会打偏)就是因为计时器的IC不好的缘故。这就是VR枪原版的不便宜的缘故。
  而我们扣扳机时枪为何知道打那里?那很简单。枪的扳机本身是个开关,当按下时,游乐器会送出另一个讯号(枪也能收的,我们会发现萤幕会闪一下)座标的算法还是和上面一样(其实对程式而言更简单,因为它只要算这一瞬间的资料就可以了)。
  由以上的介绍,各位应该对光线枪有所了解了吧!

  三、关於光线枪的问题。
  光线枪为何不能再投影电视和液晶电视上使用?
  因为投影电视和液晶电视得成像原理,和一般电视不同。它们不是用扫瞄线成像的方式,所以光线枪无法计算座标,因此无法使用。
回复

使用道具 举报

bZWoC 发表于 2017-8-26 16:32:00 | 显示全部楼层
你们没有人发现这游戏有个bug么…拿着光枪对着屏幕下方那一排白色的小鸭子图标,一样可以把鸭子打下来……现在终于明白了,因为,那边其实一直是白色的吧……反正,靠着这个发现,无聊的刷了一下午百发百中的分,然后再也不玩了……
回复

使用道具 举报

IFZ 发表于 2017-8-26 16:32:00 | 显示全部楼层
光枪是接收装置,不是发射装置。
第一代光枪通过是否接受光强信号实现击中判定。
当目标出现的时候,屏幕会变黑,只留下目标白块。
扣下扳机时进行逻辑判断。
回复

使用道具 举报

Na4G 发表于 2017-8-26 16:32:00 | 显示全部楼层
怪不得当初这游戏怎么按都没反应…原来是因为我拿的是游戏机把子…
回复

使用道具 举报

友情链接

QQ|Archiver|手机版|小黑屋|fc下载站 ( 豫ICP备14028285号-1

GMT+8, 2019-7-20 00:54 , Processed in 0.215962 second(s), 32 queries .

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