Jeux tennis

Description

c jeux et simple mais il y a des methode mathematique pour compris c jeux
je dépose mon programme qui est un jeu de tennis en 2D

Source / Exemple :


ds le module
Public DX As Integer, DX1 As Integer, DH As Integer, DV As Integer, _
DS As Integer, Dyg As Integer, Dyd As Integer, size_x As Integer, _
size_y As Integer, YVirtuelle As Integer, YVrai As Integer, Ymax As Integer, _
Xmax As Integer, VS As Integer, VN As Integer, YDebut As Integer
Public Perdu      As Boolean
Public Bool1      As Boolean
Public Bool2      As Boolean
Public Lance      As Boolean
Public Tennis      As TTennis
Public Raquet1    As TRaquette
Public Raquet2    As TRaquette
'Public VS         As Integer
'Public VN         As Integer
'Public YDebut     As Integer
'Public DX As Integer, DX1 As Integer, DH As Integer, DV As Integer
'Public DS As Integer, Dyg As Integer, Dyd As Integer

Enum EDirection
    AUCUN = 0
    NORD = 1
    SUD = 2
    EST = 3
    OUEST = 4
End Enum

Public Type TRaquette
    RDirection  As EDirection
    XR          As Integer
    YR          As Integer
    RDirectV    As EDirection
    RDirectH    As EDirection
    n           As Integer
    Touche      As Integer
End Type
Public Type TTennis
    XT           As Integer
    YT           As Integer
    TDirection   As Integer
    Mvt2         As Boolean
    Mvt1         As Boolean
    TDirectV      As EDirection
    TDirectH      As EDirection
    PremiFois    As Boolean
End Type

ds FORM:
Private Sub CmdOK_Click()
  debut_jeu
  Timer2.Enabled = True
  Terrain.SetFocus
  Lance = False
End Sub
Private Sub CmdQuitter_Click()
 End
End Sub
Private Sub Form_Load()
 debut_jeu
End Sub
Private Sub Terrain_KeyDown(KeyCode As Integer, Shift As Integer)
    Raquet1.Touche = KeyCode
  If Perdu = False Then
    Select Case Raquet1.Touche
    Case vbKeyUp
       Timer1.Enabled = True
       Raquet1.RDirection = NORD
       ProCRaquet1
    Case vbKeyDown
       Timer1.Enabled = True
       Raquet1.RDirection = SUD
       ProCRaquet1
    Case vbKeyRight
       If Lance = False Then
         Timer2.Enabled = True
         Tennis.TDirectH = EST
         Tennis.TDirectV = Raquet1.RDirection
         Bool1 = True
         Bool2 = True
         Lance = True
        End If
    Case vbKeyLeft
       Raquet1.RDirection = AUCUN
       Timer1.Enabled = False
    Case Else
    End Select
  End If
End Sub
Private Sub Timer2_Timer()
  If Bool1 = True Then
     If Tennis.XT = DX Then
        YDebut = Tennis.YT
        Tennis.PremiFois = True
     End If
      ProcPositionY
      ProcPositionX
     If Tennis.PremiFois = True Then
       Equation
       Tennis.PremiFois = False
     End If
      c = size_y * 18
     If YVrai <= size_y * 18 And YVrai >= size_y / 2 Then
       Raquet2.n = YVrai
     End If
     If Raquet2.YR > Raquet2.n Then
       Raquet2.RDirectV = NORD
     Else
       Raquet2.RDirectV = SUD
     End If
   '**************************************************************************************
    If Tennis.XT = DX Or Tennis.XT = size_x * 27 Or _
    Tennis.YT = 0 Or Tennis.YT = size_y * 18 Then
         Beep
    End If
   '**************************************************************************************
     If Tennis.XT < size_x * 1.5 Or Tennis.XT > DX1 Then
        Timer1.Enabled = False
        Timer2.Enabled = False
        ImgMessage.Visible = True
        CmdOK.Visible = True
        CmdQuitter.Visible = True
        Bool1 = False
        Perdu = True
        Raquet1.Touche = 0
     End If
  End If
