GLBasic forum

Other languages => GLBasic - de => Topic started by: x-tra on 2008-Jun-08

Title: Entity System Befehls Wishlist
Post by: x-tra on 2008-Jun-08
Okay ich hab vielleicht bisschen was kopiert, aber sollte doch den Zweck erfüllen.


EntityCreateCube -
Code: GLBasic [Select]
cube = EntityCreateCube([parent])
   erstellt einen Würfel und gibt Identität zurück

EntityCreateCylinder -
Code: GLBasic [Select]
cylinder = EntityCreateCylinder([parent])
   erstellt einen Zylinder und gibt Identität zurück

Das gleiche vielleicht für Sphere und Cone(Kegel)

Zu dem Handle ([parent]) komme ich jetzt.

Dieses sollte bei allen EntityBefehlen dabei sein, aber optional, und bezeichnet, dass man das Entity einer anderen Entity als Child zuweist.

EntityCreatePivot()   oder eben EntityCreatePivot([parent])

Code: GLBasic [Select]
Beschreibung

Der Befehl EntityCreatePivot erstellt einen Drehpunkt und liefert danach die Identität des Objekts zurück.

Ein Drehpunkt (pivot entity) ist ein unsichtbares Objekt in der 3D-Welt. Es wird hauptsächlich als Parent für andere Objekte benutzt. Danach können mit diesem Objekt viele hinzugefügte Objekte gedreht (Zentrum der Rotation) oder verschoben(EntityMove(Pivot, x, y, z)) werden.

Um dieses Feature zu benutzen, muss man entweder EntityParent benutzen oder den optionalen Parameter "Parent", das bei vielen Befehlen eingegeben werden kann.

Wurde der Parameter "Parent" angegeben, dann wird dieses Objekt zu einem anderen Objekt hinzugefügt. Falls nun ein Parent-Objekt bewegt wird, dann werden alle hinzugefügten Objekte automatisch verschoben. Ein Child-Objekt verschiebt dagegen kein Parent-Objekt mit.

Ein Drehpunkt wird normalerweise an der Position 0,0,0 erstellt. Wurde Parent angegeben, dann wird es an der Position des Parent-Objekts erstellt.
 

Beispiel
Code: GLBasic [Select]
pivot = EntityCreatePivot()
EntityPosition(pivot, 0, 0, 10)
cube = EntityCreateCube(pivot)
EntityPosition(cube, 0, 0, 3)


EntitySetAttribute       einer Entity bestimmte Besonderheiten/Effekte/Shader/wasweißich zuweisen.
                                        Auch bei Licht und Kamera vielleicht nützlich.

Vielleicht noch Pendants zu EntityX Y Z usw. nur eben Winkel

EntityGangleX      liefert Winkel global

EntityRangleX      liefert Winkel relativ

EntityAngleX        vielleicht winkel zueinander zweier entities........  Mit ein wenig Fantasie.....

@gernot: oder soll ich eine komplette Befehlsreferenz der Vorhandenen Entitybefehle machen, und die man noch gebrauchen könnte gleich dazu?
             Die Pivotgeschichte, könntest du das schonmal machen, ich steig da selber nicht durch.
Title: Re: Entity System Befehls Wishlist
Post by: Kitty Hello on 2008-Jun-08
Mach bitte die Dokumentation in der entity.gbas fertig (Mit //! Kommentaren. Ist auch in der Hilfe unter "Editor" beschrieben).
Schranz0r hat das mit den Pivots gelöst.
Title: Re: Entity System Befehls Wishlist
Post by: Schranz0r on 2008-Jun-08
Gelöst ja, muss halt noch in das ES eingabaut werden, und wirklich schön ist das wirklich nicht gemacht von mir...
Da könntest du mit der Rotation noch ein wenig helfen Gernot :)

Achja, Gernot :)

Optionale Parameter bei Funktionen geht ja in GLB net...
War doch mal auf der ToDo gestanden so weit ich das noch weiß :P

Also so in der Art:


Code: GLBasic [Select]
FUNCTION Add: a, b,  c = 0 // a und b ist pflicht, c ist Optional wenns nicht angebenen wird kommt der Standartwert 0 zum einsatz!
    RETURN a+b+c
ENDFUNCTION

Aufrufen dann so:

Add(10, 10)

oder

Add(10, 10, 10)


Nur so als Beispiel :)

