《幸运智多星》节目控制软件的设计与实现
主控界面主要由三个部分组成,上部的三个显示区分别与三个选手的成绩显示屏相对应,即三个选手的成绩显示屏所显示的内容与这三个显示区的内容是完全一致,操作员对这三个显示区进行操作就可完成对三个选手成绩屏的操作。左下部的一个较大的显示区与大屏幕相对应,对这一部分的操作可完全反应到大屏幕上。使用大屏幕的操作都是通过对这一区域的操作来完成的。右下部为按钮区,大多数操作命令在这一区域完成。
三个选手的成绩显示屏及大屏幕主要是单纯的显示,且内容与上面介绍的几个区域完全一致,不再敷述。
系统配置界面主要有以下几个部分:
图 6 中主要用来配置系统中所需的各种图片,图片都存储在数据库中。
图 7 主要用来配置主要的系统参数,如"商标数设置"主要用来设置系统总的题目数量,这里的商标数指的是每一个选手成绩显示屏可显示的题目数,如图 6 中选的是"12个商标"则说明系统中国共产党有3X12=36个题目。"答错是否停一轮"用来设置当选手抢得答题权后,若答错了题目,是否要被剥夺下一轮的抢答权,以示惩罚。"显示地址设置"用来设定三个选手成绩屏和大屏幕的显示地址。"获胜商标号"用来设定每一轮中题目数量及位置。"是否使用选手屏幕"和"是否使用大屏幕"组合起来可完成对节目形式的选择,当前者为"是"、后者为"否"时,节目形式就是基本的抢答形式。当二者都是"是"时,则是在大屏幕的配合下的抢答形式。当前者是"否",后者为"是"时,则是单独使用大屏幕的节目形式。
五、部分功能实现方法
《幸运智多星》节目控制系统实现的关键技术之一是对多屏卡的操作。多屏卡在实际使用中类似于对一个有大分辨率的显卡的操作,例如,当设置分辩率为1024X768,采用6X1设置的6屏卡(即采用横向6个纵向1个设置的6屏卡)时,6屏卡的实际分辩率为6144X768,这样我们可以通不同的地址来访问不同的屏幕,如上例中,第一个屏幕地址为0至1024,而第二个屏幕地址为1024至2048…,以此类推。因此在实际实现过程中,对选手成绩屏和大屏的操作其实是两次写的过程,即:首先在控制计算机的相应显示区域显示想要显示的图片(第一次写)然后将该区域的内容拷贝到相应屏幕上(第二次写)。第二次写的过程之所以采用拷贝而不是直接写,是因为在Delphi中画布拷贝命令的刷新速度要远高于对图片的操作,从而避免屏幕的闪烁。但在进行画布拷贝命令时要注意该命令的执行一定要在控制计算机的图片操作完成之后有一个小的延迟,否则画布拷贝命令执行速度比图片操作命令要快,拷贝至屏幕上的图像有可能是进行图片操作前的内容。下面是一个例子。
procedure Main_FormFormShow(Sender: TObject);
begin
BackGround_Image.Picture.LoadFromFile('Game21\ BackGround.bmp');// 装载底图
Image1.Picture.LoadFromFile('Game21\g1.bmp');
Image2.Picture.LoadFromFile('Game21\g2.bmp');
Image3.Picture.LoadFromFile('Game21\g3.bmp');
Image4.Picture.LoadFromFile('Game21\g4.bmp');
Image5.Picture.LoadFromFile('Game21\g5.bmp');
Image6.Picture.LoadFromFile('Game21\g6.bmp');
Image7.Picture.LoadFromFile('Game21\g7.bmp');
Image8.Picture.LoadFromFile('Game21\g8.bmp');
Image9.Picture.LoadFromFile('Game21\g9.bmp');
Image10.Picture.LoadFromFile('Game21\g10.bmp');
Image11.Picture.LoadFromFile('Game21\g11.bmp');
Image12.Picture.LoadFromFile('Game21\g12.bmp');// 装载图片
Timer1.En