Springen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Ekrits

Betreff: Springen

BeitragSo, Jun 12, 2005 17:23
Antworten mit Zitat
Benutzer-Profile anzeigen
hi leude
ich hab ein Problem. Ich will einen Egoshooter machen krieg aber das Springen net hin.

Mein CodeBlitzBasic: [AUSKLAPPEN]
;Hauptschleife + Bewegung
Repeat
If KeyDown(57) Then ;
MoveEntity cam, 0,+1,0 ; Springen
For I=1 To 400 Step +1 ;
If I=400 Then MoveEntity cam, 0,-1,0 ;
Next

If KeyDown(203) Then TurnEntity cam, 0,+4,0
If KeyDown(205) Then TurnEntity cam, 0,-4,0
If KeyDown(200) Then MoveEntity cam, 0,0,+0.2
If KeyDown(208) Then MoveEntity cam, 0,0,-0.2
RenderWorld
Flip
EndIf
Until KeyHit(1)



Das funtzt überhaupt net.
Ich brauche mal nen ordentlichen Sprung code. ^Das ist einer der Codes die ich ausprobiert habe.

Bitte um Hilfe
EKRITSel: Rechtschreibfehler sind gewollt um eure Aufmerksamkeit zutesten!


Magians vs. Nekromats 100% COMPLETE

Mr.Keks

BeitragSo, Jun 12, 2005 17:57
Antworten mit Zitat
Benutzer-Profile anzeigen
lol, aber wenn du einen egoshooter so machen willst, wird das nix. will dich ja nur ungern entmutigen, aber wenn du schon an der steuerung so scheiterst, wirst du an den ganzen komplexen sachen, die so ein egoshooter hat, ganz sicher zerbrechen. versuch besser ersteinmal etwas leichteres.
MrKeks.net
 

Ekrits

BeitragSo, Jun 12, 2005 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist ja nur nen auszug aus nem VERSUCH ich hab hier ne einfache steuerung reingebaut wegen codeschutz
ich brauch ja nur erstmal springen
EKRITSel: Rechtschreibfehler sind gewollt um eure Aufmerksamkeit zutesten!


Magians vs. Nekromats 100% COMPLETE
 

FBI-blitz

BeitragSo, Jun 12, 2005 18:47
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
 If KeyDown(29) And jumpstatus# = 0 Then jumpstatus# = 0.2				;Wenn man auf STRG drückt, springt man!


If jumpstatus# > 0 Then
TranslateEntity campivot,0,jumpstatus,0
jumpstatus# = jumpstatus-0.009
jumphohe# = jumphohe# + jumpstatus
If jumpstatus <= 0 Then jumpstatus = 0:inderluft=1
EndIf

If inderluft = 1 Then
TranslateEntity campivot,0,jumpstatus,0
jumpstatus# = jumpstatus-0.009
jumphohe# = jumphohe# + jumpstatus
If jumpstatus <= -0.2 Then PositionEntity campivot, EntityX#(campivot), 3, EntityZ#(campivot):Jumpstatus = 0:inderluft = 0:jumphohe# = 0
EndIf


Ja, ich weiß, ist nicht auskommentiert und vlt n bissl unübersichtlich. Aber vlt hilfts dir trotzdem weiter
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+
Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+
 

Nobody-86

BeitragSo, Jun 12, 2005 18:52
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe das so gelöst:

erst werden globals definiert: BlitzBasic: [AUSKLAPPEN]
Global gravity#=0.9,vspeed#
diese werden beim springen verändert. ich habe grav# global gemacht damit man zb. in einem space-shooter die gravitation verringern kan, wen ein leck im schiff ist ect.

dann mus noch folgender code zum springen dasein:
BlitzBasic: [AUSKLAPPEN]
If KeyDown(57) Then
vspeed#=10
MoveEntity cam,0,vspeed#,0

