• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    用VB6.0設計簡易賽車游戲

    發布: 2007-7-14 20:28 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 14次 | 進入軟件測試論壇討論

    領測軟件測試網   簡單的游戲往往更耐玩,就比如伴我度過高考的賽車游戲:一切都是方塊,所謂的賽車也只是四個方塊。

      第一步,繪制對象:用函數drawcar()畫賽車,drawway(n)畫跑道的第n層。

      第二步,接受控制:Form的KeyPreview屬性要設為true,在Form_KeyPress函數中通過改變全局變量cx來控制賽車的位置。

      第三步,游戲循環:作為即時游戲,必須要有一個Timer,并在其事件Timer1_Timer()中繪制所有對象和進行碰撞檢測。本例中,繪圖部分寫在了Timer1_Timer()中,碰撞測試放在了test()中。

      ……這也是所有即時游戲所共通的框架。當然,我們往往還是根據具體的設計作一些變通,發揮一些技巧……比如這里設計的跑道是隨機產生的的,這就要通過一點技巧以便既讓玩家感到挑戰,又不至于出現不可逾越的難關……

      下面是全部源代碼,窗體上只需放個按鈕Command1就行了!

    Const D = 100 '方格的寬度
    Const 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<l1(1)*D Then Timer1.Enabled=False
     If 3.5*D-Width/2+cx+D<l1(2)*D Then Timer1.Enabled=False
     If 3.5*D-(cx+3*D-Width/2)<l2(1)*D Then Timer1.Enabled=False
     If 3.5*D-(cx+2*D-Width/2)<l2(2)*D Then Timer1.Enabled=False

    End Sub 

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>