tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
12
ZUGRIFFE
774
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Mailyn
    Mailyn Mailyn ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Beiträge
    214
    Also, wie kann man irgendein Objekt, zum Beispiel Label o.ä. von einem "Ort" auf dr Form zu einem Anderen bewegen und zwar gleichmäßig, also dass er Eindruck entsteht, es würde schweben? Jede einzelne Bewegung per Timer zu machen, ist mir viel zu aufwendig!
    Hat jemand eine Idee?
     

  2. #2
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Was ist daran aufwendig, es per Timer zu machen? Und was verstehst du unter "einzelne" Bewegung?
    Mach doch einfach einen Timer, der das Label bei jedem Timer-Ereignis um beispielsweise 10 Einheiten nach rechts und 4 nach unten verschiebt, so lange, bis das Label am richtigen Platz angekommen ist.
     
    hihi = -h²

  3. #3
    Registriert seit
    May 2004
    Ort
    Computer (Nürnberg)
    Beiträge
    689
    Hallo Maylin,

    du mit deinen Labels .
    Also die Methode mit dem Timer würde mir da trotzdem als sinnvollste einfallen. Das ist doch gar nicht aufwendig du schreibst einfach einen Code in der Art "label1.left = label1.left + 1" und stellst beim Timer einen beliebigen Intervall ein. Natürlich kannst du das ganze noch verfeinern, so zum Beispiel Variablen benutzen, die du während der Laufzeit änderst, und und und.
    Ich wüsste jetzt auch keine andere Methode. Natürlich könntest du noch den gleichen Code in ein Button-Click-Ereignis einfügen oder die X-Koordinaten der Maus überprüfen und danach auch das Label ausrichten.
    Wichtig ist nur, was du dir vorgestellt hast, wie du dein Label bewegen möchtest. Das Bewegen ist soweit nicht das Problem.

    Es gibt sicherlich auch 'ne API, in der du eingeben kannst, welches die Startpostion, die Endpostition und die Schrittweite ist. Aber API's sehe ich persönlich immer als "Weed" an, du nimmst sie nur, wenn du sie brauchst oder wenn du dich schlecht fühlst .

    Solch eine API könntest du dir in einer ähnlichen Art auch zusammencoden. Einfach die Strecke zwischen den Punkten ermitteln und dann geteilt durch die Schrittweite.

    Soweit meine Ideen.

    (EDIT: Ah, Shakie ist wieder da - somit ist klar, dass ich zu spät war //EDIT)

    Ciao:
    Da' Hacker

    PS: Ich habe den Code aus dem anderen Thread editiert. Danke für den Hinweis. Das Größenzeichen war natürlich falsch.
     
    Da' Hacker - WINXP - C4D R8.5 - VB6.0! C4D/VB-Status: Erfahrener.
    .:.:.:.-<>-_-#Hab' ein Dynamics Tutorial am laufen! - HIER: Grundlagen der Dynamics #-_-<>-.:.:.:.
    Mein eigener Internet-Fernsehsender: www.LwTV.de
    Now Online: www.AdamKalisz.de

  4. #4
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    @Da Hacker: Hihi, war schneller!
     
    hihi = -h²

  5. #5
    Registriert seit
    May 2004
    Ort
    Computer (Nürnberg)
    Beiträge
    689
    @Shakie: Ja, aber ich hab mehr geschrieben! :P *aufeingebildettu'*
     
    Da' Hacker - WINXP - C4D R8.5 - VB6.0! C4D/VB-Status: Erfahrener.
    .:.:.:.-<>-_-#Hab' ein Dynamics Tutorial am laufen! - HIER: Grundlagen der Dynamics #-_-<>-.:.:.:.
    Mein eigener Internet-Fernsehsender: www.LwTV.de
    Now Online: www.AdamKalisz.de

  6. #6
    Avatar von Mailyn
    Mailyn Mailyn ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Beiträge
    214
    Okay, aber wie geht's eigentlich, dass mein Timer jede z.B Sekunde das Label um die gegebene Zahl nach links bewegt?
     

  7. #7
    Avatar von Orakel
    Orakel Orakel ist offline Mitglied Brokat
    Registriert seit
    Aug 2004
    Beiträge
    472
    Hi Mailyn,

    net so ausführlich wie Da Hacker oder Shakie, aber

    Intervall des Timers auf 1000 setzen

    und im Timer Event

    Label1.Left = Label1.Left - DeineVariable

    Hope it helps
    Das Orakel
    Geändert von Orakel (10.07.05 um 20:34 Uhr)
     
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
                      \\\\|////
                      \\ _ _ //
                       ( o o )
    ================oOOo-(_)-oOOo==================
    [COLOR=blue]    The next time you think you are perfect,
               try walking on water[/COLOR]
    ========================Oooo===================
                      oooO  (  )
                      (  )  ) /
                       \ ( (_/
                        \_)
    Vorsicht dieser Link ist bissig :)

  8. #8
    Avatar von Mailyn
    Mailyn Mailyn ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Beiträge
    214
    Danke!! Hätt nich gedacht, dass des so einfach isch!
    @Da Hacker:
    Es gibt sicherlich auch 'ne API, in der du eingeben kannst, welches die Startpostion, die Endpostition und die Schrittweite ist.
    Geht auch ohne API :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Private Sub Timer1_Timer()
                If Label2.Top <= 969 Then
               Timer1.Enabled = False
               Timer1.Interval = 0
    Else
                Label2.Top = Label2.Top - 20
    End If
            
    End Sub
    Geändert von Mailyn (11.07.05 um 00:09 Uhr)
     

  9. #9
    Registriert seit
    May 2004
    Ort
    Computer (Nürnberg)
    Beiträge
    689
    Hi Mailyn,

    hättest du doch nur einen Absatz weitergelesen :
    Zitat Zitat von Da' Hacker
    Solch eine API könntest du dir in einer ähnlichen Art auch zusammencoden. Einfach die Strecke zwischen den Punkten ermitteln und dann geteilt durch die Schrittweite.
    Dass du keine API brauchst, um ein Label zu bewegen, haben Shakie, ich und letztendlich auch Orakel deutlich klargemacht - denke ich . Nur leider war zu dem Zeitpunkt noch nicht klar, welche Art der Verschiebung du benutzt. Dann ist halt mein Vorschlag mit der API gefallen(obwohl ich persönlich etwas gegen API's habe!).
    Das wichtigste ist, dass du ja jetzt die Lösung hast und ich nehme es dir auch nicht übel, dass du versuchst mich zu belehren . *Joke*
    Nunja, ich werde mich jetzt auch nicht so spät in der Nacht aufregen - schließlich habe ich in zwei Tagen Geburtstag .

    Achso, vielleicht noch ein kleiner Verbesserungsvorschlag für deinen Code. Wenn du den Timer mit "Enabled = False" ausschaltest, dann musst du auch nicht den Intervall auf 0 stellen. Wenigstens etwas weniger Code .

    Ciao:
    Da' Hacker
     
    Da' Hacker - WINXP - C4D R8.5 - VB6.0! C4D/VB-Status: Erfahrener.
    .:.:.:.-<>-_-#Hab' ein Dynamics Tutorial am laufen! - HIER: Grundlagen der Dynamics #-_-<>-.:.:.:.
    Mein eigener Internet-Fernsehsender: www.LwTV.de
    Now Online: www.AdamKalisz.de

  10. #10
    Bump Digger Bump Digger ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    12
    Hi.

    Ich will auch das es so wirkt als schwebe die Grafik.

    Das funktioniert ja auch ganz gut, nur die Grafik bewegt sich nicht fließend sondern ruckartig. Da VB die Grafik nur versetzt, wenn der Wert unter Left sich in einem bestimmten Rahmen verändert. Es sieht aus als ob sich die Grafik in zehner Schritten bewegt.

    Ausserdem gibt es ein flackern in der Grafik wenn sie versetzt wird. Als ob der Rechner mit dem Laden der Grafik nicht hinterher kommt. Das verschieben sollte mein Rechner eigendlich schaffen. 1,8Ghz mit einer Radeon 9600XT und 512MB Arbeitsspeicher. die Grafik ist eine GIF-Datei mit einer Kantenlänge von 100 Pixeln.

    Gibt es da eine Möglichkeit die Grafik in den Arbeitsspeicher zu laden damit sie nicht mehr flackert und wie bekommt man die Bewegungen flüssiger hin?

    Grüße
     

  11. #11
    Avatar von Mailyn
    Mailyn Mailyn ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Beiträge
    214
    Also schneller, wie:
    Intervall des Timers auf 1 setzen

    und im Timer Event

    Label1.Left = Label1.Left - DeineVariable


    braucht man's gar nicht! Ich meine, der Timer kann ja dein Objekt jede Tausendstel Sekunde um 20 nach Left versetzen! Das reicht doch, oder?
     

  12. #12
    Bump Digger Bump Digger ist offline Mitglied
    Registriert seit
    Jun 2004
    Beiträge
    12
    Das funktioniert ja auch wunderbar. Der Timer setzt alle 20ms den Left-Wert um +1.
    Jedoch versetzt Visual Basic die Grafik nicht jedesmal wenn der Left-Wert geändert wird, sondern wartet damit bis der Wert um ca. 15 gestiegen ist und setzt dann die Grafik auf einmal um 15 Punkte.
    Ich will das aber so haben das die Grafik auch alle 20ms versetzt wird. Ausserdem stört mich dann auch noch das Flimmern in der Grafik, wenn sie versetzt wird.
     

  13. #13
    Avatar von Orakel
    Orakel Orakel ist offline Mitglied Brokat
    Registriert seit
    Aug 2004
    Beiträge
    472
    Hi Bump Digger

    setzte doch mal hinter das "Versetzenstatement" ein DoEvents. Ne andere Alternative könnte sein die ScaleMode Eigenschaft der Form auf 3 = Pixels zu setzen.

    Gruß
    Das Orakel
    Geändert von Orakel (14.07.05 um 15:22 Uhr)
     
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
                      \\\\|////
                      \\ _ _ //
                       ( o o )
    ================oOOo-(_)-oOOo==================
    [COLOR=blue]    The next time you think you are perfect,
               try walking on water[/COLOR]
    ========================Oooo===================
                      oooO  (  )
                      (  )  ) /
                       \ ( (_/
                        \_)
    Vorsicht dieser Link ist bissig :)

Ähnliche Themen

  1. Bewegung von Teilpolygonen
    Von Hexx im Forum Cinema 4D
    Antworten: 9
    Letzter Beitrag: 15.05.08, 19:29
  2. Bewegung mit Trackpoints
    Von abcdabcd2 im Forum Cinema 4D
    Antworten: 7
    Letzter Beitrag: 17.05.07, 18:48
  3. Bewegung...
    Von Mailyn im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 05.09.05, 22:46
  4. Bewegung mit Actionscript
    Von Ruffat im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 16.02.05, 18:05
  5. Bewegung wie Wackelpudding !
    Von Crazy_down im Forum 3D Studio Max
    Antworten: 22
    Letzter Beitrag: 14.02.05, 17:05