und zuguterletzt noch mus vspeed ja verringert werden, damit man auch wieder nach unten kommt:
BlitzBasic: [AUSKLAPPEN]
vspeed#=vspeed#-gravity#
dieser mus aber ständig ausgeführt werden. mit ein paar extras modifiziert (bei bodenberührung vspeed#=0, und zb. if vspeed#<-25 then vspeed#=25 und man hat eine gute sprungphysik.

ps: ich habe diese codes jetzt aus dem kopf geschrieben, ist nicht umbedingt alles rechtschreiblich übereinstimmend, aber es soll ja nur das prinzip erklären.
(: ---> nobody is perfect <--- Smile
 

Bonkers

BeitragSo, Jun 12, 2005 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hint: Wurfparabel!

y= -(g/2) * (x^2)/(v0^2*cos^2 a) + x* tan a

Dabei sind:
g = Erdbeschleunigung (9,81m/s^2)
x = Position über Erdboden
a = Absprungwinkel
v0= Absprunggeschwindigkeit

Wir nehmen der einfachhalber an, das während des Fluges keine weiteren Kräfte auf den Körper einwirken und das die Geschwindigkeit immer gleich bleibt.

Demzufolge gilt für x: x= v0*t mit t=Zeit
 

Ekrits

BeitragSo, Jun 12, 2005 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
ok ich habs jetzt . Da kommt danb aber das Problem Nr2. Ich kann durch die Wände durch schaun wenn ich nadran bin. Ich hab schon 12 verschiedene Möglichkeiten ausprobiert
EKRITSel: Rechtschreibfehler sind gewollt um eure Aufmerksamkeit zutesten!


Magians vs. Nekromats 100% COMPLETE
 

FBI-blitz

BeitragSo, Jun 12, 2005 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
lol?

Also mit collisions sollte man da eigentlich nicht durchschauen können... Confused
Computer 1: AMD Athlon64 3500+ | nVidia GF 7900GT | 1024 MB DDR-RAM | ASUS A8N-SLI Preimium | 250 GB SATA 2 || WindowsXP | Blitz3D | Blitz+
Computer 2: AMD AthlonXP 2400+ | ATI Radeon 9500 | 512 MB DDR-RAM | MSI K7N2 | 80 GB IDE | 160 GB IDE || WindowsXP | Blitz3D | Blitz+
Computer 3: Intel Pentium MMX | onBoard-Grafik | 32 MB RAM | 1 GB IDE || Windows 98 SE | Blitz+

Lunatix

BeitragMo, Jun 13, 2005 8:30
Antworten mit Zitat
Benutzer-Profile anzeigen
castle demo :

if keyhit(57)

y_vel#=2.5

else

y_vel#=y_vel#-.6

endif

translateentity Campivot,0,y_vel#,0
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Jack

BeitragMo, Jun 13, 2005 14:49
Antworten mit Zitat
Benutzer-Profile anzeigen
gib halt mal den code wie er jetzt ist, und mach, dass wir ihn kopieren können mit "Code" und nicht mit "BB-Code".
 

Ekrits

BeitragMo, Jun 13, 2005 18:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
;Fight-Dogs.BB
;Stop
Graphics3D 640,480
SetBuffer BackBuffer()
Print "Loading"
cam = CreateCamera()
;AmbientLight 157,157,157
PositionEntity cam, 30,-1,-10

Campivot=CreatePivot()

   yv#=EntityY(cam)-ey
   ey=EntityY(cam)

Print "."

welt = LoadMesh("C:\Daten\dursthave.b3d")
PositionEntity welt, 100,8,100
Print ".."

Print "... Complete"

EntityType welt, 2
EntityType cam, 1
Collisions 1,2,2,3

Global gravity#=0.9,vspeed#
;Hauptschleife + Bewegung
Repeat

 vspeed#=vspeed#-gravity#
 mxspd=MouseXSpeed()*0.25
 myspd=MouseYSpeed()*0.25
 MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
 pitch=pitch+myspd
 yaw=yaw-mxspd
 If pitch<-90 Then pitch=-90
 If pitch>90 Then pitch=90
 RotateEntity cam,pitch,yaw,0

 If KeyDown(30) Then MoveEntity cam, -0.1,0,0
 If KeyDown(32) Then MoveEntity cam, +0.1,0,0
 If KeyDown(17) Then MoveEntity cam, 0,0,+0.2
 If KeyDown(31) Then MoveEntity cam, 0,0,-0.2
 UpdateWorld
 RenderWorld
 Flip
Until KeyHit(1)


Ist nicht der ganze Code aber das was genügen sollte
EKRITSel: Rechtschreibfehler sind gewollt um eure Aufmerksamkeit zutesten!


Magians vs. Nekromats 100% COMPLETE
 

Ekrits

BeitragMo, Jun 13, 2005 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
ok das mit dem durch den Wand gucken hab ich geregelt

Code: [AUSKLAPPEN]
CameraRange cam, 0.001,100


noch mal zu springen ich hab jetzt das angewendet:Code: [AUSKLAPPEN]


If jumpstatus# > 0 Then
  TranslateEntity cam,0,jumpstatus,0
  jumpstatus# = jumpstatus-0.009
  jumphohe# = jumphohe# + jumpstatus
  If jumpstatus <= 0 Then jumpstatus = 0:inderluft=1
 EndIf
 
 If inderluft = 1 Then
  TranslateEntity cam,0,jumpstatus,0
  jumpstatus# = jumpstatus-0.009
  jumphohe# = jumphohe# + jumpstatus
  If jumpstatus <= -0.2 Then PositionEntity cam, EntityX#(cam), 3, EntityZ#(cam):Jumpstatus = 0:inderluft = 0:jumphohe# = 0
 EndIf

aber jetzt geht er wieder nach dem Springen in die höhste Position beim springen
EKRITSel: Rechtschreibfehler sind gewollt um eure Aufmerksamkeit zutesten!


Magians vs. Nekromats 100% COMPLETE
 

BlitzBasic303

Betreff: RE:

BeitragDi, Aug 02, 2005 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Dein Code funktioniert wegen einer ganz einfachen sache nicht!
Du bewegst den Spieler hoch und runter so und das macht er auch aber du hast kein renderworld,updateworld,flip benutzt das heißt du siehst den Spieler erst wieder wenn er auf dem Boden ist

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group