【转帖】红白机-光枪原理
nes吧
全部回复
仅看楼主
level 14
gomoao教授 楼主
转自haomarlin的原创
2011年12月02日 11点12分 1
level 14
gomoao教授 楼主
FC红白机光枪的工作原理很简单,这归功于FC游戏厂商的巧妙设计。
首先我们先来认识FC的光枪。图片就免了。
FC的光枪有三个关键部分:
第一个是枪头,它的内部有有感光芯片;
第二个是光枪上唯一的按钮,就是扳机,在游戏的过程中,瞄准的同时需要按下扳机进行射击。
第三个是接头,这个和2P手柄的位置是相同的。
在理解光枪工作原理之前,首先需要让大家了解到,红白机的手柄和光枪都是串行设备。撇开手柄不谈,光枪接口的7个口中,有两个口用来提供状态信息。这7个口的定义如下:
1 Out GND GND Ground
2 Out PORT0-CLK PORT1-CLK Joystick Clock (CPU Port Read)
3 Out OUT0 OUT0 Joystick Serial-Start
4 In PORT0-0 PORT1-0 Joystick Serial-Data
5 Out +5VDC +5VDC Supply
6 In PORT0-3 PORT1-3 Zapper Light
7 In PORT0-4 PORT1-4 Zapper Button

2011年12月02日 11点12分 3
level 14
gomoao教授 楼主

6
2011年12月02日 11点12分 5
level 14
gomoao教授 楼主
当玩家按下扳机,游戏画面会变黑,如图2所示。这个画面的切换比较快,大概在30ms左右。
这屏幕变黑的这段时间中,游戏可以检测光枪返回的光枪,看是否为弱。
之后,第一只鸭子的位置会用白色块显示,如图3所示,从图2到图3在30ms左右。
如果这个时候游戏发现检测到的光强很强,那就说明玩家击中这只鸭子了。
大概过50ms左右,画面会切换到图4,白色块显示在第二只鸭子的地方,如果游戏此时发现光强为强,那么就说明玩家击中第二只鸭子了。
再过50ms左右,游戏会返回到正常画面。以上就是光枪的工作过程了。

2011年12月02日 11点12分 6
level 14
gomoao教授 楼主
由于屏幕会一瞬间变黑,玩家还是可以感觉到的。
其他游戏的检测方式大体相同,当画面的可击中物体较多时,画面闪烁的延迟也会加大。
很多人可能也知道,在射击的时候突然将枪对准灯泡,可以让游戏百发百中……
2011年12月02日 11点12分 7
...
2013年06月16日 09点06分
level 1
呵呵!
2012年12月07日 02点12分 8
level 5
哇哇
2013年07月07日 00点07分 9
level 7
哈哈
2013年07月25日 23点07分 10
level 1
牛逼
2015年03月14日 09点03分 11
level 13
牛逼
别君去兮何时还,且放白鹿青崖间。
   --来自助手版贴吧客户端
2015年03月14日 09点03分 12
level 13
就是跟踪画面运动的物体吧
2015年03月16日 04点03分 13
1