online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon breznica vom 25.12.2019, 22:31 Options

Figur springt über ein Hindernis (und fällt rein)

Liebes Supportnet!

ich hab vor ein paar Tagen mit einem kleinen Jump'n'run Spiel begonnen(mit Visual Basic 6).
Dort ist eine Figur die bereits laufen & springen kann.
Nun möchte ich gerne ein Hinderniss einbauen.
Dazu hab ich einfach ein Rechteck (Shape) genommen. Ich habe es bereits geschafft die Linke & Rechte Seite so zu machen, dass die Figur bei der Berührung gegen die Seiten stehen bleibt. Doch es gelingt mir einfach nicht das gleich mit der oberes Seite zu machen.

Kann mir da evtl. jemand helfen?
Hier ein paar Code Ausschnitte:


Zitat:
Sub Oben()
If Timer_jump.Enabled = False Then
Timer_jump.Enabled = True
End If
Figur.Move Figur.Left + 0, Figur.Top - 1000
SleepUntil (1000)
Figur.Move Figur.Left + 0, Figur.Top + 1000
End Sub

Sub Rechts()
Figur.Move Figur.Left + 50
Set Figur.Picture = LoadPicture(App.Path & "\Bilder\Figurrechts.gif")
If (Figur.Left - Figur.Width) < objekt.Left And Figur.Top > objekt.Top - objekt.Height And Figur.Top < objekt.Top + objekt.Height And Figur.Left > objekt.Left Then
Figur.Left = Figur.Left + 50
End If
'linke seite
If (Figur.Left + Figur.Width) > objekt.Left And Figur.Top > objekt.Top - objekt.Height And Figur.Top < objekt.Top + objekt.Height And Figur.Left < objekt.Left Then
Figur.Left = Figur.Left - 50
End If
End Sub

Sub Links()
Figur.Move Figur.Left - 50
Set Figur.Picture = LoadPicture(App.Path & "\Bilder\Figurlinks.gif")
If (Figur.Left - Figur.Width) < objekt.Left And Figur.Top > objekt.Top - objekt.Height And Figur.Top < objekt.Top + objekt.Height And Figur.Left > objekt.Left Then
Figur.Left = Figur.Left + 50
End If
If (Figur.Left + Figur.Width) > objekt.Left And Figur.Top > objekt.Top - objekt.Height And Figur.Top < objekt.Top + objekt.Height And Figur.Left < objekt.Left Then
Figur.Left = Figur.Left - 50
End If
End Sub

Sub Oben = vbKeyUp
Sub Rechts = vbKeyRight
Sub Links = vbKeyLeft



Link

Link


Antwort schreiben

Antwort 1 von kicia vom 29.12.2019, 12:32 Options

Hallo breznica,
wenn ich das richtig verstehe, versetzt Du die Figur beim drücken der jump taste um 1000 nach oben, und nach einer Sekunde wieder um 1000 nach unten. Das passiert unabhängig von irgendwelchen IF-THEN Bedingungen.

Ich würde vorschlagen, sowas wie Gravitation einzubauen, also daß die Figur immer nach unten will und nur stoppt, wenn etwas im Weg ist.

Hast Du eine Schleife, die sich ständig wiederholt? Dort würde sowas stehen wie:
IF (nichts im Weg...) THEN Figur.Top = Figur.Top + 1


Noch ein Tip:
Die Figur wird sich so wie es ist nie den Kopf stoßen können.
Ich würde eine Eigenschaft Figur.ImpulsY einführen.
In jedem Schleifendurchlauf dann:
Figur.ImpulsY = Figur.ImpulsY + 1.
IF Figur.Top + Figur.ImpulsY > (irgendein Hindernis) THEN Figur.ImpulsY = 0
Figur.Top = Figur.Top + Figur.ImpulsY

Bei JUMP setzt Du zB. Figur.ImpulsY = -50 (oder so, ausprobieren).

Wird natürlich leider etwas komplizierter.
Gleiches könnte man natürlich auch mit X (horizontal) machen.

Ähnliche Themen

Suche eine virtuelle Figur für email
Rene4588  11.01.2007 - 85 Hits - 3 Antworten

bildlaufleiste springt unkontrolliert
uwekieb  22.09.2007 - 72 Hits - 2 Antworten

Mauszeiger springt
andi27  22.10.2007 - 149 Hits - 2 Antworten

Mauszeiger springt
andi070  21.11.2007 - 268 Hits - 7 Antworten

Wenn sich zwei Objekte berühren...
breznica  25.12.2007 - 63 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026