“ronwwger”通过精心收集,向本站投稿了7篇用Visual Basic自编小游戏VB,下面是小编精心整理后的用Visual Basic自编小游戏VB,仅供参考,大家一起来看看吧。

篇1:用Visual Basic自编小游戏VB
开始学 vb 时,并不知道vb可以做出动画,后来知道通过自编的子函数delay(c的库函数中的该函数)和cls可以做出许多动画,但有一个缺点就是太耗内存,就我个人认为构思应该比编程重要,因为一旦有了一个很好的构思剩下的问题都是技术问题, 而我就是喜欢发现新的问
开始学vb时,并不知道vb可以做出动画,后来知道通过自编的子函数delay(c的库函数中的该函数)和cls可以做出许多动画,但有一个缺点就是太耗内存,就我个人认为构思应该比编程重要,因为一旦有了一个很好的构思剩下的问题都是技术问题,而我就是喜欢发现新的问题然后再想方设法解决它,通过发现问题和解决问题我可以学到许多很有用的知识和技巧,好了,现在有了一个好的构思就开始进入程序的编制。
第一步,要做成这个游戏的话必须能使小球有一个判断性的运动,然而如何处理小球的运动呢,很显然delay&cls的方法不再适用,因为整个程序运行时不停的清屏效果将很差,所以我想到了用shape控件来替代用circle命令画的小球,接着要使小球运动起来,这个问题很简单,因为shape控件有left和top的属性,可以通过对这两个属性的控制可以很轻松的解决小球运动问题。
第二步,将对小球进行角度控制,角度可以通过shape的属性left和top来反映,通过timer控件使小球的left和top值不断加上一个值或减去一个值,小球的left和top同时改变之后就可以对小球的角度进行控制,
到这里已经可以使小球运动起来,接下来的问题就是使小球能进行判断性运动。
第三步,可以这样对小球进行判断性控制,当小球的left大于窗体的scaleleft时小球的left改变成减去一个值,以此类推,小球的高度也可以进行类似的控制,现在已经很方便的对小球进行判断性运动,到这一步程序已经算是完成了一半。
第四步,既然小球可以自由的运动了,那就可以产生这样一个想法,当小球的top和left的砖块的top和left值接近到一定的范围的条件成立时使砖块的visible为false,然后小球的top和left加上接触前相应相反的值,就可以使砖块消失同时小球改变运动轨迹,这一步的实现需要解决很多技术性问题,可以在form的load事件里定义两个变量Dwd和Dhd以及两个Boolean量为Dw和Dh,通过Dwd和Dhd来控制小球向左和向上运动,当小球和窗体的边界或和砖块的的边界接触时使Dw和Dh的值进行相应的变化,通过对该两个值的控制可以使小球进行合乎反弹角度的运动,现在程序已经初步成型。
第五步,要做成这样的一个游戏,必须有一个良好的用户界面,为了使小球能接受用户的控制,我在窗体的下边界放置了一个命令按钮,该命令按钮可以通过方向键来控制,然后再加上一些判断语句使得小球command接触时产生相应的运动,这样一个用户界面就解决了。
第六步,现在只剩下程序的最后一步,就是生成砖块的排列,砖块可以用命令按钮来替代,然后用循环语句将设置好的command控件数组在程序运行时加载进来,好了,现在已经一切完成.
原文转自:www.ltesting.net
篇2:用VisualBasic制作半透明窗体VB
用VisualBasic制作半透明窗体 函数SetLayeredWindowAttributes 使用这个函数,可以轻松的实现半透明窗体,按照微软的要求,透明窗体窗体在创建时应使用WS_EX_LAYERED参数(用CreateWindowEx),或者在创建后设置该参数(用SetWindowLong),我选用后者。全部
用VisualBasic制作半透明窗体
函数SetLayeredWindowAttributes
使用这个函数,可以轻松的实现半透明窗体。按照微软的要求,透明窗体窗体在创建时应使用WS_EX_LAYERED参数(用CreateWindowEx),或者在创建后设置该参数(用SetWindowLong),我选用后者。全部函数、常量声明如下:
Private Declare Function GetWindowLong Lib “user32” Alias “GetWindowLongA” (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib “user32” Alias “SetWindowLongA” (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib “user32” (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
其中hwnd是透明窗体的句柄,crKey为颜色值,bAlpha是透明度,取值范围是[0,255],dwFlags是透明方式,可以取两个值:当取值为LWA_ALPHA时,crKey参数无效,bAlpha参数有效;当取值为LWA_COLORKEY时,bAlpha参数有效而窗体中的所有颜色为crKey的地方将变为透明--这个功能很有用:我们不必再为建立不规则形状的窗体而调用一大堆区域分析、创建、合并函数了,只需指定透明处的颜色值即可,哈哈哈哈!请看具体代码,
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE. = (-20)
Private Const LWA_ALPHA = &H2
Private Const LWA_COLORKEY = &H1
代码一:一个半透明窗体
Private Sub Form_Load
Dim rtn As Long
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, 0, 200, LWA_ALPHA
End Sub
代码二:形状不规则的窗体
Private Sub Form_Load()
Dim rtn As Long
BorderStyler=0
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, &HFF0000, 0, LWA_COLORKEY ’将扣去窗口中的蓝色
End Sub
原文转自:www.ltesting.net

篇3:用VB实现彩蝶飞舞VB
用 VB 实现彩蝶飞舞 -------------------------------------------------------------------------------- VB已从1.0版本发展到了6.0版本,其功能越来越完备、强大,不仅提供了轻松有趣的编程环境,而且控件技术的使用更是锦上添花,因此,在全世界
用VB实现彩蝶飞舞
--------------------------------------------------------------------------------
VB已从1.0版本发展到了6.0版本,其功能越来越完备、强大,不仅提供了轻松有趣的编程环境,而且控件技术的使用更是锦上添花。因此,在全世界范围内特别是在我国VB应用非常广泛。本文通过两幅蝴蝶图片的动画设计,来说明在VB5.0中通过使用控件和添加少量代码就能实现复杂的功能。
?界面的设计
?在窗体Form1上,放置三个图像框控件(Image1、Image2、Image3)、两个定时器控件(Ti mer1、Ti mer2)和一个命令按钮(Command1)。其中图像框Image1及Image2用来存储两幅图片,图像框Image3用来交替显示两幅图片;定时器Ti mer1用来控制两幅图片显示间隔时间,定时器Ti mer2用来控制图片框Im―age3向右移动间隔时间;命令按钮Com―mand1用来控制动画的开始。各控件属性设置如表一。?两幅蝴蝶图片文件Bfly1.bmp 和Bfly2.bmp可在VB\Samples\Pguide\VCR 子目录下找到,可将其复制到VB目录下。窗体界面布置如图一。
?为各控件添加代码?
1、双击Ti mer1后,在Pri―
vate Sub Ti mer1_Ti mer和End
Sub 两行间添加如下代码,以实现两幅图片交替显示:?
Static flag?
Ifflag =0Then?
Image3.Picture =Image1.Picture?
flag =1?
Else?Image3.Picture =Image2.Picture?
flag =0?
End If? 2、双击Ti mer2后,在Private Sub
Ti mer2_Ti mer()和End Sub 两行间添加如下代码,
实现图片由左向右移动:?
If Image3.Left >Me .Scale Width Then Im―
age3.Left =Me .Left -1500?
Image3.Move Image3.Left +100?
3、双击Command1控件后,在Private Sub
Command1_Click()和End Sub 两行间添加如下代
码,先将原图片隐藏,然后启动定时器:?
Image1.Visible =False?
Image2.Visible =False?
Ti mer1.Enabled =True?
Ti mer2.Enabled =True?
(华北矿业高等专科学校席振元101601)
原文转自:www.ltesting.net
篇4:用VB操作注册表(六)VB
用VB操作注册表(六) 梦里水乡 登录 数据库 Registry的Value的存取--删除某Key的Value 这个功能很容易实现,主要是要调用相应的API函数--RegDeleteValue,以下是它的一些描述: VB声明 Declare Function RegDeleteValue Lib “advapi32.dll” Alias “RegDeleteVa
用VB操作注册表(六)
梦里水乡
登录数据库Registry的Value的存取--删除某Key的Value
这个功能很容易实现。主要是要调用相应的API函数--RegDeleteValue,以下是它的一些描述:
VB声明
Declare Function RegDeleteValue Lib ”advapi32.dll“ Alias ”RegDeleteValueA“ (ByVal hKey As Long, ByVal lpValueName As String) As Long
参数:
hKey:Key Handle
lpValueName: Value名称,如果想删除默认值的话,传入”“[空字符串]即可,
返回值: =0,表示成功;≠0,表示失败。
函数调用例:
`我们假设在HKEY_CURRENT_USERSoftwareSetValue有:
`预设值--VB操作注册表
`str1--我爱我的祖国
`我们要删除这两个Value
ret = RegOpenKey(HKEY_CURRENT_USER, ”SoftwareSetValue“, hKey)
If ret = 0 Then
RegDeleteValue hKey, ”Str1“
MsgBox ”已删除?HKCUSoftwareSetValue?SubKey?Str1?Value“
RegDeleteValue hKey, ”“
MsgBox ”已删除HKCUSoftwareSetValue?SubKey‘预设值’“
End If
原文转自:www.ltesting.net
篇5:用VB实现多文档打印VB
用VB实现多文档打印
通常,一般情况下,我们打印文档都是直接从应用程序中打印,例如WORD,这个方法对于单个文件打印比较方便,但是对于文秘等经常需要打印大批量文件的工作人员,如果仍然用WORD一个一个进行打印就比较麻烦了。
应我公司文管中心的要求,我制作了一个多文档打印程序,方便了文秘人员,现介绍如下:
运行VB,新建一个应用程序工程,在Form中添加一个DriveListBox 控件、DirListBox 控件和FileListBox 控件,分别取名为:Drive1、Dir1和File1。设置File1的Pattern 属性为*.doc,设置FileListBox 控件中显示的文件名为DOC文档。
在Form_Load事件中添加一行代码:Drive1.Drive = ”c:“,用来设置运行时所选择的驱动器。
在Drive1_Change()事件中添加一行代码:Dir1.Path = Drive1.Drive,这样当驱动器改变时,使目录路径随之改变。
同样在Dir1_Change()事件中添加一行代码:File1.Path = Dir1.Path,当目录改变时,使文件列表同时改变。
因为一般来说,文档都会保存在统一的目录下,所以没有使用CommonDialog 控件进行文件名选择,使操作更为简单方便。
在Form中添加一个CommandButton 控件取名为Print,用来进行打印操作。
在Command1_Click()中添加如下代码:
Dim i As Integer
Dim strfile As String
Dim word As Object
Set word = CreateObject(”word.Basic“)
word.appshow
For i = 0 To File1.ListCount - 1
If Right(Dir1.Path, 1) ”“ Then
strfile = Dir1.Path + ”“ + File1.List(i)
Else
strfile = Dir1.Path + File1.List(i)
End If
word.fileopen strfile
word.fileprint
word.fileclose
Next
word.appclose
Set word = Nothing
代码说明:
定义一个对象变量word
使用CreateObject创建一个WORD对象并赋值给word
以FileListBox 控件的列表部分项目的个数作为最大数进行循环打印
判断目录名的最后一个字母是否为“”,如果不是,则添加“”进行修正
通过目录名和文件名获得完整的文件名
使用word对象的fileopen方法打开文件
使用word对象的fileprint方法进行文件打印
使用word对象的fileclose方法关闭文件
最后调用word对象的appclose方法关闭word程序,以及释放对象资源Set word = Nothing,
这样,我们就很简单的实现了多文档的打印,希望对文秘人员有所帮助。
原文转自:www.ltesting.net
篇6:用VB轻松调用其他程序VB
用 VB 轻松调用其他程序 我们编写程序时,有时会遇到在一个程序中调用并控制另一个程序执行的情况,在一些编程语言中实现起来较为繁琐,但如果用VB编写时,则可轻松实现,下面我就以在程序中调用“计算器”为例,总结了以下几种方法: 一、以异步方式来执行
用VB轻松调用其他程序
我们编写程序时,有时会遇到在一个程序中调用并控制另一个程序执行的情况,在一些编程语言中实现起来较为繁琐,但如果用VB编写时,则可轻松实现。下面我就以在程序中调用“计算器”为例,总结了以下几种方法:
一、以异步方式来执行其他程序
Shell 函数是以异步方式来调用其他程序的。也就是说,用Shell启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。
语法:Shell(pathname[,windowstyle])
说明:pathname:必要参数。Variant(String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。
例如:RetVal = Shell(″C:WINDOWSCALC.EXE″, 1) ′ 调用计算器。
二、以同步方式来执行其他程序
有时候,我们需要让VB在执行完外部程序后再执行下一语句,这就需要使用API函数。
我们可通过OpenProcess和CloseHandle函数来检测调用软件的运行情况。这两个函数的声明如下:
Declare Function OpenProcess Lib ″kernel32″ Alias ″OpenProcess″ (ByVal dwDesiredAclearcase/” target=“_blank” >ccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function CloseHandle Lib ″kernel32″ Alias ″CloseHandle″ (ByVal hObject As Long) As Long
建立下面函数,用以判断程序是否在运行,如果是,则在运行时返回True。
Function IsRunning(ByVal ProgramID) As Boolean ′传入进程标识ID
Dim hProgram As Long ′被检测的程序进程句柄
hProgram=OpenProcess(0,False,ProgramID)
If Not hProgram=0 Then
IsRunning=True
Else
IsRunning=False
End If
CloseHandle hProgram
End Function
例如要调用计算器(CALC.EXE)并等到它运行完成后再执行下一语句,可以使用以下代码:
Dim RetVal
MsgBox ″开始运行″
RetVal = Shell(″C:WINDOWSCALC.EXE″, 1)
While IsRunning(RetVal)
DoEvents
Wend
MsgBox ″结束运行″
三、关闭正在运行中的其他软件
如果要在程序中关闭正在运行中的其他程序,可以先使用FindWindow函数找出相应的程序句柄,然后调用PostMessage函数关闭该程序即可,
这两个函数的声明如下:
Declare Function FindWindow Lib ″user32″ Alias ″FindWindowA″ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function PostMessage Lib ″user32″ Alias ″PostMessageA″ (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
例如要检测“计算器”程序是否正在运行,如果是则关闭它,可以使用如下代码来实现:
Dim winHwnd As Long
Dim RetVal As Long
winHwnd=FindWindow(vbNullString,″计算器″)
If winHwnd〈〉0 Then
RetVal=PostMessage(winHwnd,&H10,0&,0&)
If RetVal=0 Then
MsgBox ″关闭计算器出错!″
End If
Else
MsgBox ″计算器程序没有运行。″
End If
原文转自:www.ltesting.net
篇7:用VB编写登录程序VB
用VB编写登录程序} 》
{ 编者按:在前几期编程乐园中,我们一同学习了一些关于VB编程的基本概念和语法规则。但离开实例学习编程,无疑是枯燥无味、事倍功半的,所以我们在此推出“看实例,学编程”栏目,邀请富有经验的PFans介绍他们的典型实例,希望对PFans的编程之旅有所帮助。
我们都知道,在进入Windows操作系统时会出现一个登录对话框,要求用户输入密码后才能进入Windows。我们用VB也可以编写这样的登录窗口,其具体方法如下:
界面设计:
打开“VB6.0”,出现“新建工程”对话框,选择“标准EXE”单击“打开”即可新建一个工程。新建一个工程后,VB自动生成了一个窗体,其默认的名称是Form1,且显示的标题也是Form1,显然与我们要编写的程序不符。我们可以更改这些设置,方法是:点击Form1窗体,在右边的属性窗口中(如图1)的“名称”后输入“Denglu”(在后面讲的Denglu就是指的这个窗体),在“Caption”后输入“登录窗口”。窗体设置好后,我们便可以将控件放置到这个窗体中去了。
“登录窗口”中主要用到的是TextBox(文本框)控件,该控件主要是用于接收用户输入的文字并显示出来。在该程序中我们便可以使用TextBox控件接收用户输入的信息来判断是否是合法的用户。另外,我们还将用到Label(标签)控件及CommandButton(命令按钮)控件。Label控件用来显示“用户名”及“密码”标题;CommandButton控件用来设计“确定”及“取消”按钮。下面我们将这些控件放置到窗体中:在工具箱中选择“Label”控件(如图2),在窗体中拖动鼠标直到一定的大小,然后在属性窗口中的“Caption”属性后为输入“用户名”,然后在其下方再拖动一个Label控件,将Caption的值改为“密码:”;在工具箱中选择“TextBox”控件(如图3),在“用户名”后拖动一个TextBox控件,用同样的方法在“密码:”后拖动一个TextBox控件,然后在“属性窗口”中将Text的值改为空(即删除默认的Text1),为了不显示出用户输入的密码,我们将第二个TextBox控件的PasswordChar属性设置为*(如图5),这样在用户输入密码时显示的就是*了;在工具箱中选择“CommandButton”控件(如图4),将其拖动到窗体的下方(一共两个),分别设置其Caption属性为“确定”和“取消”。调整好这些控件的位置(如图6)后即可完成界面的设计,
程序代码:
该程序的主要目的是要判断输入的用户名是否合法,所以我们首先编写判断用户名的程序代码。双击“确定”按钮,添加如下的程序代码:(黑体部分为系统自动生成的代码,楷体为注释)
Private Sub Command1_Click()
′判断是否输入了用户名
If Text1.Text=″″ Then ′如果Text1为空,即没有输入用户
MsgBox ″请输入用户名!″,vbOKOnly+vbCritical,″错误″
Exit Sub ′退出这个过程
Else ′如果输入了用户名
If Text1.Text=″软件世界″ And Text2.Text=″12345″ Then ′如果输入的用户名是″软件世界″且密码为″12345″
MsgBox ″你是合法用户,欢迎进入!″,vbOKOnly+vbInformation,″欢迎进入″
Else ′如果不是″软件世界″或密码不是″12345″
MsgBox ″用户名或密码错误!″,vbOKOnly+vbCritical,″错误″
Text1.Text=″″
Text2.Text=″″ ′清空Text1及Text2控件中的文本内容,让用户重新输入
End If
End If
End Sub
在这一段代码中,我们使用了If…Then…Else…End If。这是一个条件判断语句,If Text1.Text=″″ Then这句代码则是判断Text1是否为空,如果为空,这个条件就成立,则执行Then后的语句,如果Text1不为空,则这个条件不成立,程序将会跳到Else处,执行Else后的语句。
程序测试:
现在我们可以单击“F5”键来运行这个程序,看看其运行效果。直接单击“确定”按钮,将会弹出一个对话框(如图7);在“用户名”后输入“软件世界”,“密码:”后输入“12345”,再单击“确定”按钮,此时便会出现一个“欢迎进行”的信息框(如图8)。怎么样,一个属于自己的“登录窗口”就制作好了。
但这个程序目前还只能判断在程序中已设置好了的用户名及密码,没有灵活性,你可以发挥你的聪明才智,使其能够判断多个合法的用户及密码。如果你有什么疑问,欢迎写信与我交流,我的E-mail地址是:vber@21cn.com。
(重庆 杜伟)}
原文转自:www.ltesting.net








