Seite 2 von 2

Verfasst: 26.03.2005 05:06
von Rubiko
ok zizi hat schonmal gut geholfen, danke.

aber MVXA: irgendwie ist das zu "hoch" (wie mans bei uns sagt)
vielleicht liegt es daran das ich auch nur in der 6. bin

kannst du einen codeschnipsel posten bei dem man z.B space drückt und hoch hüpft? wäre dankbar

danke im voraus :)
Rubiko

Verfasst: 26.03.2005 12:13
von zigapeda

Code: Alles auswählen

If Keyboardpushed(#pb_key_space)
  sprungkraft = 20
  posYfest = posY
  for gravitation = -20 to 30
    posY = posY + sprungkraft - gravitation
    If posY <= posYfest
      posY = posYfest
      break
    EndIf
  next gravitation
EndIf
müsste funktionieren aber keine garantie ich hab es nicht ausprobiert.
deine figur oder dein charakter muss die Y koordinate posY haben also

Code: Alles auswählen

Displaytransparentsprite(0,20,posY)

Verfasst: 27.03.2005 16:15
von Rubiko
sorry habs erst jetzt ausprobiert also wenn du nichtmehr weiter weißt, kann mir ein anderer helfen?

@ zizi~ : bei deinen beispielt springt die figur hoch
problem 1 ) die figur springt bleibt oben und kommt nimmer runter^^
problem 2 ) der sprung passiert zu schnell um ihn als sprung zu identifizieren: hab versucht die gravitation zu erhöhn, bringt nichts.

Verfasst: 27.03.2005 16:47
von Kaeru Gaman
mal ganz allgemein...

Code: Alles auswählen

Repeat     ;Hauptschleife
...
If KeyboardPushed(#PB_Key_Space) And JumpFlag = 0
    VY = -2
    JumpFlag = 1
EndIf

PY +VY

VY + 0.1

If [Player steht wieder auf dem Boden]
    VY = 0
    JumpFlag = 0
EndIf

DisplaySprite(#Player, PX, PY)

Until [Ende der Hauptschleife]
VY muss Float sein, damit das +0.1 registriert wird.

eine Lösung über Impulsverrechnung wäre schicker...

...wenn NTQ drauf anspringt, können wir das ja mal ausdiskutieren und
ne nette Formelumsetzung erarbeiten (meine Physik-Formelsammlung hab ich zur Hand ;) )

Verfasst: 27.03.2005 16:58
von Rubiko
ok nun hab ichs verstanden, :)