Wär SUPER Spitze  :good:
Title: Re: Entity System Befehls Wishlist
Post by: x-tra on 2008-Jun-08
welche dokumentation?

von Befehlen bzw. Funktionen, die es noch nicht gibt.

Und das mit den Pivots ist ja für das ES noch nicht gelöst.

Title: Re: Entity System Befehls Wishlist
Post by: Schranz0r on 2008-Jun-08
Immer mit der Ruhe Heiko, wir machen das dann schon  ;)
Title: Re: Entity System Befehls Wishlist
Post by: Kitty Hello on 2008-Jun-09
Die Parent-beziehung finde ich besser als eigenen Befehl.
Title: Re: Entity System Befehls Wishlist
Post by: x-tra on 2008-Jun-09
wie meinst du das?

nur parent beziehungen zwischen objekten, ohne pivots....?


[edit]  ich würde ja empfehlen alle befehle aus bb3d die entity betreffen zu übernehmen, zumindest von der funktionalität her.
         
         Kein, "ach ich weiß garnicht wozu man das braucht............."  ich denke jeder dieser befehle hat seine daseinsberechtigung.

         achja, wenn mark silby und graham kennedy das hinbekommen haben, warum dann wir nicht auch.

         schaut euch die befehlsreferenz von bb3d an, und bei cobra3d wird man förmlich damit erschlagen.

         ich mach hier keine werbung, oder so, will ha bei glbasic bleiben, aber momentan ist der vergleich teilweise wie zwischen

         linux und windows, okay ich bin bequem, aber das leben ist hart.......so long.......

         p.s. ich würd selber die befehle schreiben, wenn ich mehr ahnung davon hätte, aber ich habs ja wenigstens schonmal versucht.

         nun liegt es wohl an gernot.

         ich teste das ES gern aus, mit allem was es hergibt, aber es fehlt noch so einiges, daher habe ich ihm die help von c3d geschickt, vielleicht

         hilft es ja was.

         nur ohne Entity System werden viele User davor zurückweichen mit GLB zu coden.
Title: Re: Entity System Befehls Wishlist
Post by: Schranz0r on 2008-Jun-09
Ein Post reicht Heiko, wird hier weiter drauf rumgeritten mache ich alle deine ES- Threads -> Close!

So langsam reicht es... :rant:
Title: Re: Entity System Befehls Wishlist
Post by: x-tra on 2008-Jun-09
ich hab in einem extra thread was ganz anderes gefragt.

jo mei, gernot gefallen meine vorschläge nicht, also versuche ich mir meine pivot funktion selber zu machen.

wo ist dein problem?
Title: Re: Entity System Befehls Wishlist
Post by: Schranz0r on 2008-Jun-09
Du Spammst hier 3 Threads mit dem gleichen Zeug zu, obwohl ich dir gesagt hatte Zitat: " Wart ab Ich/Gernot macht das schon !".

Ende vom Lied ist, Gernots machts: http://www.glbasic.com/forum/index.php?topic=1995.msg14361#msg14361

Und jetzt bitte wieder normal Heiko!  :heart:
Title: Re: Entity System Befehls Wishlist
Post by: x-tra on 2008-Jun-09
Ist halt ärgerlich, ich bin ja auch mit Cobra3D am werkeln, und nunja bin halt verwöhnt, aber wenn du dir mal das ES dort anschaust, wirste neidisch.

So schwer kann das doch nicht sein, oder.

Nun, dann warten wir mal ab.
Title: Re: Entity System Befehls Wishlist
Post by: BumbleBee on 2008-Jun-09
Komisch, ich hab ja auch viel mit Blitz3D gemacht, aber ich trauer dem ganzen nicht so hinterher. ;) Ich bin halt jetzt nun mal hier.  :booze:

Cheers
Title: Re: Entity System Befehls Wishlist
Post by: x-tra on 2008-Jun-09
Nun, mir geht es auch darum, dass ich mich auf eine Sprache konzentrieren möchte.

Ich besitze immer noch Cobra3D, BlitzMax, BB3D neben GLBasic.

Mit BB3D mach ich nichts mehr, BlitzMax ist so eine Sache, da soll ja noch max3D kommen, bzw. dieses als .dll wie auch immer, und eben Cobra3D.

Selbst BlitzMax besitzt sozusagen dann ein Entity System, oder eben mit minib3d im Moment.

Cobra3D ist da allem was das betrifft wohl einiges voraus.

