Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
shoot simulator - Form1.vb

Form1.vb

Caricato da: Walker93
Scarica il programma completo

  1. Public Class Form1
  2.     Dim pos As New Point
  3.     Dim alte As Single = 0
  4.     Dim dist As Single = 0
  5.     Dim velx, vely, vel, altmax As Single
  6.     Dim angr, angg, i As Double
  7.     Dim start, massimo As Integer
  8.     Dim mom As Integer
  9.     Dim temp As Double
  10.     Dim att, attrad, xsotto As Double
  11.     Private Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Keys) As Short
  12.  
  13.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  14.         vel = velo.Text
  15.         altmax = proiettile.Top
  16.         massimo = sfondo.Top
  17.     End Sub
  18.  
  19.     Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
  20.         proiettile.Top = sfondo.Top - proiettile.Height
  21.     End Sub
  22.  
  23.     Private Sub vai_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles vai.Click
  24.         angg = ango.Text
  25.         vel = velo.Text
  26.         angr = angg * Math.PI / 180
  27.         velx = Math.Cos(angr) * vel
  28.         vely = vel * Math.Sin(angr)
  29.         Timer1.Start()
  30.         vai.Enabled = False
  31.         Button1.Enabled = False
  32.         Button2.Enabled = False
  33.     End Sub
  34.  
  35.     Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
  36.         i += 0.15
  37.         If i = 0.15 Then
  38.             attrad = Math.Atan((vely / velx))
  39.             att = attrad / Math.PI * 180
  40.             dist += ((vel ^ 2 * Math.Sin(2 * angr)) / g.Text)
  41.             dimax.Text = dist
  42.             altmax = Math.Abs((((vel ^ 2) * Math.Sin(angr) * Math.Cos(angr)) / g.Text) / 2)
  43.             almax.Text = altmax
  44.             temp += (2 * vel * Math.Sin(angr)) / g.Text
  45.             tem.Text = temp
  46.             start = proiettile.Left
  47.         End If
  48.  
  49.         proiettile.Top = proiettile.Top - vely * i + (1 / 2 * g.Text * i ^ 2)
  50.         If proiettile.Top < massimo Then
  51.             massimo = proiettile.Top
  52.         End If
  53.         If proiettile.Top + proiettile.Height >= sfondo.Top Then
  54.             i = 0
  55.             Timer1.Enabled = False
  56.             proiettile.Top = sfondo.Top - proiettile.Height
  57.             vai.Enabled = True
  58.             Button1.Enabled = True
  59.             Button2.Enabled = True
  60.         End If
  61.         proiettile.Left = proiettile.Left + velx * i
  62.         If proiettile.Left > sfondo.Width Then
  63.             Threading.Thread.Sleep(100)
  64.             proiettile.Left = 0
  65.             ind.Left = 0
  66.             Threading.Thread.Sleep(100)
  67.         ElseIf proiettile.Left < 0 Then
  68.             Threading.Thread.Sleep(100)
  69.             proiettile.Left = sfondo.Width - proiettile.Width
  70.             ind.Left = proiettile.Left
  71.             Threading.Thread.Sleep(100)
  72.         End If
  73.         ind.Left = proiettile.Left
  74.         If proiettile.Top < PictureBox1.Top Then
  75.             ind.Visible = True
  76.             proiettile.Visible = False
  77.         Else
  78.             ind.Visible = False
  79.             proiettile.Visible = True
  80.         End If
  81.     End Sub
  82.  
  83.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  84.         proiettile.Top = sfondo.Top - proiettile.Height - pos.Y
  85.         proiettile.Left = sfondo.Left + pos.X
  86.         almax.Text = 0
  87.         dimax.Text = 0
  88.         tem.Text = 0
  89.     End Sub
  90.  
  91.     Private Sub g_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles g.TextChanged
  92.         If g.Text = "" Then g.Text = 0
  93.         If Not IsNumeric(g.Text) Then Exit Sub
  94.     End Sub
  95.  
  96.     Private Sub ango_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ango.TextChanged
  97.         If ango.Text = "" Then ango.Text = 0
  98.     End Sub
  99.  
  100.     Private Sub velo_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles velo.TextChanged
  101.         If velo.Text = "" Then velo.Text = 0
  102.     End Sub
  103.  
  104.     Private Sub Form1_HelpButtonClicked(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.HelpButtonClicked
  105.         Form2.Show()
  106.     End Sub
  107.  
  108.     Private Sub Form1_HelpRequested(ByVal sender As System.Object, ByVal hlpevent As System.Windows.Forms.HelpEventArgs) Handles MyBase.HelpRequested
  109.         Form2.Show()
  110.     End Sub
  111.  
  112.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  113.         proiettile.Top = sfondo.Top - proiettile.Height
  114.         proiettile.Left = sfondo.Left
  115.         velo.Text = 10
  116.         ango.Text = 45
  117.         g.Text = "9,81"
  118.         almax.Text = 0
  119.         dimax.Text = 0
  120.         tem.Text = 0
  121.     End Sub
  122.  
  123.     Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
  124.         If GetAsyncKeyState(Keys.Escape) < 0 Then
  125.             If Timer1.Enabled Then
  126.                 Timer1.Stop()
  127.                 proiettile.Top = sfondo.Top - proiettile.Height
  128.                 proiettile.Left = start
  129.                 i = 0
  130.                 dist = 0
  131.                 ind.Visible = False
  132.                 proiettile.Visible = True
  133.                 vai.Enabled = True
  134.                 Button1.Enabled = True
  135.                 Button2.Enabled = True
  136.             End If
  137.         End If
  138.     End Sub
  139. End Class