小霸王游戏机里面的射击游戏是怎么实现的?

小时候在小霸王上面有个打猎的游戏,一只鸭子从空中飞过,玩家扣动扳机就可以把它打下来。
那时候的外设没有摄像头红外线之类的东西,游戏程序是怎么判定我打中没打中的?

我搜索过答案http://www.alibado.com/exp/detail-w645885-e61867-p1.htm,不过看不太懂。求高人详细解释一下

另一种解释http://iask.sina.com.cn/b/5738788.html

哪一种是对的?

推荐  (0) | 17人关注关注
17个答案
12 0

2xi设计师、思想家、煽动家

2012-12-10 15:52

眼力不够,仔细看,你按枪扳机的一瞬间屏幕会变成黑底+一个白色方框(打野鸭游戏)光枪只要看你对的部分是不是白色就行,估计就几帧的速度。

6 0

WhiteFox身为文科生的围观群众一枚

2012-12-11 11:22

同学们仔细看第一个链接回答问题的内容啊……
第一个回答的内容根本说的就不是小霸王好么!那个解释的是SS上发布的游戏VR警察,所使用的外设是3D光线枪(二代),已经比小霸王上打鸭子的光线枪进化很多了好么!
看到说要用20吋以上屏幕我就觉得不对了,FC时代用14吋屏玩打鸭子的多得很,哪有这么奢侈的要求……

如果只说FC打鸭子游戏的话

FC主机上有一个复位开关、1个电源开关、1个游戏卡插槽、2个带有十字方向键的2键手柄(游戏控制器),主手柄上有“选择”和“开始”按钮。主机背面有电源接口、RF射频输出接口、视频图像输出接口、音频输出接口。前面还有【一个】扩展端口,用于连接光线枪、附加连发手柄等外部设备。
也就是说打鸭子这游戏只能一个人玩,不能同时支持两把光枪……

原理第二个链接是对的
用图说话,模拟器里自带截图功能不能记录控制器光标位置,但只要知道色块是扣下扳机打击瞬间切换的屏幕图像就行了

关于有人疑问两只鸭子怎么判断打的是哪一只的问题……两只鸭子是有前后遮挡顺序的啊亲,前面那只会先被击中……

17 12

Albert_JIAO电子工程专业学生,科学松鼠会成员

2012-04-20 09:35

简单的说小霸王的那支枪的枪口相当于一个只能看正前方光线的小孔,把这支枪正对准屏幕之后,这支枪能探测到电视屏幕上正对着的那一块区域的光线(你可以用做一个很细的纸筒,然后通过纸筒单眼看,大概就是这个效果)。
接下来,电视这一端,虽然我们看到的画面是连续的,但实际上是24张画面在一秒内快速闪过,让你的眼睛产生错觉而成的。对于每一整张画面,电视屏幕也并不是瞬时间全显示出来,而是从上到下,从左到右,一个一个点逐一显示的(会有很多个点)。小霸王枪只能探测到屏幕上的一小块区域的那些点,在电视屏幕每张画面轮到显示这几个点的时候,小霸王枪探测器就会作出反应,根据反应的时间,可以算出此时小霸王枪瞄准的位置是在电视屏幕上从左面数第几个点,从上面数第几个点,位置就确定了,从而判断打没打中。

1 0

fuzzy无论如何,还是对C++最专业

2012-04-20 14:49
支持者: Mr.Ozone

第二个我能够理解,与我所知道的电视信号原理符合,第一个没看懂。
电视是通过电子枪发射电子击中荧幕发光的,不可能存在“特定频率”的光线。
电视信号每秒50次刷新,但每次只有隔行的半幅画面,加起来实际只有25幅画面,因为视觉暂留现象而形成连续的视觉。把其中一幅或几幅画面替换为完全不同的内容而让人眼没有明显感觉是可以的。
电脑显示器和电视不一样,逐行扫描、刷新率、分辨率都可调。
我做过给电视信号附加内容的东西,电路加单片机程序,类似于增加字幕。做好信号同步、算好精确时间就可以输出稳定的文字。

1 0
支持者: MQQ