End Sub
Private Sub ProcPositionX()
    DX = 2 * size_x
    DX1 = size_x * 25.5
    Dyg = Raquet1.YR - 3 * size_y / 4
    Dyg1 = Raquet2.YR - 3 * size_y / 4
    Dyd = Raquet1.YR + 3 * size_y - size_y / 4
    Dyd1 = Raquet2.YR + 3 * size_y - size_y / 4
    DV = Tennis.YT - Raquet1.YR
    DH = Tennis.XT - Raquet1.XR
    DS = Sqr(DH ^ 2 + DV ^ 2)
   '**************************************************************************************
     If (Tennis.YT < DX1 Or (Tennis.YT < Dyg1 Or Tennis.YT > Dyd1)) And Tennis.TDirectH = EST Then
         Tennis.XT = Tennis.XT + size_x / 2
          Tennis.TDirectH = EST
        If Tennis.XT = DX1 And (Tennis.YT >= Dyg1 And Tennis.YT <= Dyd1) Then
          Tennis.TDirectH = OUEST
        End If
         ProcTunis
     Else
         Tennis.TDirectH = OUEST
     End If
   '**************************************************************************************
     If (Tennis.XT > DX Or (Tennis.YT < Dyg Or Tennis.YT > Dyd)) And Tennis.TDirectH = OUEST Then
         Tennis.XT = Tennis.XT - size_x / 2
          Tennis.TDirectH = OUEST
        If Tennis.XT = DX And (Tennis.YT >= Dyg And Tennis.YT <= Dyd) Then
          Tennis.TDirectH = EST
        End If
         ProcTunis
     Else
         Tennis.TDirectH = EST
     End If
End Sub
Private Sub ProcPositionY()
    DX = 2 * size_x
    Dyg = Raquet1.YR - 3 * size_y / 4
    Dyd = Raquet1.YR + 3 * size_y - size_y / 4
    DV = Tennis.YT - Raquet1.YR
    DH = Tennis.XT - Raquet1.XR
    DS = Sqr(DH ^ 2 + DV ^ 2)
  '**************************************************************************************
    If Tennis.YT > 0 And Tennis.TDirectV = NORD And Perdu = False Then
        Tennis.YT = Tennis.YT - size_y / 2
         Tennis.TDirectV = NORD
        ProcTunis
    Else
         Tennis.TDirectV = SUD
    End If
  '**************************************************************************************
    If Tennis.YT < size_y * 18 And Tennis.TDirectV = SUD And Perdu = False Then
        Tennis.YT = Tennis.YT + size_y / 2
        Tennis.TDirectV = SUD
       If Tennis.YT = size_y * 18 Then
         Tennis.TDirectV = NORD
       End If
       ProcTunis
    Else
        Tennis.TDirectV = NORD
    End If
End Sub
Private Sub ProcTunis()
    CTunis.Left = Tennis.XT
    CTunis.Top = Tennis.YT
End Sub
Private Sub ProcChoc()
'    DX = 2 * size_x
'    Dyg = Raquet.YR - size_y
'    Dyd = Raquet.YR + 3 * size_y
'    DV = Tennis.YT - Raquet.YR
'    DH = Tennis.XT - Raquet.XR
'    DS = Sqr(DH ^ 2 + DV ^ 2)
'    EAC1 = Sqr(Raquet.YR ^ 2)
'    EAC2 = Sqr(Tennis.XT ^ 2 + Tennis.YT ^ 2)
'    VRC1 = EAC1 - (EAC1 / 2) + EAC2 * 1.4
'    VRC2 = EAC2 - (EAC1 / 4) + (EAC2 / 2)
'    Select Case Tennis.TDirection
'       Case SUD:
'       Case NORD:
'       Case AUCUN:
'       ' DirectH = EST
'    End Select
End Sub
Private Sub Equation()
    Xmax = size_x * 26
    Ymax = size_y * 18
    DX = 2 * size_x
 If Tennis.TDirectV = NORD Then
   YVirtuelle = (DX - Xmax) + YDebut
   If Abs(YVirtuelle) <= Ymax Then
    YVrai = Abs(YVirtuelle)
   End If
   If Abs(YVirtuelle) > Ymax Then
    YVrai = Abs(Abs(YVirtuelle) - 2 * Ymax)
   End If
 End If
 '----------------------------------------
 If Tennis.TDirectV = SUD Then
   YVirtuelle = (Xmax - DX) + YDebut
   If Abs(YVirtuelle) > 2 * Ymax Then
    YVrai = Abs(YVirtuelle) - 2 * Ymax
   End If
   If Ymax < Abs(YVirtuelle) <= 2 * Ymax Then
    YVrai = Abs(Abs(YVirtuelle) - 2 * Ymax)
   End If
 End If
