Доброго времени суток. В этом уроке я расскажу Вам о TextDraw’ах.
[size=150]Что такое TextDraw?[/size]
TextDraw — 2D блок, выводимый на экране пользователя.
[size=150]Экран пользователя[/size]
По стандарту расширение экрана при запуске GTA SA изменяется на 640×480 пикселей. Кстати, именно это создаёт баг широкоформатных экранов.
[attachment=1]2D система координат графической библиотеки OpenGL при расширении 640×480 пикселей.png[/attachment]
Если в одиночной игре это редактируется в настройках, то в мультиплеере это невозможно. Поэтому мы можем рассчитывать 2D координаты без особых проблем.
В OpenGL, что очень странно, 2D точка X:0;Y:0 находится в левом верхнем углу экрана (привет WinAPI), хотя разумнее было бы поставить её в центр. Ну да ладно, как сделали, так сделали.
[size=150]Типы переменных TextDraw[/size]
Итак, раз Вы читаете эту тему, значит, уже знакомы с типами переменных Integer, Float, String, Char и Bool. Теперь настала пора познакомиться с ещё двумя — Text и PlayerText.
[code]new Text:tMyText1 = Text:INVALID_TEXT_DRAW;
new PlayerText:pltMyText2 = PlayerText:INVALID_TEXT_DRAW;[/code]

[list]

  • [*]Тип Text — глобальный TextDraw, т.е. выводимый всем игрокам на сервере.

  • [*]Тип PlayerText — Pre-Player TextDraw, то бишь выводимый конкретному игроку.
  • [/list]
    [size=150]Функции глобальных TDs (TextDraws)[/size]
    [list]
  • [*]TextDrawCreate — создать TD

  • [*]TextDrawDestory — удалить TD

  • [*]TextDrawColor — цвет текста TD

  • [*]TextDrawBoxColor — цвет фона поля TD

  • [*]TextDrawBackgroundColor — цвет фона TD

  • [*]TextDrawAlignment — выравнивание TD

  • [*]TextDrawFont — шрифт TD

  • [*]TextDrawOutline — контур текста TD

  • [*]TextDrawSetShadow — тень TD

  • [*]TextDrawSetProportional — масштабирование интервалов текста в TD до пропорционального соотношения

  • [*]TextDrawUseBox — использовать ли поле TD

  • [*]TextDrawSetString — текст TD

  • [*]TextDrawShowForPlayer — отобразить TD для определённого игрока

  • [*]TextDrawHideForPlayer — скрыть TD для определённого игрока

  • [*]TextDrawShowForAll — отобразить TD для всех

  • [*]TextDrawHideForAll — скрыть TD для всех
  • [/list]

    [b]Обратите внимание![/b] Вы можете создавать до 2048 глобальных TD.
    [size=150]Функции Pre-Player TD[/size]
    [list]
  • [*]PlayerTextDrawCreate — создать PlayerTD

  • [*]PlayerTextDrawDestory — удалитьPlayer TD

  • [*]PlayerTextDrawColor — цвет текста PlayerTD

  • [*]PlayerTextDrawBoxColor — цвет фона поля PlayerTD

  • [*]PlayerTextDrawBackgroundColor — цвет фона PlayerTD

  • [*]PlayerTextDrawAlignment — выравнивание PlayerTD

  • [*]PlayerTextDrawFont — шрифт PlayerTD

  • [*]PlayerTextDrawOutline — контур текста PlayerTD

  • [*]PlayerTextDrawSetShadow — тень PlayerTD

  • [*]PlayerTextDrawSetProportional — масштабирование интервалов текста в PlayerTD до пропорционального соотношения

  • [*]PlayerTextDrawUseBox — использовать ли поле PlayerTD

  • [*]PlayerTextDrawSetString — текст PlayerTD

  • [*]PlayerTextDrawShow — отобразить PlayerTD для определённого игрока

  • [*]PlayerTextDrawHide — скрыть PlayerTD для определённого игрока
  • [/list]

    [b]Обратите внимание![/b] Вы можете создать до 256 Pre-Player TextDraws.
    [size=150]Шрифты TextDraw’ов[/size]
    [attachment=0]Textdraw_font_styles.png[/attachment]
    [size=150]«Hello, world!» TextDraw[/size]
    [code]#include
    main {
    printf(«Hello, world!»);
    }
    new Text:tdHelloWorld;
    public OnGameModeInit()
    {
    tdHelloWorld = TextDrawCreate(320.0, 320.0, «Hello World!»);
    return true;
    }
    public OnPlayerConnect(playerid) // Подключился игрок[playerid]
    {
    TextDrawShowForPlayer(playerid, tdHelloWorld);
    return true;
    }[/code]

    От danilasar

    Это я

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *