Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
(ID3DXFont :: DrawText) zmierzyć ciąg dla esp?
#1
cześć, chcę zmierzyć mój "sznur esp". im przy użyciu metody ID3DXFont: .DrawText do rysowania ciąg. jako bazę w użyciu a2-multihack traplol2.   z MSDN:               Kod:   INT DrawText ([in] LPD3DXSPRITE pSprite, [in] LPCTSTR pString, [in] INT Count, [in] LPRECT pRect, [in] Format DWORD, [in] D3DCOLOR Color);   Wartość Znaczenie DT_BOTTOM Uzasadnia tekst na dole prostokąta. Ta wartość musi być połączona z DT_SINGLELINE. DT_CALCRECT Określa szerokość i wysokość prostokąta. Jeśli istnieje wiele linii tekstu, DrawText używa szerokości prostokąta wskazywanego przez parametr pRect i rozszerza podstawę prostokąta, aby związać ostatni wiersz tekstu. Jeśli istnieje tylko jeden wiersz tekstu, DrawText modyfikuje prawą stronę prostokąta tak, że ogranicza ostatni znak w linii. W obu przypadkach DrawText zwraca wysokość sformatowanego tekstu, ale nie rysuje tekstu. DT_CENTER Centra tekstowe w poziomie w prostokącie. DT_EXPANDTABS Rozwija znaki tabulacji. Domyślna liczba znaków na karcie to osiem. DT_LEFT Wyrównuje tekst w lewo. DT_NOCLIP Rysuje bez obcinania. DrawText jest nieco szybszy, gdy używany jest DT_NOCLIP. DT_RIGHT Wyrównuje tekst w prawo. DT_RTLREADING Wyświetla tekst w kolejności czytania od prawej do lewej dla tekstu dwukierunkowego, gdy wybrana jest czcionka hebrajska lub arabska. Domyślna kolejność czytania dla całego tekstu jest od lewej do prawej. DT_SINGLELINE Wyświetla tekst tylko w jednym wierszu. Zwroty karetki i podawanie linii nie przerywają linii. DT_TOP Top-uzasadnia tekst. DT_VCENTER Centruje tekst w pionie (tylko jedna linia). DT_WORDBREAK Przerywa słowa. Linie są automatycznie dzielone między słowa, jeśli słowo przekroczy granicę prostokąta określoną przez parametr pRect. Sekwencja powrotu karetki / posuwu linii również przerywa linię.           już próbowałem ingerować w te typy formowania: DT_CENTER, DT_CALCRECT, DT_VCENTER ?, DT_TOP? - jeszcze nie ma szczęścia, właściwie wiedz, dlaczego teraz.       Kod:   void d3d9h :: _DrawText (ID3DXFont * pFont, const char * tekst, float x, float y, D3DCOLOR fontcolor) {RECT pos = {pos. left = x, pos. top = y, 0, 0}; pFont -> DrawTextA (NULL, text, strlen (text), & pos, DT_NOCLIP | FF_DONTCARE, fontcolor); }   rozwiązanie wydaje się uzyskać rzeczywistą długość łańcucha znaków (char), a następnie ustawiając środek ciągu znaków (odpowiednio char count / 2?) na zero x-cordów w linii prostej, y pozostaje rzeczywiste, teoretycznie prawidłowe? może ktoś mógłby dać mi wskazówkę, jak mógłbym to zrobić praktycznie.   jakiś wizualny przykład:     dzięki
Reply
#2
DT_CENTER działa dobrze dla mnie: Kod: void DrawCenterString (std :: string String, int x, int y, D3DCOLOR Color, ID3DXFont * ifont) {RECT rect = {x, y, x, y}; SetRect (i rect, x, y, x, y); ifont -> DrawTextA (NULL, String. c_str (), - 1, i rect, DT_CENTER | DT_NOCLIP, Color); } BTW to prawdopodobnie niewłaściwa sekcja, powinna być tutaj: http://www.unknowncheats.me/forum/d3...ls-and-source/
Reply
#3
Zacytować: Wysłane przez pierwotnie CraftLourens dzięki. Teraz podłącz hak directx 11 do Arma 3 co?? Zacytować: Originally Posted by BuckshotYT DT_CENTER działa dobrze dla mnie: Kod: void DrawCenterString (std :: string String, int x, int y, D3DCOLOR Color, ID3DXFont * ifont) {RECT rect = {x, y, x, y}; SetRect (i rect, x, y, x, y); ifont -> DrawTextA (NULL, String. c_str (), - 1, i rect, DT_CENTER | DT_NOCLIP, Color); } BTW to prawdopodobnie niewłaściwa sekcja, powinna być tutaj: http://www.unknowncheats.me/forum/d3...ls-and-source/ dzięki za to, ale już wypróbowałem wszystkie kombinacje tych typów formartingu, bez powodzenia. to właściwie sposób w jaki "ja" (w końcu) inicjuje rysunek. może w2s? jeśli wywołasz formarting bezpośrednio w "_DrawText", wszystkie wyniki są podobne do pierwszego # (ale ciąg wydaje się wyśrodkowany). jeśli nazywam to w RenderStuff (); nic się nie dzieje (# 2). (wydaje mi się, że jest to problem z armą, z powodu dziwnych struktur kostnych lub mojej podstawy) pracowałem z "DT_CALCRECT", wydaje mi się, że coś pominąłem w moim prostym pos up. dzięki i tak
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)