Einige Fragen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag 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
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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)
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag 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.
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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 ;) )
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Rubiko
Beiträge: 943
Registriert: 25.02.2005 19:43
Computerausstattung: Intel i7 2600k
8GB Ram
GeForce GTX 560 Ti
Wohnort: Schwabach

Beitrag von Rubiko »

ok nun hab ichs verstanden, :)
Ich wollte die Welt verändern, doch Gott gab mir nicht den Quelltext.
Antworten