Ich würde schon allein wegen der netten community ausschliesslich GLB nutzen wollen, möchte aber eben so ein Entity System haben wie in z.B. BB3d.

Und da kommt dann halt die Frage ins Spiel wieviele User gern zu GLB kommen würden, wenn es das so richtig gäbe.

Es ist also nicht nur purer Egoismus, sondern ich denke auch schon etwas weiter.
Title: Re: Entity System Befehls Wishlist
Post by: BumbleBee on 2008-Jun-09
Naja, ich glaub kaum das jemand wegen dem ES dann die Sprache wechselt. =D Also bei mir muß das Gesamtpaket stimmen. Denn ich komm ja eigentlich auch von Blitz. Und ich hab gewechselt und das, obwohl es kein ES gibt. Da zählen bei mir ganz andere Sachen. :)

Cheers
Title: Re: Entity System Befehls Wishlist
Post by: x-tra on 2008-Jun-09
Ich würds ja selber machen.
Wenn jemand eine Kopie 1 zu 1 von BB3D machen würde nur eben mit anderen Befehlen, würde ich auch was dafür zahlen.
Kommt natürlich trotzdem jedem hier zugute.
Title: Re: Entity System Befehls Wishlist
Post by: Kitty Hello on 2008-Jun-10
Ja... was fehlt denn jetzt an dem Entity System noch?
Kann denn bitte mal einer das Ding nutzen, und testen ob das taugt?
Title: Re: Entity System Befehls Wishlist
Post by: x-tra on 2008-Jun-10
1. Pivots, damit ich weiter testen kann.
2. mir persönlich wären noch pendants zu entityX  (und y und z) wichtig, aber winkelausgaben.also winkel objekte zueinander, und global.EntityYaw bspw.
3. wenn man attribute zu entities hinzufügen könnte (bestimmte effekte auf ein entity übertragen)

mmmm das wäre schon das nötigste was mir grad so einfällt


Eigentlich alle entity befehle aus BB3D, aber das ist sicher zuviel verlangt, auch wenn ich dir dazu gern eine auf GLB zugeschnittene Referenz erstellen würde.Und du das "nur" noch umsetzen müsstest.
Title: Re: Entity System Befehls Wishlist
Post by: Schranz0r on 2008-Jun-10
Vergiss das mit dem BB-Entity.
Das vom Gernot ist ganz anders aufgebaut, wenn du das BB-Like haben willst, musst du wohl oder übel selbst ran  =(  :nana:
Title: Re: Entity System Befehls Wishlist
Post by: x-tra on 2008-Jun-10
Noch ein Vorschlag, aber nur wenns irgendwann irgendwie möglich ist.

EntityFX(entity, effekt)

weißt einem objekt einen bestimmten effekt zu.

beispielsweiße leuchteffekt oder so.
oder reflektierender glanz, bei anstrahlung durch lichtquelle.(oder kann man die normalen X_....befehle mit dem ES kreuzen, und wenn ja wie?das zum theme EntitySetAttribute)

EntityPoint(entity, zielentity)
Ausrichtung von entity auf zielentity mittels automatischer rotation.
also z.b. immer eine kamera auf ein entity schauen/drehen lassen.wenn möglich.
sind sicher winkelfunktionen um den winkel dafür auszurechnen...

EntityPointAt(entity, dirx, diry, dirz)
gleich wie obiger Befehl, nur ausrichtung an xyz koordinaten.

so ähnlich wie bei x_camera müsste das ja sein, also nicht so schwer, oder?(hoffe ich)


kann man eigentlich newton mit dem entitysystem kreuzen?
also ich habs mir noch nicht angeschaut, aber mit dem entityparent könnte man sozusagen die newton objekte welche unter physikalischen einfluß stehen direkt mit entities verbinden.
oder versteh ich das völlig falsch?


[edit] ich kann vielleicht doch bisschen was selber machen, aber ich brauche die winkel auf x,y,z zum globalen koordinatensystem, und die winkel auf der x und y achse zwischen zwei objekten.Dann kann ich ein paar funktionen selber schreiben.Gernot vielleicht kannst du mir das erklären, oder entsprechende befehle einfügen.Winkel sind nicht wirklich meine stärke.(man brauch glaub ich auch noch die entfernung zwischen zwei objekten)mmmm ich weiß, ich quäl dich ganz schön, aber so bauen wir das ES perfekt aus.

Und ja, ich arbeite schon fleißig damit....lol