Schwerkraft

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

Flori-D

Betreff: Schwerkraft

BeitragDo, Apr 01, 2004 17:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi.Ich progge seit heute B3D.Ich hab mir ein Terrain erstellt mit Bergen etc.. Nun meine Frage, wie kann ich schwerkraft coden?Ich könnte ein kleines beispiel gut gebrauchen.

Mfg Flori-D
BB is Macht!

Homepage: www.flori-d.de
 

m

BeitragDo, Apr 01, 2004 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If KeyDown(57) Then
If schalter2 = 0 Then
y_grad = 0.9
schalter = 1
schalter2 = 1
EndIf
EndIf



If schalter = 1 Then
y_pos=y_pos + 0.3
y_grad = y_grad-(y_grad/15)
If y_pos > 5 Then schalter=2
EndIf

If schalter = 2 Then
y_pos= 0
y_grad = -0.3
If EntityCollided(cam,2) Then schalter2 = 0
EndIf
TranslateEntity cam,0,y_grad,0


Ich glaub das ist was du brauchst
 

@uzingLG

BeitragDo, Apr 01, 2004 17:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Schau' dir am besten in der Doku folgende Befehle an:

MoveEntity (Camera)
PositionEntity (Camera)
TerrainY#

Das Terrain ist doch eine Heightmap, oder?

Flori-D

BeitragDo, Apr 01, 2004 17:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein Terrain hab ich so gemacht:

Code: [AUSKLAPPEN]
boden = CreateTerrain(64)
EntityTexture boden, textur
For I = 1 To 200 * 200 / 2
 ModifyTerrain boden, Rand(400), Rand(400), Rnd(-1,+1)
Next
BB is Macht!

Homepage: www.flori-d.de
 

@uzingLG

BeitragDo, Apr 01, 2004 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Das geht auch, ich meine du benutzt die Terrain-Befehle und nicht ein 3D Modell, das aussieht wie ein Terrain.

Flori-D

BeitragDo, Apr 01, 2004 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
jep.
BB is Macht!

Homepage: www.flori-d.de
 

.Yukito.

BeitragDo, Apr 01, 2004 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
hoffentlich habe ich dich da verstanden Smile
tja.... am besten eine datenbank machen mit nem array... dann fügst du die objekte ein, die da von der gravity betroffen werden sollen. du speicherst darin den handle (y=0) und die momentane geschwindigkeit(y=1)

Code: [AUSKLAPPEN]
dim gravengine(100,1) ; 100 objekte mit handle und geschwindigkeit


dann läufst du mit nem loop den array durch...
ein bissl physik: ein objekt egal welchen gewichts beschleunigt um 9,81m/s² (hier in unserer breitengrad gegend (am äquator etwa 0,05 weniger))

Code: [AUSKLAPPEN]
gravengine(objid,1)=gravengine(objid,1)+9.81/FPS
positionEntity gravengine(objid,0), EntityX#(...), EntityY#(...)+gravengine(objid,1)+, EntityZ#(...)


dann solltest du gucken, ob das objekt inzwischen endlich mal am boden aufgeklatscht is... dann musst du die geschwindigkeit natürlich auf 0 setzen...

das müsste es sein Smile
Gruß Yukito

P.S.wehe du sagst ich habe dich falsch verstanden Evil or Very Mad

Flori-D

BeitragDo, Apr 01, 2004 18:17
Antworten mit Zitat
Benutzer-Profile anzeigen
THX Yukiti damit kann ich was anfangen. Very Happy
BB is Macht!

Homepage: www.flori-d.de
 

.Yukito.

BeitragDo, Apr 01, 2004 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
phew... ich dachte ich wäre vorbei Wink...
aber wenns dir hilft is ja gut Very Happy

Flori-D

BeitragDo, Apr 01, 2004 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab nix dazu gefunden in Netz drum muss ich euch damit die Zeit rauben.
Wie kann ich es machen das eine Camera einem Mesh folgt?
Hier mein kläglicher versuch:

Code: [AUSKLAPPEN]
Global acam = CreateCamera(auto)
PositionEntity acam,-90,10,70
auto = LoadMesh("rallycar1.3ds")
PositionEntity auto, -90,0,70
ScaleMesh auto, 0.09,0.1,0.09
BB is Macht!

Homepage: www.flori-d.de
 

Ava

Gast

BeitragDo, Apr 01, 2004 19:15
Antworten mit Zitat
Falsche Reihenfolge!

Erstelle erst das Auto und dann die Camera! oder weise der Camera nachträglich als Parent das Auto zu! Wink

sami

BeitragDo, Apr 01, 2004 19:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Global acam = CreateCamera()
PositionEntity acam,-90,10,70

auto = LoadMesh("rallycar1.3ds")
PositionEntity auto, -90,0,70
ScaleMesh auto, 0.09,0.1,0.09

EntityParent acam,auto
pointentity acam,auto


war im prinzip schon richtig würde ich sagen nur halt noch die cam aufs auto fixieren damit mans sieht und bevor du die cam zum child von einem objekt machst musst du es zuerst erstellen(laden).

Flori-D

BeitragDo, Apr 01, 2004 19:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hab beides getestet aber es spielt dann immer verückt.
Die ganze Camera bewegng funzt dann nicht mehr.
BB is Macht!

Homepage: www.flori-d.de

sami

