g=9,81
Übersicht

NaishBetreff: g=9,81 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich versuche einen ego shooter (zumindest erstmal die steuerung) zu basteln.. also mit der kamera steuerung bekomm ich das schon hin...
aber wie kann ich eine realistische erdanziehung, alla g=9,81 erstellen.. achja.. ich habe ein terrain erstellt mir ner gezeichneten map.. wie funzt das da mit der abfrage?... dankeschön! Naish |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
in jedem Loopdurchlauf einfach
if NichtAmBoden ObjectY = ObjectY - 9.81 / FPS endif |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
und um das "NichtAmBoden" zu bekommen, sieh dir die funktion TerrainHeight an! | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
die 9.81 sind allerdings eine Beschleunigung (m/s²) und müssten theoretisch zur Geschwindigkeit (m/s) (und nicht zur Position) addiert werden. | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Naish |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ja .. das sagt mir ja so jetzt gar nix.. ![]() dake für den code.. aber ich habe keinen plan wie ich den einbauen soll.. hier mal der code wo ichd as einbauen will.. eventuell versteht ihr dann ja besser oder könnt besser nachvollziehen, was ich meine.. wenn ja könnte mir dann noch jemand sagen wie ich reverse mouse einstelle? Code: [AUSKLAPPEN] Graphics3D 800,600,32,1 SetBuffer BackBuffer() terrain=LoadTerrain("heightmap.bmp") text1=LoadTexture ("terrain text1.bmp") ;text2=LoadTexture ("mapt2.png") EntityTexture terrain,text1,0,0 ;EntityTexture terrain,text2,0,1 ScaleEntity terrain,100,900,100 ScaleTexture text1,100,100 ;ScaleTexture text2,3,3 AmbientLight(0,0,0) light = CreateLight(3) LightColor light,0,255,255 LightConeAngles light,0,30 PositionEntity light,-20,0,-120 LightRange light,300 water=CreatePlane() watertext=LoadTexture ("wasser.bmp",4) EntityTexture water,watertext ScaleTexture watertext,100,100 MoveEntity water,0,10,0 EntityAlpha water,0.6 cam=CreateCamera() MoveEntity cam,1000,800,1000 CameraFogMode cam,1 CameraRange cam,100,30000 CameraFogRange cam,100,4000 ;CameraFogColor cam,40,140,255 ;CameraClsColor cam,40,140,255 light=CreateLight() TurnEntity light,45,45,0 While Not KeyHit(1) RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0 MoveMouse 512,384 MoveEntity cam,0,0,0 ;If KeyDown(200) Then TurnEntity cam, 0, 0, 0 ;If KeyDown(208) Then TurnEntity cam, 0, 0, 0 ;If KeyDown(203) Then TurnEntity cam, 10, 0 , 0 ;If KeyDown(205) Then TurnEntity cam, 0, -10, 0 If KeyDown(30) Then MoveEntity cam, 0, 0, 10 If KeyDown(44) Then MoveEntity cam, 0, 0, -10 RenderWorld Flip Wend ClearWorld Wend danke |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Code: [AUSKLAPPEN] While Not KeyHit(1) if millisecs() - fpstime > 999 fps# = tfps tfps = 0 fpstime = millisecs() else tfps = tfps + 1 endif RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0 MoveMouse 512,384 MoveEntity cam,0,0,0 ; If KeyDown(200) Then TurnEntity cam, 0, 0, 0 ; If KeyDown(208) Then TurnEntity cam, 0, 0, 0 ; If KeyDown(203) Then TurnEntity cam, 10, 0 , 0 ; If KeyDown(205) Then TurnEntity cam, 0, -10, 0 If KeyDown(30) Then MoveEntity cam, 0, 0, 10 If KeyDown(44) Then MoveEntity cam, 0, 0, -10 if KeyHit( 57) and not isJumping grav# = 50 isJumping = true endif terheight# = terrainy( Terrain, entityx( cam ), 0, entityz( cam )) if terheight < entityy( cam ) isJumping = false positionentity cam, entityx( cam ), terheight, entityz( cam ) else positionentity cam, entityx( cam ) entityy( cam ) + grav, entityz( cam ) endif if isJumping then grav# = grav# - 9.81/fps UpdateWorld RenderWorld Flip Wend |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Naish |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe mal versucht das in den code einzubauen.. aber irgendwie sagt er mit immernoch fehler..
Code: [AUSKLAPPEN] SetBuffer BackBuffer() terrain=LoadTerrain("heightmap.bmp") text1=LoadTexture ("terrain text1.bmp") ;text2=LoadTexture ("mapt2.png") EntityTexture terrain,text1,0,0 ;EntityTexture terrain,text2,0,1 ScaleEntity terrain,100,900,100 ScaleTexture text1,100,100 ;ScaleTexture text2,3,3 AmbientLight(0,0,0) light = CreateLight(3) LightColor light,0,255,255 LightConeAngles light,0,30 PositionEntity light,-20,0,-120 LightRange light,300 While Not KeyHit(1) If MilliSecs() - fpstime > 999 fps# = tfps tfps = 0 fpstime = MilliSecs() Else tfps = tfps + 1 EndIf RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0 MoveMouse 512,384 MoveEntity cam,0,0,0 ; If KeyDown(200) Then TurnEntity cam, 0, 0, 0 ; If KeyDown(208) Then TurnEntity cam, 0, 0, 0 ; If KeyDown(203) Then TurnEntity cam, 10, 0 , 0 ; If KeyDown(205) Then TurnEntity cam, 0, -10, 0 If KeyDown(30) Then MoveEntity cam, 0, 0, 10 If KeyDown(44) Then MoveEntity cam, 0, 0, -10 If KeyHit( 57) And Not isJumping <---- HIER ZEIGT ER DEN FEHLER::!! grav# = 50 isJumping = True EndIf terheight# = TerrainY( Terrain, EntityX( cam ), 0, EntityZ( cam )) If terheight < EntityY( cam ) isJumping = False PositionEntity cam, EntityX( cam ), terheight, EntityZ( cam ) Else PositionEntity cam, EntityX( cam ) EntityY( cam ) + grav, EntityZ( cam ) EndIf If isJumping Then grav# = grav# - 9.81/fps UpdateWorld RenderWorld Flip Wend |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wie wärs mit ein wenig selbst mitdenken?
If KeyHit( 57) And Not isJumping wird zu If KeyHit( 57) And (Not isJumping) der fehler sagt dir ja eindeutig was falsch ist, wozu dann also bitte das posting??? |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Naish |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie soll ich deinen code denn nachvollziehen können.. ich habe vor 2 tagen angefangen.. was nicht entschuldigt, dass ich den fehler nicht hätte selbst sehen können.. aber wenn ich schon im post sage das mit der code nix sagt.. und nochmal den code extra poste .. kann man vor mir auch nicht verlangen, dass ich es schaffe so einen code wie du ihr geschrieben hast selber einzubauen... wenn dort noch fehler und falsche definitionen eingebaut sind.. | ||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Autsch, dann solltest du vielleicht dich nicht um Physikalisch korrektes Fallen kümmern, sondern um andere Sachen. | ||
between angels and insects |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nunja wenn du vom Compiler die Fehlermeldung erhälst und nur 2 Möglichkeiten hast was es überhaupt sein kann ... | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
imagodespira |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich würde dir auch empfehlen erstmal andere Sachen zu lernen, und dann am 3. oder 4. Tag ![]() Bei meinem "Egoshooter" übernimmt das Springen und Fallen des Spielers alles die Tokamak, auch das Bewegen per WSAD-Tasten, also Laufen und Co. |
||
blitzblaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@ imagodespira: Das würde ich gern mal sehen, sowas interessiert mich. Ist ja nicht einfach sowas. Please ! Ich meine den Egoshooter. | ||
![]() |
imagodespira |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich möchte demnächst eine demo veröffentlichen, dauert aber noch ein wenig.
... den Spieler per Tokamak zu bewegen ist aber nicht wirklich schwierig ![]() |
||
NetPad |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also ich mache das so:
g=9.81 //den wert passe ich danach meinen bedürfnissen an a=0 //a->accleration->beschleunigung repeat if player=istamfallen then a=a+g player_y=player_y+a endif forever wenn der spieler springen will, setze ich einfach für a einen negativen wert. das ist meine art zu machen und ich weiss, dass sie nicht genau physikalisch korrekt ist, aber meiner meinung nach ist es ausreichende qualität und schnell gemacht |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group