kuriose Ball bewegungen

  • VB6

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Avalox.

    kuriose Ball bewegungen

    Guten Tag,

    hab mich jetzt mal im Forum registriert weil ich ein Problem im VB hab. Und zwar bin ich dabei ein Spiel programmieren. Sowas wie "DX-Ball" falls jemand das kennt.

    Das Problem ist, wenn der Ball auf einen Stein "zufliegt" und diesen treffen soll bricht er vorher ab und rollt nach rechts weg, ohne das er ihn berührt, der Abstand zw. dem Ball und dem Stein der getroffen werden sollte ist so ziemlich genau die höhe des Steines.

    Mein Test ist wie folgt:
    If (ball.Height + ball.Top) >= s7.Top And (ball.Left >= s7.Left And ball.Left <= s7.Left + s7.Width) Then Y = -Y

    s7 = der Stein

    Das komische ist allerdings, wenn der Stein von oben getroffen wird funktioniert es wunderbar. Nur wenn er von unten getroffen wird, nimmt der Ball ein sehr komische laufbahn.

    Danke für Eure Hilfe
    also das hat auch nicht geholfen, sobald der ball.left größer s7.left ist und den "stein" berührt hat, is das selbe in grün.

    also das projekt ist soaufgebaut das die steine so liegen

    s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11

    so bald nun der ball größer s7.left ist dann hat er ein problem mit s8 s9 ...

    kann man das über den index lösen? wenn ja wie funktioniert das richtig?
    Um das, was mein Vorposter wahrscheinlich meinte in schöne Worte zu fassen:
    Wenn der Ball von links kommt, musst du Ball.right mit Stein.left vergleichen. Wenn der Ball von rechts kommt, musst du Ball.left mit Stein.right vergleichen.
    Da es ja bekanntlich die Eigenschaft .right nicht gibt, musst du den wert mit .Left + .Width ausrechnen.

    Hoffe das löst dein Problem


    so long..
    Andy
    Jub is mir schon klar, hab viele verschiedene varianten ausprobiert.

    1.)

    If ball.Top = 840 Or ball.Top = 1170 Or ball.Left = 5880 Or ball.Left = 6720 Then
    Y = -Y
    s8.Visible = False
    End If


    2.)

    If ball.Top = s9.ScaleHeight And ball.Left <= s9.ScaleWidth Then
    Y = -Y
    s9.Visible = False
    End If

    so das waren meine beiden letzten varianten.

    Es funktioniert ja auch das die Steine verschwinden (das is ja auch nicht das problem), aber das der ball solche komischen bewegungen macht ist halt auch noch.

    soll heißen, wenn der ball schräg nach oben(rechts) fliegt und den stein trifft, dann prallt er ab und fliegt wieder nach unten, dann macht er einen nicht nachvollziehbaren zacken und fliegt weiter.