用VB编写趣味撞球程序

合集下载

用vb编一个抽奖软件的源代码

用vb编一个抽奖软件的源代码

求用v b编一个抽奖软件的源代码悬赏分:20 - 解决时间:2008-4-15 22:47要求:1.点击‘开始’从tex t或ex cel文件中依次调用每一行的电话号码,滚动显示在界面上,点击‘停止‘ 则停在某一个电话上即可2.请带一些语句说明最好问题补充:这位前辈是不是将input 写成了inpue ,while not(eof(#1))总是提示错误我是个v b小白,能不能说明白点,需要几个控键分别叫啥名字,语句能不能更完整些,谢谢开始和停止为同一个键也可以提问者:qv x i aogang - 试用期一级最佳答案dim i窗口启动:i=0Open App.Path & "\电话号码.tx t" F or Input As #1while eof(1)=falseLine Input #1,aList1.AddItem awendclose #1按开始:timer1.Interval=50按结束:timer1.Interval=0timer的事件:i=i+1if i=List1.ListCount then i=0Label1.Caption = List1.List(i)不好意思啊,由于没有注意,所以先前的答案有两个小错误,现在已修正了所需控件:两个按钮,一个开始,一个结束;一个时钟控件一个列表框;一个标签控件用VB 6.0编写电脑抽奖程序近年来在娱乐节目之中常常见到利用电脑来抽奖,笔者对其发生了兴趣遂自己动手用VB编了一个小程序来实现电脑抽奖的小功能,其原理如下:主要利用VB中的Rnd函数,来实现随机查找和打乱排序的功能,从而实现随机抽奖的目的。

Rnd函数的语法结构是Rnd[(number)],可选的nu mber参数是single或任何有效的数值表达式。

Rnd函数返回小于1但大于或等于0的值。

nu mber 的值决定了Rnd 生成随机数的方式。

为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound -lowerbound +1) × Rnd +lowerbound)这里,upperbound 是随机数范围的上限,而lowerbound 则是随机数范围的下限。

VB程序设计教程 第四版 第6章

VB程序设计教程 第四版 第6章
10 a 执行过程体 ByVal 传值 x a 20 a 的地址 10 20
a
10
执行过程体
x a
20 10
返回
返回
20 Integer a = = : y b10 的地址 b 10 = 20 : b 10 aCall = Swap 10 : y b 的地址 2(a, b 10 = b) 20 : 10 b Call a = Text Swap b
汉字的机内码最高位为1,Asc函数码值为小于0(补码)
西文字符的最高位为0,Asc函数求其码值为大于0
Function CountC%(ByVal s$) Dim i%, k% Dim c As Char For i = 1 To Len(s) c = Mid(s, i, 1) If Asc(c) < 0 Then k = k + 1 Next CountC = k End Function Sub Command1_Click() Dim c1% c1 = CountC(Text1.Text) 显示 Text1.Text 和 C 1 End Sub
Functioc Count%(st$) Dim i% Count = 0 i = InStr(st, “ the ") Do While (i > 0) Count = Count + 1 st = Mid(st, i + 1) i = InStr(st, “ the ") Loop VB 程序设计教程 End Function
Z←gcd
例6.2 设断点演示过程
调用形式:函数过程名([参数列表])
参数列表(称为实参或实元):必须与形参个数相同,位置与 类型一一对应。可以是同类型的常量、变量、表达式。

vb程序程设计-趣味游戏

vb程序程设计-趣味游戏

《多媒体软件设计技术》
考试报告书
学院
班级
学号
姓名
指导老师
设计下棋趣味游戏
我设计了一个下棋的小游戏,在运行时先点击谁先下棋,当电脑或者游戏者下棋时使自己的一方的三个子在一条线上,则赢了;若对方的棋子下在一条线上那么你就输了;若九个空都下完还没有任何一方的棋子在一条线上看,那么是和棋!输、赢、或者和棋最后在标签框中显示出来!
1.界面
(1)设计界面
(2)运行界面
2.说明
九个井字格为Command1的控件数组,谁先是OptionButton1的控件数组,图片所在位置是picture1,显示文字的地方时Lable1,重置按钮为Command2。