End Sub
Private Sub ProCRaquet1()
    Select Case Raquet1.RDirection
        Case SUD:
         If Raquet1.YR <= size_y * 15.5 Then
            Raquet1.YR = Raquet1.YR + size_y / 2
            If Bool1 = False Then
              Tennis.YT = Tennis.YT + size_y / 2
            End If
         Else
         End If
        Case NORD:
         If Raquet1.YR >= size_y / 2 Then
            Raquet1.YR = Raquet1.YR - size_y / 2
            If Bool2 = False Then
              Tennis.YT = Tennis.YT - size_y / 2
            End If
         Else
         End If
    End Select
End Sub
Private Sub ProCRaquet2()
    If Raquet2.YR >= size_y / 2 And Raquet2.RDirectV = NORD Then
      If Raquet2.YR > Raquet2.n Then
        Raquet2.YR = Raquet2.YR - size_y / 2
         Raquet2.RDirectV = NORD
      End If
         CRaquet(1).Top = Raquet2.YR
    Else
         Raquet2.RDirectV = SUD
    End If
   '**************************************************************************************
    If Raquet2.YR <= size_y * 15.5 And Raquet2.RDirectV = SUD Then
      If Raquet2.YR < Raquet2.n Then
        Raquet2.YR = Raquet2.YR + size_y / 2
        Raquet2.RDirectV = SUD
      End If
      If Raquet2.YR = size_y * 18 Then
        Raquet2.RDirectV = NORD
      End If
       CRaquet(1).Top = Raquet2.YR
    Else
        Raquet2.RDirectV = NORD
    End If
End Sub
Private Sub Timer1_Timer()
ProCRaquet1
 If Bool1 = True Then
 Timer3.Enabled = True
 Else
  Timer3.Enabled = False
 End If
CRaquet(0).Top = Raquet1.YR
ProcTunis
End Sub
Private Sub debut_jeu()
  Const MAX_X = 28
  Const MAX_Y = 19
  YDebut = 0
  size_x = Terrain.ScaleWidth / MAX_X
  size_y = Terrain.ScaleHeight / MAX_Y
  DX = 2 * size_x
  DX1 = size_x * 25.5
  Dyg = Raquet1.YR - size_y
  Dyg1 = Raquet2.YR - size_y
  Dyd = Raquet1.YR + 3 * size_y
  Dyd1 = Raquet2.YR + 3 * size_y
  DV = Tennis.YT - Raquet1.YR
  DH = Tennis.XT - Raquet1.XR
  DS = Sqr(DH ^ 2 + DV ^ 2)
  VS = size_y / 2
  VN = size_y / 2
  CTunis.Width = size_x
  CTunis.Height = size_y
  CRaquet(0).Left = size_x
  CRaquet(0).Top = size_y * 9
  CRaquet(1).Left = size_x * 26
  CRaquet(1).Top = size_y * 9
  Terrain.ScaleMode = vbPixels
  
  Terrain.AutoRedraw = True
  Raquet1.XR = size_x
  Raquet1.YR = size_y * 9
  Raquet2.XR = size_x * 26
  Raquet2.YR = size_y * 9
  CTunis.Left = size_x * 2
  CTunis.Top = size_y * 9 + Int(size_y * 3 / 2)
  Tennis.XT = size_x * 2
  Tennis.YT = size_y * 9 + Int(size_y * 3 / 2)
    Timer1.Enabled = False
    Timer2.Enabled = False
    ImgMessage.Visible = False
    CmdOK.Visible = False
    CmdQuitter.Visible = False
    Perdu = False
  Bool1 = False
  Bool2 = False
End Sub

Private Sub Timer3_Timer()
ProCRaquet2
End Sub

Conclusion :


je dépose mon programme qui est un jeu de tennis en 2D Merci
Pour plus d'infos n'hésitez pas à m'écrire à mejrhit@hotmail.com !!

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.