EntityX - global und local parameter

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

PSY

Betreff: EntityX - global und local parameter

BeitragDo, Feb 19, 2009 21:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hiho,

gerade habe ich den EntityX(Y,Z) Befehl in Abhängigkeit von einem Parentobjekt benutzt.
Dabei habe ich ein Verständnisproblem:

In der Hilfe steht folgendes:
Zitat:
Der optionale Parameter "Global" gibt an, ob eine absolute oder relative Koordinate ausgegeben werden soll. Eine absolute Koordinate ist immer auf das globale 3D-Koordinatensystem ausgerichtet. Eine relative Koordinate ist dagegen abhängig von der Position eines Parent-Objekts.
Global = 0=absolut (Standard)
1=relativ



Folgenden Code aus der EntityX - Hilfe habe ich leicht modifiziert, und ein Parent-Objekt eingebaut:

Code: [AUSKLAPPEN]
Graphics3D 640,480,0,2
SETBUFFER BACKBUFFER()
camera=CREATECAMERA()
light=CREATELIGHT()
cone=CREATECONE(32)
cone2=createcone(32,1,cone)
EntityColor cone2,255,0,0
ScaleEntity cone2,.5,.5,2

POSITIONENTITY cone,0,0,10
PositionEntity cone2,2,2,0


WHILE NOT KEYDOWN(1)
   x#=0
   y#=0
   z#=0
   IF KEYDOWN(203)=1 THEN x#=-0.1
   IF KEYDOWN(205)=1 THEN x#=0.1
   IF KEYDOWN(208)=1 THEN y#=-0.1
   IF KEYDOWN(200)=1 THEN y#=0.1
   IF KEYDOWN(44)=1 THEN z#=-0.1
   IF KEYDOWN(30)=1 THEN z#=0.1
   MOVEENTITY cone,x#,y#,z#
   RENDERWORLD
   TEXT 0,0,"Benutze Cursortasten, A und Z"
   TEXT 0,20,"X Position: "+ENTITYX#(cone2,1)
   TEXT 0,40,"Y Position: "+ENTITYY#(cone2,1)
   Text 0,60,"Z Position: "+ENTITYZ#(cone2,1)
   FLIP
WEND
End


Wie man sieht, benutze ich bei EntityX,Y,Z den Parameter 1 (relativ).
Wenn ich cone nun verschiebe, müssten doch die Befehle

ENTITYX#(cone2,1)
ENTITYY#(cone2,1)
ENTITYZ#(cone2,1)

für x=2, für y=2 und für z=0 errechnen, da cone ja Parent von cone2 ist, und cone2 somit relativ zu cone auf 2,2,0 steht,

und bei

ENTITYX#(cone2,0)
ENTITYY#(cone2,0)
ENTITYZ#(cone2,0)

müssten für x,y und z die globalen (tatsächlichen) Raumkoordinaten angezeigt werden...

tatsächlich ist es aber genau umgekehrt.
Ist die Erklärung da falschrum, oder bezieht sich globales Koordinatensystem dabei auf das Koordinatensystem des Parentobjekts...

Ich mein ich benutz die Befehle dann einfach andersrum...aber ich hätte doch gern ne Erklärung Very Happy

Danke
PSY


(edit) Interessant, in der englischen original help steht es so erklärt:
Zitat:
global = True for Global coordinates, False for Local. Optional, defaults to False.
Description:
The X-coordinate of the entity.
If the global flag is set to False then the parent's local coordinate system is used.

Die Erklärung hier ist unmissverständlich...vllt könnte man die deutsche Hilfe anpassen...

Chrise

Betreff: Re: EntityX - global und local parameter

BeitragFr, Feb 20, 2009 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich mir das richtig eingetrichtert habe, gäbe es zwei Möglichkeiten:

Code: [AUSKLAPPEN]
cube=Createcube()
cube2=Createcube(cube)
Positionentity cube2,0,0,2
Positionentity cube,2,4,10


Damit wären die globalen Koordinaten von cube2 2+0,4+0,2+10 also 2,4,12
Und Lokal wären sie weiterhin einfach nur 0,0,2

PSY

BeitragFr, Feb 20, 2009 18:40
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist klar, bloss die erklärung der deutschen hilfe verwirrt mich Very Happy
PSY LABS Games
Coders don't die, they just gosub without return

Chrise

BeitragFr, Feb 20, 2009 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
PSY hat Folgendes geschrieben:
das ist klar, bloss die erklärung der deutschen hilfe verwirrt mich Very Happy


hmmm das ist seltsam ja... Ich glaube da hat sich der Autor vertan oder? Also bitte nicht mir übel nehmen... aber ich glaube das ist vertauscht. Zumindest verwende ich eigentlich immer den Parameter 1 sobald ich die Koordinate im kompletten 3D-system rauszufinden versuche.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group