Künstliche "Schwerkraft" erstellen

  • VB6

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Aydo.

    Künstliche "Schwerkraft" erstellen

    Hallo erstmal,

    zunächst möchte ich einige Dinge sagen :P :

    Ich lerne VB6.0 bzw. "programieren" gerade erst kennen, d.h. der Quelltext ist nicht gerade professionel oder ganz hart, "intelligent" aufgebaut. Ich habe mir fast alles selbst ausgedacht indem ich ganz oft versucht und versucht habe, ohne irgendwelche Hilfe (ob das schlau war?). Da ich keine Algorithmen verwendet habe (weil ich nicht weis, wie ich welche mache) sind die Codes recht lang.

    Quellcode:

    Form1

    Visual Basic-Quellcode

    1. Dim xpos As Single
    2. Dim ypos As Single
    3. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    4. Select Case KeyCode
    5. Case vbKeyLeft
    6. Call toLeft
    7. Case vbKeyRight
    8. Call toRight
    9. Case vbKeyUp
    10. Call Up
    11. Case vbKeyDown
    12. Call down
    13. End Select
    14. End Sub
    15. Private Sub Form_Load()
    16. xpos = 0
    17. ypos = 4400
    18. Image1.Move xpos, ypos
    19. End Sub
    20. Private Sub toLeft()
    21. xpos = xpos - 200
    22. If xpos < 0 Then
    23. xpos = 0
    24. End If
    25. Image1.Move xpos, ypos
    26. End Sub
    27. Private Sub toRight()
    28. xpos = xpos + 200
    29. If xpos > 4400 Then
    30. xpos = 4400
    31. End If
    32. Image1.Move xpos, ypos
    33. End Sub
    34. Private Sub Up()
    35. ypos = ypos - 50
    36. Image1.Move xpos, ypos
    37. Delay 1
    38. ypos = ypos - 50
    39. Image1.Move xpos, ypos
    40. Delay 1
    41. ypos = ypos - 50
    42. Image1.Move xpos, ypos
    43. Delay 1
    44. ypos = ypos - 50
    45. Image1.Move xpos, ypos
    46. Delay 1
    47. ypos = ypos - 25
    48. Image1.Move xpos, ypos
    49. Delay 1
    50. ypos = ypos - 25
    51. Image1.Move xpos, ypos
    52. Delay 1
    53. ypos = ypos - 25
    54. Image1.Move xpos, ypos
    55. Delay 1
    56. ypos = ypos - 25
    57. Image1.Move xpos, ypos
    58. Delay 1
    59. ypos = ypos - 15
    60. Image1.Move xpos, ypos
    61. Delay 1
    62. ypos = ypos - 15
    63. Image1.Move xpos, ypos
    64. Delay 1
    65. ypos = ypos - 15
    66. Image1.Move xpos, ypos
    67. Delay 1
    68. ypos = ypos - 15
    69. Image1.Move xpos, ypos
    70. Delay 1
    71. ypos = ypos - 10
    72. Image1.Move xpos, ypos
    73. Delay 1
    74. ypos = ypos - 10
    75. Image1.Move xpos, ypos
    76. Delay 1
    77. ypos = ypos - 10
    78. Image1.Move xpos, ypos
    79. Delay 1
    80. ypos = ypos - 10
    81. Image1.Move xpos, ypos
    82. ypos = ypos + 10
    83. Image1.Move xpos, ypos
    84. Delay 1
    85. ypos = ypos + 10
    86. Image1.Move xpos, ypos
    87. Delay 1
    88. ypos = ypos + 10
    89. Image1.Move xpos, ypos
    90. Delay 1
    91. ypos = ypos + 10
    92. Image1.Move xpos, ypos
    93. Delay 1
    94. ypos = ypos + 15
    95. Image1.Move xpos, ypos
    96. Delay 1
    97. ypos = ypos + 15
    98. Image1.Move xpos, ypos
    99. Delay 1
    100. ypos = ypos + 15
    101. Image1.Move xpos, ypos
    102. Delay 1
    103. ypos = ypos + 15
    104. Image1.Move xpos, ypos
    105. Delay 1
    106. ypos = ypos + 25
    107. Image1.Move xpos, ypos
    108. Delay 1
    109. ypos = ypos + 25
    110. Image1.Move xpos, ypos
    111. Delay 1
    112. ypos = ypos + 25
    113. Image1.Move xpos, ypos
    114. Delay 1
    115. ypos = ypos + 25
    116. Image1.Move xpos, ypos
    117. Delay 1
    118. ypos = ypos + 50
    119. Image1.Move xpos, ypos
    120. Delay 1
    121. ypos = ypos + 50
    122. Image1.Move xpos, ypos
    123. Delay 1
    124. ypos = ypos + 50
    125. Image1.Move xpos, ypos
    126. Delay 1
    127. ypos = ypos + 50
    128. Image1.Move xpos, ypos
    129. If ypos > 4400 Then
    130. ypos = 4400
    131. Image1.Move xpos, ypos
    132. End If
    133. End Sub
    134. Private Sub down()
    135. ypos = ypos + 200
    136. If ypos > 4400 Then
    137. ypos = 4400
    138. End If
    139. Image1.Move xpos, ypos
    140. End Sub
    141. Private Sub Timer1_Timer()
    142. Label1 = "X:" & xpos
    143. Label2 = "Y:" & ypos
    144. End Sub


    Modul1

    Visual Basic-Quellcode

    1. Option Explicit
    2. Public Declare Function GetTickCount Lib "kernel32" () As Long
    3. Public Sub Delay(nSekunden As Long)
    4. Dim TimeOut As Long
    5. TimeOut = (GetTickCount / 20) + nSekunden
    6. Do
    7. DoEvents
    8. Loop Until TimeOut < (GetTickCount / 20)
    9. End Sub


    So wenn ich jetzt nach obendrücke, "springt" image1. Mein Problem ist, wenn ich springe kann ich ,wenn ich nocheinmal PfeilOben drücke, im Sprung noch einmal springen. Wie kann ich das verhindern?

    Danke !
    Aydo
    Nicht direkt zum Thema, aber, wenn du gerade mit VB anfängst, dann gewöhn dir nicht den schlechten VB6 Stil an.
    VB2008 Express ist kostenlos und weitaus Leistungsstärker als VB6.
    Zudem ist es hier verbreiteter und dir können demnach auch mehr helfen.

    Ansonsten mit dem Versuchen und Versuchen und Versuchen ist super, so lernt man am besten (so habe ich damals auch angefangen).
    Danke für die Antworten!

    Dodo schrieb:


    Nicht direkt zum Thema, aber, wenn du gerade mit VB anfängst, dann gewöhn dir nicht den schlechten VB6 Stil an.
    VB2008 Express ist kostenlos und weitaus Leistungsstärker als VB6.
    Zudem ist es hier verbreiteter und dir können demnach auch mehr helfen.

    Ansonsten mit dem Versuchen und Versuchen und Versuchen ist super, so lernt man am besten (so habe ich damals auch angefangen).
    SO genau das habe ich jetzt erstmal getan!
    Und meine Codes sind schon fertig (vb2008).

    Visual Basic-Quellcode

    1. Public Class Form1
    2. Dim xpos As Integer
    3. Dim ypos As Integer
    4. Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    5. Select Case e.KeyCode
    6. Case Keys.Left
    7. goLeft()
    8. Case Keys.Right
    9. goRight()
    10. Case Keys.Up
    11. goUp()
    12. Case Keys.Down
    13. goDown()
    14. End Select
    15. End Sub
    16. Private Sub goLeft()
    17. xpos = xpos - 10
    18. If xpos <= 0 Then
    19. xpos = 0
    20. End If
    21. PictureBox1.Location = New Point(xpos, ypos)
    22. End Sub
    23. Private Sub goRight()
    24. xpos = xpos + 10
    25. If xpos >= Me.Width - PictureBox1.Width - 15 Then
    26. xpos = Me.Width - PictureBox1.Width - 15
    27. End If
    28. PictureBox1.Location = New Point(xpos, ypos)
    29. End Sub
    30. Private Sub goUp()
    31. ypos = ypos - 10
    32. PictureBox1.Location = New Point(xpos, ypos)
    33. System.Threading.Thread.Sleep(50)
    34. ypos = ypos - 10
    35. PictureBox1.Location = New Point(xpos, ypos)
    36. System.Threading.Thread.Sleep(50)
    37. ypos = ypos - 10
    38. PictureBox1.Location = New Point(xpos, ypos)
    39. System.Threading.Thread.Sleep(50)
    40. ypos = ypos + 20
    41. PictureBox1.Location = New Point(xpos, ypos)
    42. System.Threading.Thread.Sleep(50)
    43. ypos = ypos + 10
    44. PictureBox1.Location = New Point(xpos, ypos)
    45. System.Threading.Thread.Sleep(50)
    46. End Sub
    47. Private Sub goDown()
    48. ypos = ypos + 10
    49. If ypos >= Me.Height - PictureBox1.Height - 35 Then
    50. ypos = Me.Height - PictureBox1.Height - 35
    51. End If
    52. PictureBox1.Location = New Point(xpos, ypos)
    53. End Sub
    54. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    55. xpos = 0
    56. ypos = Me.Height - PictureBox1.Height - 35
    57. PictureBox1.Location = New Point(xpos, ypos)
    58. End Sub
    59. Private Sub btnXYpos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
    60. End Sub
    61. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    62. lblXpos.Text = "X:" & xpos
    63. lblYpos.Text = "Y:" & ypos
    64. End Sub
    65. End Class


    Mein Problem ist jetzt folgendes:
    Ich kann mich im Sprung nicht mehr nach links bzw. rechts bewegen. Lief mit vb6 ganz gut, bei 2008 klappts nicht :\.

    ich mache mal einen neuen Thread auf, weis nicht wie ich das vb6 im Titel ändere.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Aydo“ ()