软盟收藏
 用户中心
 加盟指南
 网上订购
软件联盟 商业源码 名企管理 策划方案 募捐会馆 会员服务 源码下载 开发文档 SAP教程 房地产策划 商业图库
软件联盟现时:2010年9月8日 星期三 位于: 源码文档- 开发文档 → 开发技术(VB开发专栏)
用VB6.0设计简易赛车游戏源码
2006年4月7日  作者:jidb  商业源码:策划管理,名企内参,咨询顾问  浏览选项:    本文已被浏览 3193 次
第一步,绘制对象:用函数drawcar()画赛车,drawway(n)画跑道的第n层。 
第二步,接受控制:Form的KeyPreview属性要设为true,在Form_KeyPress函数中通过改变全局变量cx来控制赛车的位置。 
第三步,游戏循环:作为即时游戏,必须要有一个Timer,并在其事件Timer1_Timer()中绘制所有对象和进行碰撞检测。本例中,绘图部分写在了Timer1_Timer()中,碰撞测试放在了test()中。 
……这也是所有即时游戏所共通的框架。当然,我们往往还是根据具体的设计作一些变通,发挥一些技巧……比如这里设计的跑道是随机产生的的,这就要通过一点技巧以便既让玩家感到挑战,又不至于出现不可逾越的难关…… 

下面是全部源代码,窗体上只需放个按钮Command1就行了! 

Const D = 100 注释:方格的宽度 
Const bt/16.shtml' target='_blank' class='article'>BT = 3000 注释:跑道底部的y坐标 
Dim l1(22) As Integer 注释:每层跑道左边有几个方块 
Dim l2(22) As Integer 注释:每层跑道右边有几个方块 
Dim cx As Single 注释:赛车的在x轴的位置 

Private Sub Command1_Click() 

 cx = Width / 2 - 3 * D / 2 
  cy = Height - D 
  drawcar 
  For i = 1 To 20 
   l1(i) = 0 
   l2(i) = 0 
   drawway (i) 
  Next i 
  Timer1.Enabled = True 

End Sub 

Private Sub drawcar() 

 Line (cx, BT - 100)-Step(3 * D, D), BackColor, BF 
  Line (cx + D, BT - 200)-Step(D, D), BackColor, BF 注释:先擦 
  Line (cx, BT - 100)-Step(3 * D, D), RGB(225, 0, 0), BF 
  Line (cx + D, BT - 200)-Step(D, D), RGB(225, 0, 0), BF 

End Sub 

Private Sub drawway(n) 

 Line (Width/2-3*D/2-2*D,BT-n*D)-Step(7*D,D),BackColor, BF 
注释:先擦后画 
  Line (Width/2-3*D/2-2*D,BT-n*D)-Step(l1(n)*D, D), ,BF 
  Line (Width/2-3*D/2+5*D,BT-n*D)-Step(-l2(n)*D,D), ,BF 

End Sub 

Private Sub Form_KeyPress(KeyAscii As Integer) 

 Select Case KeyAscii 
   Case Asc("a"), Asc("A") 
    cx = cx - D 
   Case Asc("s"), Asc("S") 
    cx = cx + D 
  End Select 

End Sub 

Private Sub Timer1_Timer() 
  Randomize 
  For i = 1 To 19 
   l1(i) = l1(i + 1) 
   l2(i) = l2(i + 1) 
   drawway (i) 
  Next i 
  Do 
   l1(20) = Int(Rnd * 5) 
   l2(20) = Int(Rnd * 5) 
  Loop Until ((l1(20) + l2(20) <= 4) And (l1(20) - l1(19) <= 1) And _ (l2(20) - l2(19) <= 1) And (l1(19) + l2(20) <= 4) And _ 
(l1(20) + l2(19) <= 4)) 注释:这里生成新一层跑道, 
注释:注意要筛去玩家不可能通过的情况! 
drawway (20) 注释:以上画出跑道 
  drawcar 
  test 

End Sub 

Private Sub test() 

 If 3.5*D-Width/2+cx If 3.5*D-Width/2+cx+D If 3.5*D-(cx+3*D-Width/2) If 3.5*D-(cx+2*D-Width/2) 
End Sub
 发布人:lala
 [ → 我要发表文章 ]
上篇文章:利用VB函数Dir()实现递归搜索目录
下篇文章:利用随机数加密字串的算法(vb)
→ 主题所属分类:  开发技术 → VB开发专栏 → 『关闭窗口』
 热门文章
 穿透防火墙的数据传输源码 (4614)
 Delphi中如何调用VC++创建的动态链接库? (4590)
 使用Delphi和WebServices技术开发短信应用 (4385)
 把.NET部署到没有安装Fram的机器上 (4327)
 用DELPHI实现的黑客程序技巧集锦 (4181)
 最短路径算法源码(VB源码教程) (4135)
 ASP.NET添加客户端代码的几种方法 (4112)
 提高ASP.NET性能的若干方法 (4079)
 利用随机数加密字串的算法(vb) (3941)
 Java常见问题大全集 (3941)
 最近更新
 Google店大欺客:伪开源Android危机四伏 (2月3日)
 从各大软件公司笔试压轴题学习SQL语句 (12月31日)
 Oracle并行查询发挥多CPU的威力 (7月8日)
 SQL Server 2008企业视频讲座 (12月5日)
 一个完美的中文大写日期转换函数 (8月1日)
 海量数据库的查询优化及分页算法方案 (8月1日)
 用友ERP-NC精华实用SQL脚本之:快速复制公司的... (2月21日)
 IC卡写卡操作的源码(深圳达实公司) (3月16日)
 专家分享Oracle数据库业务优化心得 (1月15日)
 多线程验证DoubleCheckedLocking (11月3日)
 文章搜索
搜索选项:            
  → 评论内容 (点击查看)
(没有相关评论)
  → 发表我的评论
您的姓名:  您的E-mail:

评论内容:
发表评论:  
关于我们咨询反馈合作媒体免费金币行业管理名企内参矢量图库素材模板客户名录快乐淘宝广告合作网站地图
本站总访问量: 19762521 人次 ┋ 围观高峰 948 人在线 ┋ 现时围观 41 人
商业源码:策划管理,名企内参,咨询顾问 [节能型] ┋联系邮件 服务QQ:308071592
软件创业联盟 ©2002-2018 版权所有 浙ICP备09028508号 电话:0571-8590-3599