Kollisionsabfrage

  • VB6

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von Major.

    ... was heißt nichts gegangen?
    du musst natürlich schon erstmal die bewegung an sich proggen (keyascii,etc) und dann in diese routine den code einbauen.

    PS: wird leichter wenn du erstmal das spiel aus einer seitlichen Perspektive machst.

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

    Ich mochte das Schiff janicht mit den Tasten steuern,ich will das,wenn ichmit der Maus nach rechts fahre , das das Schiff nach rechts geht.
    Die bewegung hab ich eh geproggt: Timer1_timer()
    schiff.top=schiff.top+70
    stein.top=stein.top-60
    end sub
    mfg
    Major
    Hi,

    hätte mal ne änliche frage zu so einem thema...

    ich hab hier ein programm mit mehreren sich bewegenen Shapes... nun brauch ich eine kollissionskontrolle in dem sinne das wenn sich zwei der shapes berühren irgendwas passiert... (zb. ne Text Bos aufgeht doer was weiß ich)

    bin aber selber noch zimlicher neuling... und steh direkt noch unter Leistungsdruck *G*

    bin für jede Hlfe dankbar...

    mfg

    Man In Blue
    Hi,

    @Major
    Wo liegt eigentlich Dein Problem ???
    Was funktioniert nicht ???
    Wo ist Dein bisheriger Quelltext ???
    Warum sollen wir es nochmal erklären ???

    Schau dir mal die Postings von "ichbines" und "Pascal" an. Verarbeite die Informationen und falls Du nicht klar kommst nimm Dir den Hinweis von "Frank Grimm" zu Herzen oder schildere uns genauer die Probleme!!!


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de
    ich hab hier ein programm mit mehreren sich bewegenen Shapes... nun brauch ich eine kollissionskontrolle in dem sinne das wenn sich zwei der shapes berühren irgendwas passiert... (zb. ne Text Bos aufgeht doer was weiß ich)


    Ich hab gestern schon die Lösung gewusst, aber mir ist ums Verrecken ein Wort nicht eingefallen : Steuerelementefeld.

    Damit kannst Du alle Steuerelemente der gleichen Objektklasse (in Deinem Fall die Shapes) über einen Index ansprechen und die Position ermitteln (.Left / .Top / Width / .Height). Wenn Du diese Daten ermittelt hast, kannst Du in einer zweiten Schleife nochmals alle Controls durchlaufen und nachssehen, ob es kollidiert.

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

    Ok.Ich kann euch den Code mal hier reinkopieren:
    Private Sub Timer1_Timer()
    Image1.Top = Image1.Top + 70
    Image2.Top = Image2.Top + 70
    Image3.Top = Image3.Top + 70
    End Sub





    Private Sub Timer2_Timer()
    Static counter As Long
    If counter < 2 Then
    counter = counter
    Zaehler3 = Zaehler3 + 1
    Label8.Visible = True
    Timer7.Enabled = False
    End If
    End Sub

    Private Sub Timer7_Timer()
    Static counter As Long
    If counter < 2 Then
    counter = counter
    Zaehler = Zaehler + 1
    Label6.Visible = False
    Label7.Visible = True
    Timer2.Enabled = True
    End If

    End Sub

    Private Sub Timer8_Timer()
    Static counter As Long
    If counter < 5 Then
    counter = counter
    Zaehler2 = Zaehler2 + 1
    Image1.Visible = True
    Image2.Visible = True
    Image3.Visible = True
    Timer1.Enabled = True
    End If
    If Timer8.Enabled = True Then
    Label1.Visible = True
    Label2.Visible = True
    Label3.Visible = True
    Label4.Visible = True
    Label6.Visible = True
    Label7.Visible = True
    Timer7.Enabled = True
    Timer9.Enabled = True
    Label6.Visible = True
    End If
    End Sub



    Private Sub Timer9_Timer()
    Label1.Top = Label1.Top - 70
    Label2.Top = Label2.Top - 70
    Label3.Top = Label3.Top - 70
    Label4.Top = Label4.Top - 70
    Label5.Top = Label5.Top - 70


    End Sub


    Das is der Code und ich will das die Images wenn sie mit den labels kollidieren dass der PC das merkt und die Images verschwinden und dann was weiß ich z.B.: ein anderes image sichtbar wird.