3.属性
4.源代码
宣告通用变量
5.小结:本次考试的题目给了我蛮多的收获,从开始的一无
所知到现在的能编写简单的程序,很有成就感得。

当然在此期间还是遇到了很多的问题,很多看似简单的语句就是表达不出来,还是要借助的图书资料。

经过对工具的功能的了解,和原先对C语言的一点基础,慢慢学习和VB的不同,对照起来学习还是省下不少功夫。

设计的游戏虽然很低级,甚至有点错误,不管我怎么下棋,其实是不会赢得,我也试着重改,但是效果都不是很好,会引起很多别的错误,所以是一点点瑕疵。

不管怎么说,在这个过程中学到的是很多的,这就达到了我的目的了!。

VB程序设计之扫雷程序

VB程序设计之扫雷程序

VB程序设计之扫雷程序《VB 程序设计之扫雷程序》扫雷,这个经典的小游戏,相信大家都不陌生。

在计算机编程领域,我们可以使用 VB(Visual Basic)来设计实现一个扫雷程序。

接下来,就让我们一步步走进这个充满挑战与乐趣的编程之旅。

扫雷程序的基本原理其实并不复杂。

它是在一个二维的方格矩阵中,随机埋下一定数量的“地雷”。

玩家通过点击方格来揭示其状态,如果是空白格,则会显示周围 8 个方格中地雷的数量;如果点击到地雷,则游戏结束。

在 VB 中,我们首先需要创建一个合适的界面。

这包括一个用于显示方格的区域,以及一些用于控制游戏的按钮,比如开始新游戏、暂停、显示地雷位置等。

对于方格的显示,我们可以使用 PictureBox 控件来实现。

通过设置 PictureBox 的大小和位置,来构建出整齐的方格矩阵。

接下来是数据的存储和处理。

我们需要一个二维数组来记录每个方格的状态,比如是否为地雷、是否被标记、是否被点击以及周围地雷的数量等。

在程序初始化时,随机生成地雷的位置,并计算每个方格周围地雷的数量。

当玩家点击一个方格时,程序会根据方格的状态进行相应的处理。

如果是空白格且周围没有地雷,就需要使用递归算法来自动展开周围的空白区域,以提高游戏的流畅性。

如果点击到地雷,那么游戏结束,显示所有地雷的位置。

在实现过程中,还需要处理一些细节问题。

比如,如何判断鼠标点击的位置对应的是哪个方格;如何处理玩家标记方格为地雷的操作;如何在游戏结束时显示正确的结果等等。

为了让游戏更加友好和美观,我们还可以添加一些特效和提示。

比如,当鼠标悬停在方格上时,显示一些提示信息;当玩家成功完成一局游戏时,弹出祝贺的消息框。

在代码编写方面,我们需要合理地组织函数和过程,使代码具有良好的可读性和可维护性。

例如,可以将方格的处理、数据的计算、界面的更新等分别放在不同的函数中。

以下是一个简单的示例代码,展示了如何在 VB 中处理鼠标点击事件:```vbPrivate Sub PictureBox1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim col As IntegerDim row As Integercol = Int(X / PictureBox1Width)row = Int(Y / PictureBox1Height)'这里添加对点击方格的具体处理代码End Sub```总之,通过VB 程序设计扫雷程序,不仅能够锻炼我们的编程能力,还能让我们更深入地理解算法、数据结构和用户交互等方面的知识。

vb程序(精选5篇)

vb程序(精选5篇)

vb程序(精选5篇)vb程序范文第1篇关键词:VB;程序设计;爱好;自动性;教学方法当代大同学进入社会,除了要求谙习计算机的基本操作外,更应把握程序设计语言这个现代化工具,只有这样才能处理今后工作中面临的各种问题。

