Snake

  • VB6

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Neptun.

    Abend =)

    So ich bin grade dabei das spiel "Snake" zu programmieren.
    Ich bin grade am grübel wie ich den shape "knicken" kann.
    Shape bewegen habe ich hin bekommen aber es geht leider nicht zur seite.

    so sieht mein quellcode aus :

    Visual Basic-Quellcode

    1. If KeyCode = vbKeyW Then
    2. shp_snake.Top = shp_snake.Top - 300
    3. End If
    4. If KeyCode = vbKeyS Then
    5. shp_snake.Top = shp_snake.Top + 300
    6. End If
    7. If shp_snake.Top + shp_snake.Height >= shp_feld.Top + shp_feld.Height Then
    8. shp_snake.Top = shp_feld.Top + shp_feld.Height - shp_snake.Height
    9. End If
    10. If shp_snake.Top < shp_feld.Top Then
    11. shp_snake.Top = shp_feld.Top
    12. End If
    13. If KeyCode = vbKeyD Then
    14. shp_snake.Left = shp_snake.Left + 300
    15. End If
    16. If KeyCode = vbKeyA Then
    17. shp_snake.Left = shp_snake.Left - 300
    18. End If
    19. If shp_snake.Left + shp_snake.Width >= shp_feld.Left + shp_feld.Width Then
    20. shp_snake.Left = shp_feld.Left + shp_feld.Width - shp_snake.Width
    21. End If


    MfG David
    Cleverweise zeichnest du nicht einen Shape, sondern X. Dann brauchst du dich nur um den jeweils ersten und letzten kümmern. Der erste (bzw ein "neuer erster" wird in Bewegungsrichtung neu gezeichnet und der letzte wird "gelöscht".

    Trotzdem solltest du natürlich als Anfänger VB6 gleich mal auf den Müll der Geschichte werfen und dir das aktuelle VB Express runterladen.

    Es gibt nämlich KEINEN Grund jetzt noch mit VB6 ANZUFANGEN.
    Hallo B@ttlemaster,


    Shape bewegen habe ich hin bekommen aber es geht leider nicht zur seite.

    Der Code ist ok. Nur die Abfrage für den linken Rand fehlt. Mehrere Tasten
    fragst du besser mit Select Case ab.
    Ich bin grade am grübel wie ich den shape "knicken" kann.

    Ein Shape kann man nicht knicken. Da musst du schon mehrere nehmen.
    Am Besten als Control-Array.
    Gruss,

    Neptun

    B@ttlemaster schrieb:

    Nunja kann man nicht ganz sagen.

    Ach. Du machst das also schon 1-2 Jahre und hast schon einige Programme geschrieben, die mehr als 5000 Zeilen Code haben und im großen und ganzen fehlerfrei laufen und jedenfalls nicht kommentarlos abstürzen, egal was kommt?


    Und doch es gibt einen sehr guten grund, schule!

    Nur weil dein Lehrer von Programmieren so viel Ahnung hat, wie ne Kuh vom Fliegen, ist das doch kein Grund, dass du dich in deiner Freizeit auch noch mit VB6 beschäftigst.
    deswegen habe ich auch "knicken" geschrieben weil mir das eig schon klar war.
    Gut mehrere shapes habe ich auch schon überlegt. Aber so wie ich das verstanden werden die pixel nur verschoben wieso sollte das dann nicht mit einem shape klappen? Oder kann man die so aneinander setzten das es aussieht als ob es ein ganzes shape wäre?

    @ picoflop: Schreib was produktives was mir hilft, oder such dir bitte eine andere beschäftigung und verschwende deine Zeit nicht hier in diesem Thread.

    gruß

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „B@ttlemaster“ ()

    Hallo B@ttlemaster,
    Oder kann man die so aneinander setzten das es aussieht als ob es ein ganzes shape wäre?

    Ja.

    Probier' mal dies:

    Visual Basic-Quellcode

    1. ' Controls: 1 * Shape mit Index = 0
    2. Private Sub Form_Load()
    3. Dim i&
    4. Me.ScaleMode = vbPixels
    5. For i = 0 To 11
    6. If i > 0 Then Load Shape1(i)
    7. With Shape1(i)
    8. .Shape = vbShapeCircle
    9. .FillStyle = vbFSSolid
    10. .FillColor = vbYellow
    11. If i < 4 Then
    12. .Move 100, 20 + i * .Height, 32, 32
    13. Else
    14. .Move 100 + (i - 4) * .Width, 20 + 4 * .Height, 32, 32
    15. End If
    16. .Visible = True
    17. End With
    18. Next i
    19. End Sub
    Gruss,

    Neptun