BeitragDo, Apr 01, 2004 19:29
Antworten mit Zitat
Benutzer-Profile anzeigen
poste mal deinen ganzen code vielleicht können wir dir dann helfen.

Flori-D

BeitragDo, Apr 01, 2004 19:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Warnung ziemlich durcheinander!

Code: [AUSKLAPPEN]
Graphics3D 1024,768
SetBuffer BackBuffer()

Global cam = CreateCamera(auto)


xc = 0
yc = 1
zc = 0



PositionEntity cam, -90,2,70

Global xr = 8
Global yr = 4

Global holz = LoadTexture("holz003.jpg")

Global textur = LoadTexture("gras.bmp")
boden = CreateTerrain(64)
Global tex = LoadTexture("himmel001.jpg")
decke = CreatePlane()
EntityTexture decke, tex
RotateEntity decke, 0,0,180
PositionEntity decke, 0,11,0

boden2 = CreatePlane()
EntityTexture boden2, textur


EntityTexture boden, textur

For I = 1 To 200 * 200 / 2
 ModifyTerrain boden, Rand(400), Rand(400), Rnd(-1,+1)
Next



auto = LoadMesh("rallycar1.3ds")
PositionEntity auto, -90,0,70
ScaleMesh auto, 0.09,0.1,0.09


 


würfel = CreateCube()
EntityTexture würfel, holz
PositionEntity würfel, -4,0,5

raums = LoadSprite("r5.FSC.bmp")
PositionEntity raums, xr,yr,5

Global eis = LoadTexture("schnee001.jpg")
eisb = CreateCone()
PositionEntity eisb, 90,0,7
EntityTexture eisb, eis
ScaleEntity eisb, 30,9,20


Repeat
 If KeyDown(203) Then TurnEntity cam, 0,+1,0
 If KeyDown(205) Then TurnEntity cam, 0,-1,0
 If KeyDown(200) Then MoveEntity cam, 0,0,+0.05
 If KeyDown(208) Then MoveEntity cam, 0,0,-0.05


If KeyDown(30) Then TurnEntity auto, 0,+1,0
 If KeyDown(32) Then TurnEntity auto, 0,-1,0
 If KeyDown(19) Then MoveEntity auto, 0,0,+0.05
 If KeyDown(17) Then MoveEntity auto, 0,0,-0.05




;Licht erstellem
licht = CreateLight(2)
PositionEntity licht, xc,yc,zc
LightColor licht, 255,255,255




RenderWorld
Flip
Until KeyHit(1)
BB is Macht!

Homepage: www.flori-d.de

sami

BeitragDo, Apr 01, 2004 19:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics3D 1024,768
SetBuffer BackBuffer()

 


xc = 0
yc = 1
zc = 0





Global xr = 8
Global yr = 4

Global holz = LoadTexture("holz003.jpg")

Global textur = LoadTexture("gras.bmp")
boden = CreateTerrain(64)
Global tex = LoadTexture("himmel001.jpg")
decke = CreatePlane()
EntityTexture decke, tex
RotateEntity decke, 0,0,180
PositionEntity decke, 0,11,0

boden2 = CreatePlane()
EntityTexture boden2, textur


EntityTexture boden, textur

For I = 1 To 200 * 200 / 2
 ModifyTerrain boden, Rand(400), Rand(400), Rnd(-1,+1)
Next



auto = LoadMesh("rallycar1.3ds")
PositionEntity auto, -90,0,70
ScaleMesh auto, 0.09,0.1,0.09

Global cam = CreateCamera(auto)
PositionEntity cam, -90,2,70


würfel = CreateCube()
EntityTexture würfel, holz
PositionEntity würfel, -4,0,5

raums = LoadSprite("r5.FSC.bmp")
PositionEntity raums, xr,yr,5

Global eis = LoadTexture("schnee001.jpg")
eisb = CreateCone()
PositionEntity eisb, 90,0,7
EntityTexture eisb, eis
ScaleEntity eisb, 30,9,20


Repeat 


If KeyDown(30) Then TurnEntity auto, 0,+1,0
 If KeyDown(32) Then TurnEntity auto, 0,-1,0
 If KeyDown(19) Then MoveEntity auto, 0,0,+0.05
 If KeyDown(17) Then MoveEntity auto, 0,0,-0.05




;Licht erstellem
licht = CreateLight(2)
PositionEntity licht, xc,yc,zc
LightColor licht, 255,255,255




RenderWorld
Flip
Until KeyHit(1)


hab jetzt nur das bewegen der cam durch die cursor tasten rausgenommen, konnte es aber nicht testen weil ich zu faul texturen zu suchen.

Flori-D

BeitragDo, Apr 01, 2004 19:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Funzt auch nicht so wie ichs mir vorstelle.ich will das Auto immer von hinten sehen.
BB is Macht!

Homepage: www.flori-d.de
 

Affje

BeitragDo, Apr 01, 2004 19:45
Antworten mit Zitat
Benutzer-Profile anzeigen
ich mache das immer mit

Code: [AUSKLAPPEN]

entityparent Kamera, Flugzeug

(in deinem falle auto oder so)

sami

BeitragDo, Apr 01, 2004 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
positionier die cam ungefähr 10 - 20 einheiten hinter dein auto
 

Affje

BeitragDo, Apr 01, 2004 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du meinen code benutzt, kannst du z.b. die + und - taste nehmen um die kamera zu zoomen (camerazoom...)

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group