Jumpen in 3D Welt?
Übersicht

bruce85Betreff: Jumpen in 3D Welt? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
also die Sprungfunktion in 2D ist ja Easy, jetzt habe ich das mal in 3D Welt probiert, funktionieren tut es in 3D, er springt kurz hoch und dann fliegt er wieder runter durch die Welt was nicht sein darf. Die kollision functioniert eigentlich, aber sobald ich springen möchte, fliegt er durch die welt. Hier mal die Sprungfunktion: Code: [AUSKLAPPEN] If KeyHit(57) Then
jump_y_temp# = 6 ;je höher der wert, deste hörer springt der player jump=True ; jump auf true setzen EndIf If jump = True Then jump_y_temp# = jump_y_temp# -.50 CameraYMove# = CameraYMove# + jump_y_temp# EndIf TranslateEntity camera,0,-10,0 ;und hier die kollision Collisions 1,2,2,2 Es wäre sehr net von euch wenn ihr mir helfen könntet, vielen dank schonmal ![]() MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
Phlox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jump bleibt TRUE. Es muss aber wieder auf FALSE gesetzt werden, nachdem du gesprungen bist.
Code: [AUSKLAPPEN] If jump = True Then jump_y_temp# = jump_y_temp# -.50 CameraYMove# = CameraYMove# + jump_y_temp# jump=FALSE EndIf |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke dir,
das kann man aber nicht so machen, da ansonsten die Sprungfunktion sofort wieder verlassen wird, der springt dann vll nur ein pixel dann wieder false. Ich muss überprüfen, wann der player wieder auf die Erde kollidiert, aber wie mache ich das? MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
Phlox |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] If EntityCollided (CAM,TERRAIN) Then jumperlaubnis=1 If jump = True And jumperlaubnis=1 Then jump_y_temp# = jump_y_temp# -.50 CameraYMove# = CameraYMove# + jump_y_temp# ; jump=FALSE jumperlaubnis = 0 EndIf |
||
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da tut sich garnix, es flackert nur wenn ich Springen möchte.
Gibt es vll eine andere möglichkeit zum Springen? z.B. wie bei Counter Strike, eine einfache Sprungfunktion? Danke schonmal. MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
Schnuff |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
If KeyHit(57) And Jump=False Then
jump_y_temp# = 6 ;je höher der wert, deste hörer springt der player jump=True ; jump auf true setzen EndIf If jump = True Then jump_y_temp# = jump_y_temp# -.50 CameraYMove# = CameraYMove# + jump_y_temp# if jump_y_temp#<=0 then jump=False EndIf TranslateEntity camera,0,-10,0 ;und hier die kollision Collisions 1,2,2,2 So? Edit, wo wird eigentlich deine "CameraYMove" genutzt? |
||
Programmers dont die. They gosub without return... |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke dir.
Die camera move wird hier ausgeführt: Code: [AUSKLAPPEN] RotateEntity camera,EntityPitch(camera)+MouseYSpeed()*.10,EntityYaw(camera)-MouseXSpeed()*.10,0
MoveEntity Camera,CameraXMove#,CameraYMove#,CameraZMove# alles über Renderworld. MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich würde den Jump erst bei Kollision wieder False setzen.
Code: [AUSKLAPPEN] If KeyHit(57) And jump = False Then
jump = True jump_y# = max_sprunghoehe# ;3 oder sowas, auf jedenfall größer als die Schwerkraft! End If If jump = True Then jump_y# = jump_y# - (max_sprunghoehe#-(jump_y#/1.5)) TranslateEntity player,0,jump_y#,0 End If If EntityCollided(player,GRUND) Then jump = False müsste funktionieren. jump_y# = jump_y# - (max_sprunghoehe#-Abs((jump_y#/1.5))) das ist, damit man immer schneller runterfällt, wie in der Realität; geht aber auch mit - .07 oder sowas in der art |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke dir, das geht aber nicht, der spring ganz wenig nach oben und fliegt blitz schnell durch die map, dann sieht man garnix mehr.
woran kann das liegen? MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Warum überhaupt eine True/False-Variable?
Mach es doch einfach so: Irgendwo am Anfang: Code: [AUSKLAPPEN] Global Fallgeschwindigkeit#=0
In der Hauptschleife: Code: [AUSKLAPPEN] If KeyHit(57) Then fallgeschwindigkeit=fallgeschwindigkeit-2 ; Sprungstärke/-höhe
fallgeschwindigkeit=fallgeschwindigkeit+.01 ; Anziehungskraft If EntityCollided(player,GRUND) And fallgeschwindigkeit>0 Then fallgeschwindigkeit=0 TranslateEntity player,0,-fallgeschwindigkeit,0 ![]() |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Cool, Vielen Dank für deine Hilfe, es functioniert sehr gut ![]() Edit: Noch eine Frage und zwar wenn ich in der luft bin und nach unten kuck und nach vorne laufe, dann bewegt sich die camera nach unten, das darf ja net sein. Wie kann ich das verhindern das man nur nach vorne und nach hinten laufen kann auch wenn ich nach oben oder unten kucke? Des liegt dann wohl an diesem Code: Code: [AUSKLAPPEN] RotateEntity camera,EntityPitch(camera)+MouseYSpeed()*.10,EntityYaw(camera)-MouseXSpeed()*.10,0
MoveEntity Camera,CameraXMove#,CameraYMove#,CameraZMove# oder ? MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
![]() |
juse4proBetreff: lol anarchie |
![]() Antworten mit Zitat ![]() |
---|---|---|
kann mir vieleicht jemand den ganzen code geben
in zwei(vor der while-schleife, in while-schleife) wäre sehr dankbar. mfg: mortus |
||
Portfolio |LinkedIn |XING |
![]() |
Black Spider |
![]() Antworten mit Zitat ![]() |
---|---|---|
du kannst dir das ganz einfach selber machen;
falls nein, nimm den. Hatte ich gerade noch aufm Rechner Code: [AUSKLAPPEN] Graphics3D 1024,768,32,1 SetBuffer BackBuffer() Const K_P=1 Const K_M=2 Collisions K_P,K_M,2,3 pleg = CreateCube() EntityType pleg,K_P MoveEntity pleg,0,5,0 cam = CreateCamera() PositionEntity cam,0,5,-5 g = CreatePlane() EntityType g,K_M EntityColor g,155,0,0 CreateLight() Local pVy# While Not(KeyHit(1)) If KeyDown(15) Then PointEntity cam,pleg If KeyDown(17) Then MoveEntity pleg,0,0,0.3 If KeyDown(31) Then MoveEntity pleg,0,0,-.3 If KeyDown(32) Then TurnEntity pleg,0,-.7,0 If KeyDown(30) Then TurnEntity pleg,0,.7,0 ;Schwerkraft If EntityCollided(pleg,K_M) Then pVy = 0 PositionEntity pleg,EntityX(pleg),EntityY(pleg),EntityZ(pleg) Else pVy = (pVy - 0.015) * 0.999 PositionEntity pleg,EntityX(pleg),EntityY(pleg)+pVy,EntityZ(pleg) End If If KeyDown(57) And pVy = 0 Then pVy = .4 UpdateWorld RenderWorld Flip Wend |
||
Coming soon:
http://img132.imageshack.us/im...im2ab6.gif |
![]() |
juse4proBetreff: danke |
![]() Antworten mit Zitat ![]() |
---|---|---|
thx für den code ![]() ![]() ![]() |
||
Portfolio |LinkedIn |XING |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group