HUD Frage
Übersicht

HeikoBetreff: HUD Frage |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wenn ich in einem Spiel ein HUD integrieren möchte, gibt es da irgendwas zu beachten?
Mir schwebt eine fast komplette Umrandung des Screens vor, wo die einzelnen Elemente (Score, Lives, etc.) eingebunden werden. Ist es sinnvoller ein komplettes png zu machen, wo einfach die Mitte eben leer gelassen wird, oder für jede seite ein png? Und einfach am ende des codes diese sozusagen HUD routine einbauen, oder muss ich was dabei beachten, damit es nicht flackert?(hatte mal sowas gelesen) |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mach ein komplettes Png und das was du rauslassen wilst machst du alles in einem Farbton zmb 255,0,255 dann schneidest du mittels Maskimage den Teil raus.
Was das flakern angeht, zeichne alles in den Backbuffer und bau einen Framlimiter ein, dann sollt das kein Problem sein ![]() (tipp am rande, solltest du probleme haben das der Rand nicht schön übernommen wird, machst du einfach bevor du mit der maskcolor farbe anfängst einfach einen kleinen dünnen schwarzen rand ![]() Mfg Ozzi[/code] |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn es dir nicht zu aufwendig ist, mach für jede Seite ein Bild, schont den Graphikspeicher ein bisschen.
Grundsätzlich würden aber beide Varianten funktionieren, wenn du nicht auf ärgste Optimierung aus bist ![]() Was das Flackern angeht: In 3D macht man es üblicherweise so: Code: [AUSKLAPPEN] ;Beginn Hauptschleife
;3D-Kram Renderworld ;2D-Kram Flip ;Ende Hauptschleife Cls ist eig gar nicht von Nöten, da durch Renderworld sowieso der ganze Buffer überschrieben wird. mfG, Christoph. |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es macht eigentlich mehr Sinn, das HUD auch mit 3d-Sprites umzusetzen. Die kannst du dazu an die Kamera heften und mit EntityOrder![]() ;Camera für 3d-Welt aktivieren
RenderWorld() ;Camera für HUD aktivieren, die auf bestimmten CamClsMode eingestellt ist, um nicht den Rest zu löschen, und die andere deaktiviern RenderWorld() Flip |
||
MrKeks.net |
![]() |
draco |
![]() Antworten mit Zitat ![]() |
---|---|---|
außerdem kannst du mit mr. keks methode die sprites auch in ihrer transparenz einstellen (EntityAlpha), was mit normalen Images nicht geht... auch sehr praktisch wenn ein interface etwas halbtransparent sein soll... | ||
Die einzige Möglichkeit, etwas vom Leben zu haben, ist, sich mit aller Macht hineinzustürzen... |
Heiko |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
lol so auf die normale 2d methode ist das jetzt soweit klar.
hab aber mal bisschen geschaut, wegen sprites in 3d mit createsprite usw. aber so richtig blick ich das noch nicht. habe in die hilfe geschaut, und mal createsprite in die sufu eingegeben. wie bekomm ich den ein eigens gezeichnetes sprite in 3d hin? |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Such mal nach "Draw3D"
Ist ne nette lib von Hectic, die genau das kann, was du suchst ![]() |
||
Twitter
Download Jewel Snake! Windows|Android |
Heiko |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das ist mir ehrlich gesagt zu aufwendig, weil ich nur wissen möchte, wie man grundlegend 3d sprites hinbekommt.
von ner lib lernt ich ja nicht wirklich was, wenn ichs nur nutze. |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
https://www.blitzforum.de/help/?subcat=73
Viel Spass. |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ist doch kein Ding ein Sprite vor die Kamera zu heften (EntityParent). Soll das Sprite 1:1 angezeigt werden, so sollte es die hälfte der Bildschirmauflösung/Breite in Z nach vorne gezogen werden. ScaleSprite dann auf die volle (oder halben) Kantenlänge des Sprites setzen. EntityOrder auf höherer Priorität setzen. Meisten reicht bereits -1 wenn man keine Skybox hat. | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Heiko |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
achso, dachte das ist was besonderes, weils ja 2d ist.
also muss es nur mit vor dem renderworld rein, und nicht dannach, und wird automatisch im 3d bereich mit angezeigt. das wußte ich nicht. hatte bisher strickt zwischen 2d und 3d unterschieden... |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein Sprite ist zwar flach 2D, wird aber von der Grafikkarte als 3D Objekt behandelt. Es ist also in dem Sinne nichts besonderes, ausser dass ein Sprite von Blitz3D weitere Optionsmöglichkeiten (z.B. SpriteViewMode![]() Da ein Sprite ein 3D Objekt ist, muß es nicht immer wieder extra ''neu'' gezeichnet werden. Es bleibt bestehen, solange man es nicht explizit wieder löscht. Es wird aber in der Zeit auch keine Änderungen vornehmen können. Also Ziffern anzeigen die sich ändern etc... Dazu müsste man sich wieder was extra schreiben, was auch viel Aufwand bedeuten kann. Kurz: - Wenn du nur ein Fadenkreuz haben möchtest, dann nimm ein Sprite und packe es vor die kamera und fertig. - Willst du aber Änderungen vornehmen (Ziffern anzeigen, Grafikanimation), dann solltest du auch mal damit anfangen mit den Befehlen rumzuspielen. Ab einen gewissen Umfang, werden aber Sprite recht langsam, was dann eine Singlesurface-Grafiklib in Erwegung bringen könnte. Dazu kannst du zum Beispiel die Draw3D benutzen (oder FreeImage oder nach anderen Funktionssammlungen und Engines nachschau halten), oder dich selber mit den ganzen Vektortransformationen und den Restkram kümmern. Allerdings sind die Berechnungen für 2D-Darstellung nicht sehr aufwendig. Wenn man in der Schule auch nur ein wenig aufgepasst hat, oder sonst kein Problem mit Mathe hat, sollte es auch so kein großes Problem sein. Es kann allerdings recht umfangreich werden und es wird vor allem größte Sorgfalt benötigt. -- Oje... Ich glaub dieser Text ist mein Rekordhalter für ''und'' und ''oder'' -Wortfolgen. *lalala* |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Heiko |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
schau dir mal die beiden posts von "eingeproggt" und "mr.keks" an, da sind schon unterschiede, deswegen bin ich auch immer noch verwirrt... | ||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ach, mach es einfach wie mehrmals vorgeschlagen mit der Draw3D.
Meine Methode ist wie du sagst, die strikte Trennung zwischen 2D und 3D. Habe diese Antwort nur gegeben, weil es etwas besser auf deine Frage trifft wie ich finde. Aber eigentlich hat 3D nur Vorteile. Es ist erstens schneller und zweitens mit Transparenz. Und wenn dir schon jemand die Arbeit abnimmt, dann ist es wirklich zu bevorzugen. Als jemand, der selber nur in 2D denkt und sich etwas unbeholfen in 3D rumschlägt rate ich dir, 2 markante Unterschiede zu reinem 2D zu berücksichtigen: Der Ursprung des Koordinatensystems liegt im Bildschirmmittelpunkt und nicht links oben ![]() Außerdem müssen all deine Bilder quadratische Abmessungen in 2er-Potenzen haben, wie zB 16*16, 32*32, 64*64... bis hin zu 2048*2048 (Mehr geht mit den heutigen GraKa's nicht soweit ich weiß) In der Hoffnung dich nicht noch mehr verwirrt zu haben, mfG, Christoph |
||
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group