Jump to content

návod Nová funkce 0.3x - promítnutí objektu do textdrawu


Recommended Posts

Zdravím,

nedávno jsem zkoumal nové funkce textdrawu, pomocí kterých je možné promítnout 3D objekty do 2D textdrawu. A mám tu pro Vás rešení několika problémů. které mohou nastat.

 

Začneme tím že si vytvoříme textdraw libovolné velikosti, ale se zaplým boxem.

K tomu je dobrá TextDrawEditor, který tu na pawno.cz zveřejnil FireWall.

 

TextDrawFont(Text:text,TEXT_DRAW_FONT_MODEL_PREVIEW);//je potreba nastavit font aby jsme mohli zobrazit modely

TextDrawSetPreviewModel(Text:text, modelindex);//touto funkci nastavite textdrawu model ktery ma rozbrazit (lze zobrazit vse skiny, vozidla, objekty), staci jen zadat ID modelu
TextDrawSetPreviewRot(Text:text, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fZoom = 1.0);//touto funkci nastavite offsety od objektu a vzdalenost. Jiste jste si vsimli ze tu neni zadny parametr natoceni objektu - neni treba. Objekt se natoci tak, aby jste se koukali z bodu ktery nastavite pomoci offsetu.HTTP U vzdalenosti, pokud bude cislo mensi nez 1 promitnuty objekt se zvetsi, pokud bude vetsi nez 1 objekt se zmensi.
TextDrawSetPreviewVehCol(Text:text, color1, color2);//Zde lze nastavit barvu promitnuteho vozidla

 

A nyni si povíme, jaké mohou nastat problémy, a jak je vyřešit:

 

1) Vytvořil jsem si textdraw s boxem, ale jakmile tam promitnu objekt box se natáhne nebo smrští.

Za tento jev je odpovědná funkce

TextDrawTextSize(Text:text,x,y);

Pokud máme textdraw:

new Text:text = CreatePlayerTextDraw(playerid,25,157,"_");
TextDrawTextSize(text,74,224);
...

Stačí prostě od sebe odečíst Yové souřadnice a rozdíl zapsat do Size.

Tedy

Y = 224-157=67

Upravime:

TextDrawTextSize(text,74,67);

Pokud vytvoříme textdraw takto upravený bez načtení objektu. Tak se nám "deformuje", ovšem jakmile objekt načtete tak se srovná tak jak chcete.

 

2) Mám dvě tlačítka pod sebou, a když najedu na to spodní označí se mi i to horní.

Za tento problém může opět tato funkce

TextDrawTextSize(Text:text,x,y);

Zde ovšem nic neodečítáme, protože spodní hrana boxu neni dána touto funkci ale natahuje jí funkce TextDrawLetterSize

Proto musíme zkoušet nastavení Xové souřadnice tak, aby nastavená spodní hrana ladila s nastavením boxu.

 

3) Nastavil jsem si barvu boxu, ale jakmile načtu objekt pozadí mi zčerná

načtením objektu není používáná barva boxu, ale barva pozadí písma, takže stací nastavit

PlayerTextDrawBackgroundColor

 

4) Načetl jsem objekt, který není uprostřed textdrawu

Toto se může stát jen u některých specifických objektů, které nemají "uchopovy bod" uprostřed sebe. Například dveře. zde je potřeba nastavit offset tak, aby uprostřed byl.

  • Líbí se mi to! (+1) 3
Link to comment
Share on other sites

  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...