• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Game bắn pháo

Bạn muốn open source dự án mình đang phát triển để mọi người cùng theo dõi tiến độ, góp ý kiến, hổ trợ và tiếp sức thêm? Hãy đăng ký dự án mã nguồn mở của mình tại đây

Điều hành viên: Điều hành

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Game bắn pháo

Gửi bàigửi bởi truongphu » T.Bảy 20/02/2016 7:24 pm

  1. Private Declare Function GetTickCount Lib "kernel32" () As Long
  2. Const PI! = 3.1416
  3. Dim Ve As Boolean, Power%, Goc%, vitriX&, vitriY&, Shotting As Boolean
  4. Dim LanBan%, Trung As Boolean, Tông%
  5.  
  6. Private Sub Command1_Click() 'Start
  7.    Command1.Visible = False
  8.     LanBan = 0: Tông = 0
  9.     Picture1.Cls
  10.     GioiThieu
  11.     VeDonVi
  12.     Label1.Visible = False: Label2.Visible = False
  13. End Sub
  14.  
  15. Private Sub Form_Activate()
  16.     Command1.SetFocus
  17. End Sub
  18.  
  19. Private Sub Form_Load() ''''''''''''
  20.    GioiThieu
  21.     Randomize
  22.     Picture1.AutoRedraw = True
  23.     Picture1.Scale (0, 200)-(400, -12)
  24.     Picture2.Picture = LoadPicture("bbb.jpg")
  25.     VeDonVi
  26. End Sub
  27. Private Sub VeDonVi()
  28.     Picture1.Line (10, 0)-(390, 0), vbBlack
  29.     Dim i&
  30.         For i = 20 To 380 Step 20
  31.             Picture1.Line (i, -10)-(i, -5)
  32.             Picture1.Print i
  33.         Next
  34.     Picture1.DrawStyle = 2
  35.     Picture1.Circle (10, 10), 60, 0, -Rads(0), -Rads(80)
  36. End Sub
  37. Sub GioiThieu()
  38.     Picture1.CurrentX = 2: Picture1.CurrentY = 196
  39.     Picture1.Print " X = Vcos(ø)t,   Y = Vsin(ø)t - 1/2gt2"
  40.     Picture1.Print "    maÌ V = Power,  ø = Goìc"
  41.     Picture1.Print " Written by truongphu on VB6"
  42.     Picture1.Print ""
  43.     Picture1.Print " DuÌng chuôòt, nhâìn (click) vaÌ rê (move) ðêÒ ngãìm (take aim), nhâìn lâÌn 2 ðêÒ bãìn (shoot)"
  44. End Sub
  45.  
  46. Sub Goc_Power()
  47.     Picture1.Line (10, 10)-(X, Y)
  48.     Picture1.CurrentX = vitriX - 5: Picture1.CurrentY = vitriY + 5
  49.     Picture1.Print "power: " & Power
  50.     Picture1.CurrentX = vitriX + 5: Picture1.CurrentY = vitriY - 5
  51.     Picture1.Print "goìc: " & Goc
  52. End Sub
  53. Private Sub Fire()
  54.     Const Gravity! = 10
  55.     Shotting = True
  56.     Picture1.Cls
  57.     GioiThieu
  58.     Goc_Power
  59.     VeDonVi
  60.     Dim i&: i = sMau(Int(Rnd * 7))
  61.  
  62.     Picture1.ForeColor = i
  63.     Picture1.CurrentX = 10
  64.     Picture1.CurrentY = 10
  65.     Dim dTime#, X!, Y!, Get_Time!, Z!
  66.         X = 10 'Xo
  67.        Y = 10 'Yo
  68.        Get_Time = GetTickCount
  69.  
  70.         Do While Y
  71.             If Y <= 0 Then
  72.                 Picture1.CurrentX = 250
  73.                 Picture1.CurrentY = 170
  74.                 Picture1.Print "ThõÌi gian ðaòn bay: " & Format(dTime / 4, "0.#") & " giây"
  75.                 Picture1.CurrentX = 250
  76.                 i = Power * Sin(Rads(Goc)) * (dTime / 2) - 0.5 * Gravity * ((dTime / 2) ^ 2) + 10 '+10 = Ðiêm Yo
  77.                Picture1.Print "Ðaòn bay cao nhâìt: " & i & " m"
  78.                 Picture1.CurrentX = 250
  79.                 Picture1.Print "Ðaòn bay xa: " & Int(X) & " m"
  80.                 Exit Do
  81.             End If
  82.             DoEvents
  83.             Z = 4 * 0.001
  84.             dTime = Z * (GetTickCount - Get_Time)
  85.             X = Power * Cos(Rads(Goc)) * dTime + 10 '+10 = Ðiêm Xo
  86.            Y = Power * Sin(Rads(Goc)) * dTime - 0.5 * Gravity * (dTime ^ 2) + 10 '+10 = Ðiêm Yo
  87.            Picture1.Line -(X, Y)
  88.         Loop
  89.         Shotting = False '' Câu sau là diêu kiên shoot hit the aim
  90.        If (Int(X) > Int(Pic3.Left) + 1) And (Int(X) <= Int(Pic3.Left) + Int(Pic3.Width) + 3) Then
  91.             Trung = True
  92.             Picture1.CurrentX = 200
  93.             Picture1.CurrentY = 105
  94.             Label1.Caption = "ÐaÞ bãìn truìng!"
  95.             'Tính Diêm
  96.            Dim Diêm%: Diêm = 3 + (6 - LanBan)
  97.             Tông = Tông + Diêm
  98.         Else
  99.             Label1.Caption = "CoÌn " & (6 - LanBan) / 2 & " lâÌn bãìn"
  100.         End If
  101.         Label2.Caption = "ÐiêÒm: " & Tông
  102.         Label2.Visible = True
  103.         Label1.Visible = True
  104.         If ((6 - LanBan) / 2 = 0) And (Trung = False) Then
  105.             Command1.Visible = True
  106.             Command1.SetFocus
  107.         End If
  108. End Sub
  109.  
  110. Private Function sMau&(màu As Integer)
  111.     Select Case màu
  112.         Case 0: sMau = &HFF0000
  113.         Case 1: sMau = &H800000
  114.         Case 2: sMau = &HC0&
  115.         Case 3: sMau = &HC000C0
  116.         Case 4: sMau = &H40C0&
  117.         Case 5: sMau = &H8000&
  118.         Case 6: sMau = &H404000
  119.     End Select
  120. End Function
  121. Sub XeChay(Optional ByVal level As Byte = 1)
  122.     Dim Them%
  123.     Select Case level
  124.         Case 1
  125.             If Int(Rnd * 2) Then Them = Int(Rnd * 35) Else Them = -Int(Rnd * 35)
  126.         Case 2
  127.             If Int(Rnd * 2) Then Them = Int(Rnd * 75) Else Them = -Int(Rnd * 100)
  128.         Case 3
  129.             If Int(Rnd * 2) Then Them = Int(Rnd * 150) Else Them = -Int(Rnd * 150)
  130.     End Select
  131.     Pic3.Left = Pic3.Left + Them
  132. End Sub
  133. Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  134.     If Shotting Or Command1.Visible Then Exit Sub
  135.     Label1.Visible = False: Label2.Visible = False
  136.     LanBan = LanBan + 1
  137.     If LanBan Mod 2 = 1 Then XeChay
  138.     If Trung Then
  139.         LanBan = 1
  140.         Trung = False
  141.     End If
  142.     If Ve = True Then Ve = False Else Ve = True
  143. End Sub
  144.  
  145. Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  146.     If Shotting Or Command1.Visible Then Exit Sub
  147.    
  148.     Dim XY#, Singocdoi#
  149.     If Ve Then
  150.         Picture1.Cls
  151.         GioiThieu
  152.         Picture1.Line (10, 10)-(X, Y)
  153.         VeDonVi
  154.         XY = Sqr((X - 10) ^ 2 + (Y - 10) ^ 2)
  155.         Power = Int(XY)
  156.         Singocdoi = (Y - 10) / XY
  157.         Goc = -Int(RadtoDeg(ArcSin(-Singocdoi)))
  158.         Goc_Power
  159.     Else
  160.         X = vitriX: Y = vitriY
  161.     End If
  162.     vitriX = X: vitriY = Y
  163. End Sub
  164.  
  165. Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  166.     If Shotting Or Command1.Visible Then Exit Sub
  167.     If Ve = False Then Fire
  168. End Sub
  169.  
  170. Function ArcSin(trisoSin As Double) As Double ' Chuyên sin sang Góc (Radian)
  171.    Dim Z#: Z = Sqr(1 - trisoSin * trisoSin)
  172.     If Abs(Z) <> 0 Then
  173.         ArcSin = Atn(trisoSin / Z)
  174.     Else
  175.         ArcSin = PI / 2 ' code truongphu
  176.   End If
  177. End Function
  178. Function RadtoDeg(Rad) As Double 'Chuyen radian sang degree
  179.    RadtoDeg = Rad * 180 / PI
  180. End Function
  181. Private Function Rads(ByVal Degree As Single) As Double   ' Convert Degrees to Radian
  182.    Rads = Degree / 180 * PI
  183. End Function
  184.  


Untitled.jpg


Project:
Game ban pháo - truongphu.rar
(49.68 KiB) Đã tải 113 lần


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

boy1234
Guru
Guru
Bài viết: 448
Ngày tham gia: T.Hai 13/10/2008 3:12 pm
Đến từ: Dĩ An - Bình Dương
Been thanked: 32 time

Re: Game bắn pháo

Gửi bàigửi bởi boy1234 » T.Hai 07/03/2016 4:19 pm

=D> Lâu wa vẫn còn mê VB6 hả bác.
Dạo này nghiện honda SS50


Quay về “Dự án mã nguồn mở”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách