g=9,81

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Naish

Betreff: g=9,81

BeitragMo, Aug 30, 2004 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 30, 2004 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 30, 2004 14:54
Antworten mit Zitat
Benutzer-Profile anzeigen
und um das "NichtAmBoden" zu bekommen, sieh dir die funktion TerrainHeight an!

BladeRunner

Moderator

BeitragMo, Aug 30, 2004 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMo, Aug 30, 2004 21:27
Antworten mit Zitat
Benutzer-Profile anzeigen
ja .. das sagt mir ja so jetzt gar nix.. Razz

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

BeitragMo, Aug 30, 2004 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Aug 31, 2004 13:25
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Aug 31, 2004 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Aug 31, 2004 14:37
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Aug 31, 2004 14:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Autsch, dann solltest du vielleicht dich nicht um Physikalisch korrektes Fallen kümmern, sondern um andere Sachen.
between angels and insects
 

Dreamora

BeitragDi, Aug 31, 2004 15:11
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragDi, Aug 31, 2004 16:02
Antworten mit Zitat
Benutzer-Profile anzeigen
ich würde dir auch empfehlen erstmal andere Sachen zu lernen, und dann am 3. oder 4. Tag Smile vielleicht mal die Tokamak Physikengine anschauen.

Bei meinem "Egoshooter" übernimmt das Springen und Fallen des Spielers alles die Tokamak, auch das Bewegen per WSAD-Tasten, also Laufen und Co.
 

blitzblaster

BeitragMi, Sep 01, 2004 10:55
Antworten mit Zitat
Benutzer-Profile anzeigen
@ imagodespira: Das würde ich gern mal sehen, sowas interessiert mich. Ist ja nicht einfach sowas. Please ! Ich meine den Egoshooter.

imagodespira

BeitragMi, Sep 01, 2004 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Smile
 

NetPad

BeitragSa, Sep 04, 2004 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group