Aufzug Problem

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

IonPainter

Betreff: Aufzug Problem

BeitragMi, Jun 09, 2004 12:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Einfach mal Code ausführen und testen. Wie bekomm ihs hin das Die Kugel auch nach oben bewegt werden kann. Hab zwar schon Lösungsansätze das sind aber übelste Hacks (und sie funzen nicht Very Happy) und hätte es gern eleganter Very Happy

Wichtig ist: Der Spieler muß sich auch unter den Aufzug stellen könnn wenn er oben ist also eine Positionierung auf den Aufzug scheidet aus...

Code: [AUSKLAPPEN]

Graphics3D 800, 600, 32, 2
SetBuffer BackBuffer()

Kamera = CreateCamera()
Licht = CreateLight(1, Kamera)
TranslateEntity Kamera, 0, 2,-15

Aufzug = CreateCube()
EntityColor Aufzug, 0, 255, 0
ScaleEntity Aufzug, 2, 0.125, 2
EntityType Aufzug, 1

Spieler = CreateSphere()
EntityColor Spieler, 196, 255, 0
ScaleEntity Spieler, .5, .5, .5
EntityType Spieler, 2
EntityRadius Spieler, .5

MoveEntity Spieler, 0, 5, 0

FPS = CreateTimer(60)
While Not KeyHit(1)

   If KeyDown(200) Then TranslateEntity Aufzug, 0, .01, 0
   If KeyDown(208) Then TranslateEntity Aufzug, 0, -.01, 0

   
   
   TranslateEntity Spieler, 0, -.1, 0
   Collisions 2,1,2,2
   
   UpdateWorld()
   RenderWorld()
   
   Text 10, 10, "IonPainter's Aufzug-Problem"
   Text 10, 30, "Pfeil-Auf - Bewegt Aufzug nach oben."
   Text 10, 40, "Pfeil-Ab - Bewegt Aufzug nah unten."
   
   WaitTimer FPS
   Flip

Wend

Markus2

BeitragMi, Jun 09, 2004 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm,
also den Aufzug würde ich eine CollisionsBox geben .
Wenn man auf dem Aufzug steht deinem Entity diesen als Parent
übergeben dann geht es mit rauf/runter .
Beim drauf stellen auf den Aufzug kann man die Position lokal
vor nehmen das man nicht mittendrin steht im Aufzugmesh .
Wenn dein Entity den Aufzug als Parent hat kann man auch
lokal x & z eingrenzen beim laufen .
 

IonPainter

BeitragMi, Jun 09, 2004 13:06
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm ja wäre auch eine idee, dann müsste ich allerdings die gravitation für den player im aufzum abstellen was zur folge hat das er im aufzug nicht springen kann Sad((
 

ZaRaK

BeitragMi, Jun 09, 2004 14:19
Antworten mit Zitat
Benutzer-Profile anzeigen
probier das ma
Code: [AUSKLAPPEN]

Graphics3D 800, 600, 32, 2
SetBuffer BackBuffer()

Kamera = CreateCamera()
Licht = CreateLight(1, Kamera)
TranslateEntity Kamera, 0, 2,-15

Aufzug = CreateCube()
EntityColor Aufzug, 0, 255, 0
ScaleEntity Aufzug, 2, 0.125, 2
EntityType aufzug,2

Spieler = CreateSphere()
EntityColor Spieler, 196, 255, 0
ScaleEntity Spieler, .5, .5, .5
EntityType spieler,1
EntityRadius Spieler, .5

MoveEntity Spieler, 0, 5, 0





FPS = CreateTimer(60)
While Not KeyHit(1)

If KeyDown(200) Then TranslateEntity Aufzug, 0, .1, 0
If KeyDown(208) Then TranslateEntity Aufzug, 0, -.1, 0

Collisions 1,2,2,3
If MeshesIntersect(spieler,aufzug) Then PositionEntity spieler, EntityX(aufzug),EntityY(aufzug)+.7,EntityZ(aufzug)
If KeyHit(57) Then MoveEntity spieler,0,2,0

TranslateEntity Spieler, 0, -.1, 0

UpdateWorld()
RenderWorld()

Text 10, 10, "IonPainter's Aufzug-Problem"
Text 10, 30, "Pfeil-Auf - Bewegt Aufzug nach oben."
Text 10, 40, "Pfeil-Ab - Bewegt Aufzug nah unten."

WaitTimer FPS
Flip

Wend


allerdings habe ich keine ahnung, ob du aus dem aufzug wieder aussteigen kannst... müsstest dann am ende der fahrt halt irgendwas ändern, springen kann man zumindest mit der leertaste, bloss musste bei der abfahrt, also wenns runtergeht, das translateentity ändern, weil der spieler sonst fliegt, solang es runtergeht und du gesprungen bist Wink
 

IonPainter

BeitragMi, Jun 09, 2004 14:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für die Antworten, habs jetzt anders gelöst, ist zwar uch nicht die sauberste methode aber....

Code: [AUSKLAPPEN]

Graphics3D 800, 600, 32, 2
SetBuffer BackBuffer()

Kamera = CreateCamera()
Licht = CreateLight(1, Kamera)
TranslateEntity Kamera, 0, 2,-15

Aufzug = CreateCube()
EntityColor Aufzug, 0, 255, 0
ScaleEntity Aufzug, 2, 0.125, 2
EntityType Aufzug, 1
EntityAlpha Aufzug, 0.5

Aufzug2 = CreateCube()
EntityColor Aufzug2, 0, 255, 255
ScaleEntity Aufzug2, 2, 0.125, 2
EntityType Aufzug2, 3
TranslateEntity Aufzug2, 0, -.01, 0
EntityAlpha Aufzug2, 0.5

EntityParent Aufzug2, Aufzug

Spieler = CreateSphere()
EntityColor Spieler, 196, 255, 0
ScaleEntity Spieler, .5, .5, .5
EntityType Spieler, 2
EntityRadius Spieler, .5

MoveEntity Spieler, 0, 5, 0

ey# = EntityY(Spieler)   
FPS = CreateTimer(60)
While Not KeyHit(1)

   If KeyDown(200) Then TranslateEntity Aufzug, 0, .01, 0
   If KeyDown(208) Then TranslateEntity Aufzug, 0, -.01, 0
   If KeyHit(57) Then TranslateEntity Spieler, 0, .25, 0
   
   Collisions 2,1,2,2
   Collisions 2,3,2,2
   
   vy# = EntityY(Spieler) - ey#
   ey# = EntityY(Spieler)   
   
   TranslateEntity Spieler, 0, vy# - 0.013, 0
   
   UpdateWorld()
   
   If EntityCollided(Spieler, 3) Then TranslateEntity Spieler, 0, .022, 0
   
   
   RenderWorld()
   
   Text 10, 10, "IonPainter's Aufzug-Problem"
   Text 10, 30, "Pfeil-Auf - Bewegt Aufzug nach oben."
   Text 10, 40, "Pfeil-Ab - Bewegt Aufzug nah unten."
   
   CameraProject Kamera, EntityX(Aufzug), EntityY(Aufzug), EntityZ(Aufzug)
   Text ProjectedX()+64, ProjectedY() - 5, "<-- Aufzug"
   
   CameraProject Kamera, EntityX(Aufzug2, 1), EntityY(Aufzug2, 1), EntityZ(Aufzug2, 1)
   Text ProjectedX()+64, ProjectedY() + 5, "<-- Aufzug2"
   
   WaitTimer FPS
   Flip

wend

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group