由于VB是一种可视化、面对对象和事件驱动编程机制的计算机语言,相对简单易学、功能较强、所以已被很多高校选作非计算机专业同学的公共必修课。

然而VB语言也存在抽象、枯燥、学问点多等缺点,加之绝大部分同学都是初次接触程序设计,缺乏相应的学问背景,不少人学习目的又不明确,所以往往在开始阶段会感到很茫然,甚至对这门课产生畏惧心理,缺乏爱好,以至影响整个教学效果。

因此作为老师,怎样吸引同学去自动学好该课程是一个关键问题。

经过我们多年的教学实践,认为只有通过改进教学方法、调整教学手段,不断激发同学的学习爱好,调动同学的求知欲望,才能发挥他们的自动性,最后达到良好的教学效果。

1古怪转为爱好,被动变成自动爱因斯坦有句名言:“爱好是最好的老师。

”孔子也说过:“知之者不如好之者,好之者不如乐之者”(《论语雍也》)。

只有“好之”“乐之”才能建立起高涨的学习热诚与求知欲望,方能以学为乐,欲罢不能。

由此可见,爱好能诱发同学的学习动机,是调动同学学习积极性的紧要因素。

然而不少刚接触计算机编程学习的同学,他们对编程所感到的新奇、好玩,决不能算是爱好,而只是一种古怪。

由于随着课程中大量的语法规定、概念的不断引入,极易使一部分甚至是大部分同学产生枯燥无味的感觉。

为了能使同学的古怪转化为学习爱好,抓好入门教学非常关键。

所以在讲授第一次课程时,我们不急于去阐述VB的一些难懂、抽象的概念等相关内容,而从同学的认知规律考虑,先给同学演示一些用VB语言编好的实在实例,如计算器、锤打红心等。

通过这些趣味程序的演示,既能使同学了解VB语言的强大功能,也会让同学产生极大的古怪心,如:这些功能是如何实现的?其中的奥妙是什么?一旦同学的积极性被激发,他们就会自动去探究,想知道其中的答案, 并渴望立刻去学习与把握这些技能。

网络台球游戏的网络编程(vc++)

网络台球游戏的网络编程(vc++)

网络台球游戏的网络编程网络台球是一款对战式台球游戏,程序界面如图4.13 所示。

图4.13 网络台球在游戏开始的时候,程序会弹出一个类型选择框,如果4.14 所示,玩家可以选择作为服务器、客户机或者是单人练习赛。

图4.14 游戏类型选择网络台球的绘制部分采用OpenGL 技术。

OpenGL 技术将会在第5 章中介绍,这里只介绍台球碰撞算法和网络实现部分。

先来看看网络台球的碰撞算法。

4.8.1 刚体运动与碰撞当玩家击球后,系统调用HitBall 函数。

HitBall 函数定义如下:void CBilliardsPlayView::HitBall(){if (!m_bAnimate){m_nEnter = 100;CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd(); CBilliardsPlayView*pView=(CBilliardsPlayView*)(pF rame->m_wndSplitter).GetPane(0,1);CBilliardsDoc *pDoc = (CBilliardsDoc*)pView->GetDocument();if (pDoc->m_bPlayer!=IDLE){m_nEnter = -1;if (m_bCanHit)pDoc->SendVelocity(m_fVelocity[0]);}m_bAnimate = TRUE;SetTimer(ANIMATE_TIMER,5,NULL);}}在HitBall 函数里,需要设置一个所有球都已经静止的标志m_bAnimate。

如果不是单人练习赛,则要将这个击球动作发送到网络的另一端。

最后要设置一个动画定时器。

