Bild mit Tastatur bewegen

Eisblume166

Grünschnabel
Ich habe ein prob nemlich ich verstehe diese Zeile NICHT kann mir einer sagen was die zeile macht Private Sub kenne ich aber den rest nicht =/

Denke mir halt nur das das beides deklarationen sind aber warum diese schreibweise ich habe das mit Dim intBeispiel as integer gelernt . Von Form_KeyDown hab ich keine plan...

Private Sub Form_KeyDown(KeyCode As Integer, shift As Integer)


Und eine Zweite frage ich möchte ein bild übers formular mit den Pfeiltasten steuern das klapt auch soweit aber der macht direkt nen sprung bis zum ende des Fensters also im mom sieht es so aus:

If KeyCode = vbKeyUp Then
PicBox.Top = 5

End if

Ich möchte aber das es kleine Sprünge macht und nicht direkt durchleuft...
(Habe die 5 angegeben weil es egal war welche zahl man dahinschreibt)

Hab dan noch eine 3 Frage

Es gibt PicBox.Top und .Left aber nicht down und right wie kann ich in diese richtungen lenken?



Danke schonmal im voraus sorry das ich das nich checke :(

LG.Eisblume
 
Zuletzt bearbeitet:
Hi,

erstmal die Frage, hast du die KeyPreview-Eigenschaft der Form auf True gestellt? Das ist notwendig, damit die Tasteneingaben an die Form gesendet werden, auch wenn ein anderes Control den Fokus hat (ich weiß, ich schlag mit lauter Fremdwörtern um mich herum ).

Die EIgenschaften .Top und .Left sind absolute Eigenschaften, vergleichbar mit Koordinaten auf der Erde. Wenn du dich direkt auf die Koordinaten hinbewegst, ist das ja eine Art Teleport, eine Bewegung erreichst du über Schritte zu diesme Endwert.

Die Bewegung würde also so aussehen:
Visual Basic:
PicBox.Top = PicBox.Top - 5
(und analog dazu natürlich die .Left-Eigenschaft erhöhen/verringern.)

Außerdem musst du auf die Maßsystem schauen, VB hat standardmäßig Twips gewählt. Ein Twip ist aber deutlich weniger als ein Pixel (hängt von der Bildschirmauflösung ab), informier dich da mal darüber in der VB-Hilfe.


Der Doc!
 
Danke das hat mich sehr viel weiter gebracht =)

So siehts im moment aus also er kann springen und laufen :P

Private Sub Form_KeyDown(KeyCode As Integer, shift As Integer)

If KeyCode = vbKeyUp Then
For intSpringen = 4000 To 3000 Step -1
For intPause = 1 To 30000
Next intPause

imgMario.Top = intSpringen


Next intSpringen
For intSpringen = 3000 To 4000 Step 1
For intPause = 1 To 30000
Next intPause

imgMario.Top = intSpringen


Next intSpringen

End If

If KeyCode = vbKeyLeft Then
imgMario.Left = imgMario.Left - 100

End If

If KeyCode = vbKeyRight Then
imgMario.Left = imgMario.Left + 100
End If



End Sub



Ich weiß aber leider noch nicht was das hier bedeutet :

Private Sub Form_KeyDown(KeyCode As Integer, shift As Integer)

Und ich habe jetz einen neues prob ich möchte die figur in diesem fall Mario springen lassen und gleichzeitig laufen lassen sodass er einen sprung nach vorne macht und nicht nur auf einer stelle...


Mein größtes prob is aber das Mario in der mitte leuft und der hintergrund leuft mit...


Danke =)
 
Zurück