正解应该是第二个. 第一种办法虽然似乎理论上可行, 但是实际精度恐怕不够, 何况电视还有隔行扫描和逐行扫描之分. 有人质疑第二种实现方式怎样分辨多个目标, 其实很简单: 在有N个目标的情况下, 电视连续显示N个帧, 每帧只点亮一个目标. 这样游戏机只要检测在第几个帧时枪接收到了强光, 就能推测出击中哪个目标了. 两把枪也没有问题.

参考资料
http://www.todayifoundout.com/index.php/2010/12/how-the-gun-on-the-original-duck-hunt-game-worked/

另外用PC的NES模拟器玩打鸭子的时候, 能明显地观测到屏幕变黑+鸭子变白的现象

0 0

第二种解释是对的,就是对目标光斑进行了低速调制,然后枪里对这种调制进行探测

0 0

halalia自认为保守的万金油

2012-06-12 23:57

以前的“光电笔”大概也是类似原理么?上述解释只能适用于特定对象的射击,要是多个目标的选择怎么做呢?
好像美国的预警机还在用光电笔来调度飞机

0 0

scythe7三只脚的猫

2012-12-10 12:32

第二种就只能单人玩,有两把枪的时候你就很难判断谁打中哪个目标了

所以在这两个答案中,显然第一种靠谱些

0 0

你开枪的时候,屏幕上的有效目标就会变亮,这个光线被枪感受到了,就判断命中,否则就是打不中.但不知道如何判断屏幕上多个目标中的某一个呢?

0 0

这个应该属于最早的感应技术吧?第一种是正解,根据帧数来测定投射过去的光线是否命中目标。二把枪是不大能判断是哪一把打中的,只有两个结果,要么都打中了,要么只有一把枪打中了。要么都没有打中。

0 0

@2xi @forkburn 等的描述才是对的。事实上按扳机的瞬间你仔细看画面,可以清楚地看到屏幕变为黑底白色块。

看到很多人问:
两个物体怎么办?可以把代表两个物体的白色块的帧错开,用时间差来判断到底是哪个。所以两三个还行,再多就有困难了。那个时代没有屏幕上有几十个目标的游戏...
两把枪怎么办?我只见过一把枪的游戏机...猜想两把枪也可以做,因为屏幕切换是由扣动扳机来激发的,只要两把枪分别按下扳机的时间差大于几帧的时间差就不会误判了。

这个一直是我个人非常欣赏的工业设计。如今说到屏幕定位大家的第一反应都是那些复杂的系统。实际上在那个遥远的年代...虽然不是很精确的方法,可这个系统如此简单,以至于从我家以前的12寸黑白电视机一直到现在的大液晶竟然都能运作!

0 0

提问

那么相同的理论应该在液晶电视等上面也可以成立,但是为什么南梦宫的"危机"系列在新的电视上面采用了新型的光枪,需要在电视的边角上面加上定位器才可以?

http://item.taobao.com/item.htm?spm=a230r.1.10.39.S5ZWE9&id=13354036647

注意下面演示图上需要安装定位块

0 0

我想真人CS也是一样的原理吧
只不过是把电视上很多点变成了几个点

0 0

鱼大雷邪恶之王 大毒舌 欢乐

2012-12-12 00:17

我小学就改制过百发百中枪。。。

0 0

tensorspace能源工程硕士,油藏工程师

2012-12-12 10:56

喷神早就分析过这些玩意的原理了。打鸭子用的是颜色块,后来有第三方开发的最原始的感应游戏操作

0 0

我理解的是扣动扳机后屏幕从上到下 从左到右 开始变色 依靠时间推算出坐标。比如从上到下分成五段,依次是13579,从左到右是2468 10,然后同时进行从上到下 从左到右的变色,假如每秒依次走1段,一共走 10秒,枪口只能对准识别电视的一小部分,偶说是左右坐标,奇数是上下坐标,按时间差算出坐标自然就能实现了。比如1秒的时候识别一次从上到下的第一横行,2秒的时候又识别一次从左到右的第二竖行,就能识别是1/2坐标,也就是电视的左上角。

0 1

支持第一种解释,应该是需要知道坐标的.
第二种解释单纯用光线强度作判断,太容易出现错误,而且有2只以上鸭子的时候怎么知道打中的到底是哪一只?

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2018] 6282-492号    新出发京零字第朝200003号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区