auf dem boden plazieren

Übersicht BlitzBasic Blitz3D

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Nobody-86

Betreff: auf dem boden plazieren

BeitragMi, Mai 25, 2005 15:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich habe ein problem mit der collision von boden und player. alles im ammem geht es ganz gut, nur der player bleibt immer um 1 über dem boden (schwebt also). gibt es einen befehl der den player genau auf das untere poligon plaziert?
mit entityy dürfte es nicht gehen (denke ich zuminsdest) da ich mehrstöckige level habe.
(: ---> nobody is perfect <--- Smile

Devils Child

BeitragMi, Mai 25, 2005 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
einfach radius der cam auf 0.0001 setzen und
translateentity cam, 0, -100000000, 0!
aber die collision so machen, dass bei schrägen flächen die cam net
abrutscht!
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN
 

Nobody-86

BeitragMi, Mai 25, 2005 23:19
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm... werde es mal versuchen.

ich müsste dan aber den playerradius auf 0.0001 setzen, da das die "füse" der cam sind. wie sieht das dan mit der collision mit schussen ect. aus? dan müsste ich noch ein zusätzliches nullobject einfügen, oder?
(: ---> nobody is perfect <--- Smile

Devils Child

BeitragDo, Mai 26, 2005 9:12
Antworten mit Zitat
Benutzer-Profile anzeigen
du meinst, wenn man tot ist.
hmm? dann würd ich den radius auf 0.3 setzen(vorsicht mit der camerarange!!!!), und
die collision:


Const SCENE = 10
Const BODY = 1
Collisions BODY, SCENE, 2, 1

sorgt dafür, dass du wenn du die cam translierst, sie, bei collision SOFORT
stehen bleibt, und nicht auf unebenen flächen rutscht! Wink

und du musst noch die waffen mit hideentity verstecken, der player darf net mehr
ballern und die bullets einfach weiter updaten(sind ja noch einige unterwechs!)
*X-Ware Member*

Mission to Hell[Ego-Shooter]
Hier Vollversion runterladen:
http://patrick-sch.de/spiele/m...ersion.zip

ich antworte auf jede PN
 

Mr Hopp

BeitragFr, Mai 27, 2005 10:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann mir mal jemand erklären, wie man generel seinen Karakter (der nur durch eine Kamera dargestellt wird) so ungefähr eine Menschengröße über dem Boden halten kann?
 

Mr Hopp

BeitragFr, Mai 27, 2005 10:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Kann mir mal jemand erklären, wie man generel seinen Karakter (der nur durch eine Kamera dargestellt wird) so ungefähr eine Menschengröße über dem Boden halten kann?

Edit: Hey, warum is das jetzt zwei mal gekommen! Surprised
 

Klaas

BeitragFr, Mai 27, 2005 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du immer eine Einheit über dem Boden sein möchtest dann:
-erstelle einen Pivot mit entityRadius von 0.5
(Sinnvoll währe hier ein oval welches etwas höher als breit ist, außer dein Spieler ist äußerst fettleibig Wink )

-erstelle eine Kamera verlinke sie mit dem Pivot (parententity) und bewege sie 0.5 aufwärts (moveentity 0,0.5,0)

-der pivot und dein Level muß nun entsprechende Kollisions Einstellung haben. Ich hoffe du weißt wie das geht.
 

Mr Hopp

BeitragFr, Mai 27, 2005 12:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Uff...Ich glaub, das muss ich mir nochmal ganz in Ruhe in einem Tutorial durchlesen, die Begriffe sagen mir zwar schon was, aber vorgestern hatte ich erst mein erstes 2D-Game fertig. Trotzdem schonmal Danke für die Hilfe

Edit: Warum ein Pivot, ich habe gelesen, die sind dazu da, das zwei Objekte die gleichen Éigenschafften haben können, ohne das man Massentexte schreiben muss

Noch mal Edit: Ah, schon gut, jetzt hab ich's verstanden!
  • Zuletzt bearbeitet von Mr Hopp am Fr, Mai 27, 2005 12:24, insgesamt 2-mal bearbeitet
 

Nobody-86

BeitragFr, Mai 27, 2005 12:37
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habs anders mit der 1,8m über boden anders gemacht.
einen pivot erstellt, und die camera child zu diesem gemacht. die position der camera ist immer entityy(campivot)+180 (ich habe 1 entspricht 1 cm)
(: ---> nobody is perfect <--- Smile
 

Mr Hopp

BeitragFr, Mai 27, 2005 12:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich dachte ich hätt's, aber irgendwie sauß' ich immer wieder in mein Terrain rein, hier ist der Code:

Code: [AUSKLAPPEN]
Graphics3D 800,600,32,1
SetBuffer BackBuffer()

;******************Globals

;Gelände - Terrain
Global Fels=LoadTexture ("Texturen\Fels.bmp")
ScaleTexture Fels, 50, 50

;Textur - Wasser
Global wassertext=LoadTexture ("Texturen\Wasser.bmp",4)
ScaleTexture wassertext,100,100

;Textur - Stein_1
Global stein = LoadTexture("Texturen\Stein.png")
ScaleTexture stein, 100, 100

;*****************Funktionen
Function Endlevel()

;Gelände
terrain = LoadTerrain("Hightmaps\Festung.bmp")
EntityTexture terrain, Fels, 0, 0
ScaleEntity terrain, 50, 600, 50
EntityType terrain, 1

wasser=CreatePlane()
EntityTexture wasser,wassertext
MoveEntity wasser,0,10,0
EntityAlpha wasser,0.6

;Gebäude
Burg = LoadMesh("Meshes\Gebaeude\Burg.3ds")
PositionMesh Burg, 34, 6, 32
ScaleMesh Burg, 100, 100, 100
EntityTexture Burg, stein

;Kamera
player = CreateCone()
EntityRadius player, 0.5

cam = CreateCamera(player)
cam_x = 1000
cam_y = 800
cam_z = 1000
MoveEntity cam,cam_x, cam_y, cam_z
CameraFogMode cam,1
CameraRange cam,1,30000
CameraFogRange cam,100,4000
CameraFogColor cam,40,140,255
CameraClsColor cam,40,140,255
light=CreateLight()
TurnEntity light,45,45,0

EntityType player, 2
EntityType cam, 2

;Spiel

Repeat

If KeyDown(200) Then MoveEntity cam, 0, 0, 3
If KeyDown(208) Then MoveEntity cam, 0, 0, -3
If KeyDown(203) Then MoveEntity cam, -3, 0, 0
If KeyDown(205) Then MoveEntity cam, 3, 0, 0

RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0
MoveMouse 512, 384

If KeyDown(57) Then WireFrame(1)
Collisions 1, 2, 2, 2
UpdateWorld
RenderWorld

Flip
Until KeyHit(1)
End Function


;Hauptschleife

Endlevel()

ClearWorld
  • Zuletzt bearbeitet von Mr Hopp am Sa, Mai 28, 2005 11:13, insgesamt 2-mal bearbeitet
 

Mr Hopp

BeitragSa, Mai 28, 2005 11:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Was ich hasse ist, wenn man der Lösung so nah' ist und dann keiner mehr antwortet! Evil or Very Mad
 

Klaas

BeitragSa, Mai 28, 2005 12:04
Antworten mit Zitat
Benutzer-Profile anzeigen
ganz ruhig ... es gibt auch noch andere Dinge die es zu erledigen gilt als hier im Forum anderer Leute Proggys zu fixen !!!

Das einzige was du falsch gemacht hast ist das du a) Collisions nicht immer wieder neu einstellen mußt, also aus der HAuptschleife entfernen und nur einmal vor der Hauptschleife einstellen solltest und b) das du eine Quelle und Ziel vertauscht hast "Collisions 2, 1, 2, 2"

Ein Blick in die Onlinehilfe hätte hier übrigens auch mal wieder Wunder gewirkt:

http://www.blitzbase.de/befehle3d/collisions.htm

Zitat:
TypeQ = Quell-Objekttyp, das auf Kollision überprüft werden soll
TypeZ = Ziel-Objekttyp, mit dem es kollidieren soll
 

Mr Hopp

BeitragSa, Mai 28, 2005 13:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Argh, blöder Fehler! Allerdings gibt's da noch ein Problem, wenn ich meine Figur Skaliere, wird meine Welt auf einmal kleiner.
 

Klaas

BeitragSa, Mai 28, 2005 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
nasows ... das muß an der Relativität liegen Wink

Ja, stell dir mal vor du wirst auf einmal viel viel größer .. währ dann die Welt für dich nicht auch viel kleiner ???

Entweder du läßt das Skalieren oder aber du skalierst die Welt halt auch größer.
 

Mr Hopp

BeitragSa, Mai 28, 2005 17:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, ich bin ja nich blöd, aber das kann's doch nicht sein, ich kann doch nicht eine vergleichsweise 20 cm große Kugel sein, die auf der Szenerie herumrollt und teilweise hindurchblicken kann. Du hast doch selber geschrieben, ich solle ein Objekt so skalieren, das ich höher als breit bin, ist ja logisch, also, warum geht das nicht?
 

Klaas

BeitragSa, Mai 28, 2005 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
denn versteh ich aber nicht was da bei dir passiert!

Am besten ist es sowieso den Level gleich im richtigen Größenverhältniss zu speichern.
Der Spieler ist ja nur ein Pivot, den brauchst du nicht zu skalieren sondern du mußt nur den EntityRadius entspechend vergrößern.

Das skalieren von Entity ist mit vorsicht zu genießen, denn wenn die Systeme skaliert werden verändern sich alle Längenverhältnisse (nur in dem System) d. h. alles dort drinn (wenn also child von dem Entity) bewegt sich auch schneller. Das kann wirklich sehr nervig sein.
 

Mr Hopp

BeitragSa, Mai 28, 2005 19:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber wenn ich den EntityRadius vergrößer, ist die Figur doch auch breiter
 

Klaas

BeitragSa, Mai 28, 2005 19:15
Antworten mit Zitat
Benutzer-Profile anzeigen
sach ma .... ist denn hier in dem Forum keiner in der Lage die Anleitung zu lesen ???

http://www.blitzbase.de/befehle3d/entityradius.htm

büschel die Augen aufsperren ... das ist doch peinlich
 

Mr Hopp

BeitragSa, Mai 28, 2005 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Zwei Radianten, wer denkt sich denn so'n Müll aus? Confused
 

Klaas

BeitragSa, Mai 28, 2005 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
machs besser !

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group