Sprung Funktion

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Leroy

Betreff: Sprung Funktion

BeitragDo, Aug 02, 2007 2:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe wie soll es auch anders sein ein Problem. Und zwar möchte ich gerne ein Sprung-Funktion
realisieren. Leider komme ich zu keinem Ergebnis das gut aussieht und vor allem auch Funktioniert.
Was mir das ganze noch schwerer macht: Eine If Abfrage die Bewirkt falls der Player gerade nicht mit der Map bzw. auf dem entsprechenden Layer der Map Kollidiert das y = y + 1 ist.
Ist also eine Anziehungskraft ^^

Code: [AUSKLAPPEN]
 If layer_map_collision(mylayer,x,y,blub) And jp = 0
  DrawText "KOLI - OBJEKT-",20,80
 Else
 y = y + 1
 EndIf


Ich würde mich über Hilfe beim erstellen Sprung-Funktion freuen Very Happy

Mfg.
Leroy

Markus2

BeitragDo, Aug 02, 2007 12:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit einer Kraft x erzeugst du eine Beschleunigung die solange
die Y Geschwindigkeit erhöht bis deine Sprung höhe erreicht ist
oder x mal durch laufen ist .
Die Anziehungskraft ist immer da und wirkt solange man in der Luft
ist .
Also eine Kraft wirkt nach oben und die andere halt nach unten .
Wenn du ein Collisions Layer für Wände hast ist es egal ob man in
der Luft ist oder am Boden steht . Wenn du über Dächer laufen willst
muß du halt nen neuen Layer machen je nach höhe .
Wenn du den Spieler in der Luft optisch vergrößerst
mußte den Layer mit dem original Bild prüfen .

Leroy

BeitragDo, Aug 02, 2007 13:01
Antworten mit Zitat
Benutzer-Profile anzeigen
das verstehe ich nicht?
Code-Beispiele helfen mir doch mehr ^^

Habe es mal so probiert:
Code: [AUSKLAPPEN]

If Keydown(KEY_SPACE) then
y = y - 1
end if


Sieht aber irgendwie net schön aus und gefällt mir nicht...
 

Dreamora

BeitragDo, Aug 02, 2007 13:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Pseudocode

Code: [AUSKLAPPEN]

' Im Input Handling
If keydown(sprungTaste)
  kraft = kraft + 30
endif


' Im Updatecode der Physik
kraft = kraft - 9
ty = Spieler.y + kraft
If ty unterhalb des Bodens
  Setze Spieler auf Boden
  Setze Kraft 0
Endif


Fertigen Code gibt es nicht, dafür bist du Programmierer.
wenn du lieber designst, empfehle ich GameMaker, welcher schon Grundsysteme und komplette Beispielprogramme hat.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Markus2

BeitragDo, Aug 02, 2007 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Graphics 640,480,0

MainLoop()

Function MainLoop()


 Local t:TTimer=CreateTimer(60)

 Local y:Double=0
 Local ySpeed:Double=0
 Local Jump:Int=0

 While Not KeyHit(KEY_ESCAPE)
 
  WaitTimer t

  If KeyHit(KEY_Space)>0 And Jump=0 Then
   Jump=1
  EndIf
  If Jump>0 Then
   ySpeed=ySpeed+0.2
   Jump=Jump+1;If Jump>30 Then Jump=-Jump
  EndIf
  ySpeed=ySpeed-0.1
  y=y+ySpeed

  If y<0 Then y=0;ySpeed=0;Jump=0

  x=x+1;If x>640 Then x=x-640;Cls

  SetColor 255,255,255
  DrawLine 0,400,640,400
  SetColor 255,0,0
  DrawOval x,400-y,4,4

  Flip
 Wend

End Function

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group