Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Phili

unregistriert

11

21.06.2006, 19:28

@DarkRaider

Aba es geht um Ausgabe in nem Spiel mit DX(glaub ich zumindest) da wirds mit printf schwierig. Oder meinst du, das man printf mit der Engine nachbilden soll(worauf ich übrigens auch vorhin ungefär hinauswollte)?

Anonymous

unregistriert

12

21.06.2006, 20:11

Zitat von »"DarkRaider"«

Man sollte die Lieber mit einer Art printf Anweisung ausgeben


Hoffe das klärt dich auf ;) Wenn es keine gibt, sollte man diese Funktion
natürlich für Dx schreiben :)

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

13

21.06.2006, 22:17

man kann ja auch in Strings "printen" (siehe sprintf). Die eigentliche Ausgabe ist ja nun nicht so schwer.

Anonymous

unregistriert

14

22.06.2006, 08:47

Ja ich weiß jetzt auch nicht so genau wo das Problem liegt, einfach wie
bei den Sprites X oder Y verändern und schon hast das gewünschte
Ergebnis. Dazu kannst du noch If Abfragen machen , was passiert,
wenn z.B. gerade dein Name angezeigt wird, usw. Eine Funktion zu
finden, wie man Text ausgeben kann sollte nicht so schwer sein, es
gibt mehrere Tutorials, wo z.B. Hello World in Dx auf dem Screen ausgegeben
wird.

alexm

Frischling

Beiträge: 71

Wohnort: Wien

  • Private Nachricht senden

15

23.06.2006, 02:23

@Ghostrider

Folgender Vorschlag meinerseits:

Du speicherst dir mal die Namen in einem c-String.

Diesen String lässt Du dann mit der D3DX Funktion->DrawText()
rendern. Bei jedem Renderaufruf veränderst du ganz einfach
die Werte, wo dein Font-Rechteck gezeichnet werden soll -
fertig ist der Scrolltext.

Hier ein kleiner Auszug aus meinem Code. Ist zwar nicht für Scrolltext, habs aber kurz ausprobiert und es klappt super. Brauchst eben nur entsprechend anpassen:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// :::::::: RENDER - START :::::::: 

//

    m_D3D_DEVICE->Clear(0,NULL,D3DCLEAR_TARGET,D3DCOLOR_XRGB(0,0,0),1.0f,0);
    m_D3D_DEVICE->BeginScene();

    m_SPRITE->Begin(D3DXSPRITE_ALPHABLEND);

    D3DXMatrixIdentity(&m_MATRIX);  // Identitätsmatrix zuweisen (scale=1,rotation=1,translation=1)

    m_SPRITE->SetTransform(&m_MATRIX);  // matrix dem sprite zuweisen


// Sprite zeichnen, wenn Du eines hast, ansonsten nimm das da raus

    m_SPRITE->Draw(
        m_TEXTURE,          // textur

        &m_cropFromBitmap,  // ausschnitt von der geladenen textur

        NULL,               // center

        &m_screen_xyzPos,       // screen-position

        0xFFFFFFFF          // color-overlay

        //0x8025A735 

        );

    
    // ::: TEXT RENDERN :::

    _renderScreenText();
    

    m_SPRITE->End();

    m_D3D_DEVICE->EndScene();
    m_D3D_DEVICE->Present(NULL,NULL,NULL,NULL);
    //

    // :::::::: RENDER - ENDE ::::::::


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
inline void cRenderer::_initD3D_Font()
{
    // Schriftfarbe 

    m_D3D_FONT_COLOR = D3DCOLOR_ARGB(255,20,255,20);        // DX Font-Color Objekt


    // Initialisieren des DX Font Objektes (Schrifttype und Aussehen)

    D3DXCreateFont( m_D3D_DEVICE, 16, 0, FW_BOLD, 0, FALSE, DEFAULT_CHARSET, OUT_TT_ONLY_PRECIS , NONANTIALIASED_QUALITY, DEFAULT_PITCH | FF_DONTCARE, TEXT("Tahoma"), &m_D3D_FONT );

    // Rechteckbereich für Rendering festlegen, wo Text gerendert werden soll

    m_D3D_FONT_RENDER_RECT.left     = 2;
    m_D3D_FONT_RENDER_RECT.right    = 780;
    m_D3D_FONT_RENDER_RECT.top      = 10;
    m_D3D_FONT_RENDER_RECT.bottom   = m_D3D_FONT_RENDER_RECT.top+600;

}

inline void cRenderer::_renderScreenText()
{
    m_D3D_FONT_RENDER_RECT.top      -= 1;
    m_D3D_FONT_RENDER_RECT.bottom   = m_D3D_FONT_RENDER_RECT.top+600;
    m_D3D_FONT->DrawText(m_SPRITE, m_screenText, -1, &m_D3D_FONT_RENDER_RECT, 0, m_D3D_FONT_COLOR );    
}

inline void cRenderer::_destroyD3D_Font()
{
    m_D3D_FONT->Release();
}


Hoffe, das hilft Dir ein bisserl weiter ...


EDIT:
Ah, Sorry ... schon spät ...
Habs nochmal gelesen und versteh jetzt was Du meinst.
Ja, ich würd die Namen auch in einen Array schmeissen und eine Funktion bauen, die eben diese MOVE_UP - WAIT3SEC - MOVE_LEFT_OUT funktionalität mit dem D3D Font macht. Danach brauchst die Funktion nur mehr so oft aufrufen, bis Dein Array abgearbeitet ist.

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

16

23.06.2006, 13:08

jo danke an alle

Werbeanzeige