定时器消息响应函数如下:void CBilliardsPlayView::OnTimer(UINT nIDEvent) {CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd();CBilliardsPlayView*pView=(CBilliardsPlayView*)(pFrame->m_wndSplitter).GetPane(0,1);if (nIDEvent == ANIMATE_TIMER){DrawScene();pView->GetDlgItem(IDC_BUTTON_SHOOT)->EnableWindow (m_bCanHit&&!m_bAnimate);}CView::OnTimer(nIDEvent);}在定时器消息响应函数中调用了函数DrawScene,结构如下:Void DrawScene()图4.14 游戏类型选择第4 章网络游戏开发241{…………//省略if (m_bAnimate){if (Calculate()){KillTimer(ANIMATE_TIMER);m_bAnimate = FALSE;…………//省略…………}}…………//省略}不难看出Calculate 函数就是计算球函数。

vb程序范文

vb程序范文

vb程序范文【关键词】界面设计代码设计算法1 引言程序设计不仅是一门科学而且是一门艺术,它有较强的创造性和灵活性,也是学生较难掌握的技能。

一方面程序设计本身枯燥、严谨,难以理解,另一方面更主要的是教师在组织程序设计教学中缺乏针对性,没充分考虑学生的知识水平、认知规律、学习特点和接受能力。

Visual Basic,是一种面向对象的程序设计语言,编写应用程序快捷高效,是职中计算机专业的必修科目。

在这门课的教学实践中,我紧紧抓住界面设计和程序代码设计两大环节,打破教材原有以知识的逻辑结构体系为顺序组织课堂教学的方式,以教授程序设计的基本方法为主线,从具体问题入手,由浅入深,由简及繁,循序渐进,介绍解决问题的方法,最后引出概念和结论,取得良好教学效果。

2 界面设计在面向对象程序设计语言教学中,界面设计是一项很重要的工作,程序是否简便易用,与界面的质量有很大关系,而界面中的对象属性会影响对象的外观及功能,因此,对象的属性设置在界面设计教学中要重点加以训练。

我设计了如下的界面,让学生和我一起完成。

题目要求任意输入两数,求这两数的和(或差、或积、或商),实际是完成一个简单的计算器。

2.1 建立应用程序界面(1)启动VB。

(2)加入两个文本框。

(3)加入四个运算按钮。

(4)加入两个标签框。

在界面设计教学中,学生通过自己的实际操作,很容易就掌握了如何在界面内添加对象,如何改变对象位置,以及如何设置对象的属性。

通过几次针对性的练习,学生对属性的设置不会有太大问题。

2.2 设置各控件的属性如表1。

2.3 编写代码当程序运行后整个系统处于相对“静止”,等待输入,当输入数据后,单击四个按钮中的任一个时,则引发Label2的Caption属性变化,由原来的内容改为两文本框中内容的和(或差、或积、或商),因此,必须在四个按钮中的Click(单击)事件中加入适当的代码,使Label2的Caption发生变化。

编写“+”代码的操作方法:(1)双击“+”按钮。

用VB编了一个小程序来实现电脑抽奖的小功能

用VB编了一个小程序来实现电脑抽奖的小功能

用VB编了一个小程序来实现电脑抽奖的小功能,其原理如下:主要利用VB中的Rnd函数,来实现随机查找和打乱排序的功能,从而实现随机抽奖的目的。

Rnd函数的语法结构是Rnd[(number)],可选的number参数是 single或任何有效的数值表达式。

Rnd函数返回小于1但大于或等于0的值。

number 的值决定了 Rnd 生成随机数的方式。

为了生成某个范围内的随机整数,可使用以下公式:Int((upperbound - lowerbound + 1) × Rnd + lowerbound)这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限。

另外,程序中还使用了INI文件,Windows INI文件,可解释为Windows初始化文件。

它是一种专门用来保存应用程序初始化信息和运行环境信息的文本文件。

ini文件是一种文本文件,它可以通过Notepad等文本编辑器进行编辑。

ini文件具有特定的格式。

一个INI 文件是由若干个段(section)组成的,每个段中包含若干关键字(key)及相应的值(value)。

创建应用程序自己的INI文件,通过INI文件保存应用程序的一些运行环境信息,然后在程序中读取INI文件中的设置信息并据以处理。

一旦程序的运行环境需要变更,则可以通过直接修改INI文件,或在程序中提供专门的界面间接地修改INI文件来保证程序的可用性。

源程序及注释如下:'窗体源程序Option ExplicitDim m_strNameArray() As MyNameDim m_bIsStart As BooleanDim m_nNameIndex As IntegerDim MAX_INDEX As IntegerDim m_nSelectNum As Integer'被选定数Dim nScrollStep As IntegerDim nScrollWidth As IntegerDim bScrollState As BooleanDim nEnableSecond As IntegerDim m_strTitle As StringDim m_strAppTitle As StringDim m_strScrollTitleLeft As StringDim m_strScrollTitleRight As StringPrivate Sub Command_Start_Stop_Click()If m_bIsStart = True Then'按停止钮m_bIsStart = FalseCommand_Start_Stop.Caption =“开始"Label_FlashName.Visible = TrueTimer_FlashName.Enabled = TrueTimer_ScrollName.Enabled = FalseLabel_FlashName =m_strNameArray(m_nNameIndex).strName +“中奖了!"m_strNameArray(m_nNameIndex).bIsSelect = Truem_nSelectNum = m_nSelectNum + 1Dim Temp As MyNameTemp =m_strNameArray(MAX_INDEX)m_str Name Array(MAX-INDEX) = m_strNameArray(m_nNameIndex) m_strNameArray(m_nNameIndex) =TempMAX_INDEX = MAX_INDEX - 1If MAX_INDEX = 0 ThenMsgBox “非常感谢您使用本软件"End IfElse '按开始钮m_bIsStart = TrueCommand_Start_Stop.Caption = “停止" Command_Start_Stop.Enabled = False Timer_ScrollName.Enabled = TrueTimer_FlashName.Enabled = FalseLabel_FlashName.Caption = “"End IfEnd SubPrivate Sub Form_Load()Form_Bouns.ScaleMode = 3m_nNameIndex = 0m_bIsStart = FalseTimer_ScrollName.Enabled = TrueTimer_ScrollTitle.Enabled = True Label_FlashName.Visible = FalseLabel_ScrollName.Caption = “" nEnableSecond = 0'定义起始秒数ReDimNameArray'获得文本中的名字和打乱名字顺序nScrollStep = 5 '设定滚动字的步长nScrollWidth = Label_Congruation.Left'设定title的移动宽度bScrollState = False'设定缺省的开始滚动方向为向左m_nSelectNum = 0'初始化被选定数为0Init'初始化本程序的界面End SubPrivate Sub Timer_FlashName_Timer() '闪动中奖者姓名If Label_FlashName.Visible = True ThenLabel_FlashName.Visible = FalseElseLabel_FlashName.Visible = TrueEnd IfEnd SubPrivate Sub Timer_ScrollName_Timer() '滚动出现名字If m_bIsStart = True ThenIf m_nNameIndex >= MAX_INDEX Thenm_nNameIndex = 0End Ifm_nNameIndex =m_nNameIndex + 1If m_strNameArray(m_nNameIndex).bIsSelect = True Then If m_nNameIndex <MAX-INDEX Thenm_nNameIndex =m_nNameIndex + 1Elsem_nNameIndex = 0End IfEnd IfLabel_ScrollName.Caption = m_strNameArray(m_nNameIndex).strName'End IfEnd IfEnd SubPrivate Sub Timer_ScrollTitle_Timer() '滚动“恭喜发财"字样If bScrollState = False Then '向左滚nScrollStep = 10Label_Congruation.Caption = m_strScrollTitleLeftIf nScrollWidth > 0 ThennScrollWidth =nScrollWidth - nScrollStepElsebScrollState = TrueEnd IfElse '向右滚nScrollStep = -10Label_Congruation.Caption =m_strScrollTitleRightIf nScrollWidth < Form_Bouns.ScaleWidth - Label_Congruation.Width Then nScrollWidth =nScrollWidth - nScrollStepElsebScrollState = FalseEnd IfEnd IfLabel_Congruation.Left = nScrollWidth'以下为8秒钟内使“停止"按钮有效If nEnableSecond <= 49 ThenIf m_bIsStart = True ThennEnableSecond =nEnableSecond + 1End IfElseIf m_bIsStart = True ThenCommand_Start_Stop.Enabled = TruenEnableSecond = 0End IfEnd IfEnd Sub'动态定义数组Private Sub ReDimNameArray()Dim strMaxIndex As StringDim nIndex As IntegerDim bIsBegin As BooleanbIsBegin = FalsenIndex = 0Open App.Path +“\name.txt" For Input As #1 '读文件Do Until EOF(1)If bIsBegin = False ThenLine Input #1, strMaxIndexnMaxIndex = Val(strMaxIndex)MAX_INDEX = nMaxIndex - 1ReDim m_strNameArray(0 To nMaxIndex - 1)bIsBegin = TrueElseLine Input #1, m_strNameArray(nIndex).strNamem_strNameArray(nIndex).bIsSelect = FalsenIndex = nIndex + 1End IfLoop'以下为打乱人员顺序10次Dim i As IntegerDim j As IntegerDim Temp As StringFor j = 0 To 10For i = 0 To nMaxIndex - 1nRandomNum = ((nMaxIndex - 1) × Rnd) '利用Rnd函数Temp = m_strNameArray(i).strNamem_strNameArray(i).strName = m_strNameArray(nRandomNum).strNamem_strNameArray(nRandomNum).strName = TempNext iNext jEnd SubPrivate Sub Init() '读取INI文件Dim X As LongDim lpFileNameDim Temp As String × 50lpFileName = App.Path +“\Sortition.ini"X = GetPrivateProfileString(“SYSTEM",“AppTitle",“抽奖程序", Temp, Len(Temp), lpFileName)m_strAppTitle = Trim(Temp)Temp =“"X = GetPrivateProfileString(“SYSTEM", "Title", "欢迎使用抽奖程序", Temp, Len(Temp), lpFileName)m_strTitle = Trim(Temp)Temp = “"X = GetPrivateProfileString(“SYSTEM",“ScrollTitleRight", “恭喜发财!!!", Temp, Len(Temp), lpFileName) m_strScrollTitleRight = Trim(Temp)X = GetPrivateProfileString(“SYSTEM",“ScrollTitleLeft", “龙年大发!!!", Temp, Len(Temp), lpFileName)m_strScrollTitleLeft = Trim(Temp)Form_Bouns.Caption = m_strAppTitleLabel_CompanyTitle.Caption = m_strTitleEnd Sub模块源程序:'用于读取ini文件的API函数Declare Function GetPrivateProfileString Lib “kernel32" Alias “GetPrivateProfileStringA" (ByVal lpApplicationname As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As LongPublic Type MyNamestrName As StringbIsSelect As BooleanEnd Type由于程序利用的windows ini文件保存一些标题信息,因而可以方便的修改使用环境,及标题内容。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用VB编写趣味撞球程序
一只红色的小球在箱子中不停地弹跳,你要适当地移动下面的板子挡住,别让它掉下来。

相信许多人都玩过这样的游戏,有没有想过自己编个来玩呢?
界面设计:新建一个工程,Form1的Caption属性设为“趣味撞球”,在Form1上放上一个图片框控件Picture1,一个图形控件Shape1,将Shape属性设为3,FillStyle 属性设为0,FillColor属性设为“&H000000FF&”,即红色,Shape1显示为红色实心圆作小球,一个直线控件Line1,其BorderWidth属性设为3,当做板子;一个定时器Timer1,其Interval属性设为10,Enabled属性设为False,两个标签Label1 和Label2,其Caption 属性分别为“得分”和“0”,再放两个命令按钮Command1和Command2,其Caption属性分别为“开始”和“退出”,设计好的界面如^03020501a^。

程序代码:
Option Explicit
Dim x_step As Integer
Dim y_step As Integer
Private Sub Command1_Click()
Timer1.Enabled = Not Timer1.Enabled
'启动或停止定时器
If Command1.Caption = “暂停” Then
Command1.Caption = “继续”
Else
Command1.Caption = “暂停”
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
x_step = 200
'设置小球运动的速度
y_step = 200
End Sub
Private Sub Picture1_KeyDown KeyCode As Integer, Shift As Integer Select Case KeyCode
Case 37'如果按下左箭头,使板子向左移动
If Line1.X1 <= 0 Then
Line1.X1 = 0
Line1.X2 = 2000
Else
Line1.X1 = Line1.X1 - 100
Line1.X2 = Line1.X2 - 100
End If
Case 39'如果按下右箭头,使板子向右移动
If Line1.X2 >= Picture1.Width Then
Line1.X2 = Picture1.Width
Line1.X1 = Picture1.Width - 2000
Else
Line1.X1 = Line1.X1 + 100
Line1.X2 = Line1.X2 + 100
End If
End Select
End Sub
Private Sub Timer1_Timer()
If Shape1.Top <= 0 Then Shape1.Top = 0:y_step = -y_step
'如果小球出了上边界便弹回
If Shape1.Left <= 0 Then Shape1.Left = 0:x_step = -x_step
'如果小球出了左边界便弹回
If Shape1.Left >= Picture1.Width - Shape1.Width Then Shape1.Left = Picture1.Width - Shape1.Width: x_step = -x_step
'如果小球出了右边界便弹回
If Shape1.Top >= Line1.Y1 - Shape1.Height And Shape1.Left >= Line1.X1 And Shape1.Left <= Line1.X2 Then
'如果小球撞在板子上,便弹回
Shape1.Top = Line1.Y1 - Shape1.Height
y_step = -y_step* 1.01'速度增加
x_step = x_step* 1.01
Label2.Caption = Val(Label2.Caption) + 1
End If
Shape1.Top = Shape1.Top + y_step
'使小球移动
Shape1.Left = Shape1.Left + x_step
If Shape1.Top >= Picture1.Height - Shape1.Height Then
MsgBox “你输了!”
Timer1.Enabled = False
Command1.Caption = “开始”
Shape1.Top = 1000
Label2.Caption = 0
End If
End Sub
按“F5”键运行,小球来回跳动起来,你招架得住吗?有意思吧,快试试呀!
知识点:这个程序的主要控件是Shape(形状控件)和Line(直线控件),这两个控件都是简单形状的控件。

Shape控件:主要属性有Shape、FillStyle、FillColor、Top和Left。

Shape是用来设置图形样式的,有矩形、正方形、椭圆形、圆形、带圆角的矩形和正方形等等;FillStyle 用来设置填充的样式,如设为“1”,即Transparent,便为一个透明即空心的图形,而“6”即为方格填充,还可以设置为斜线、水平线、垂直线填充;FillColor用来设置填充的颜色;Top和Left属性用来设置Shape控件的位置,在该例中,用来控制小球的移动和判断是否达到了反弹的条件。

Line控件:主要属性有Style、BorderWidth和X1、X2、Y1、Y2。

我们可以通过BorderWidth来设置直线的宽度,默认为“1”,最小为“1”;Style主要是用来设置直线的样式,如虚线、点划线等等,注意:只有当BorderWidth设置为“1”时,才能选择不同的直线样式,BorderWidth大于1时,只能画出普通直线。

X1、X2、Y1、Y2是用来设定直线的位置和长度的,在本段程序中,就是通过这几个属性来控制直线的移动的。

好了,这一期“看实例学编程”就讲到这里,下一次,我们将介绍用“PictureClip”控件编写有趣的拼图程序,请大家留意。

相关文档
最新文档