СКРИПТЫ ОТКЛЮЧЕНЫ

Дальнейшая работа данной страницы будет остановлена

TextDraws. Всё, что вы хотели знать, но боялись спросить

Глубокое изучение Pawn
Аватара пользователя
danilasar
Сообщения: 254
Зарегистрирован: 11 июл 2016, 17:13

TextDraws. Всё, что вы хотели знать, но боялись спросить

Сообщение danilasar » 03 апр 2018, 10:36

Доброго времени суток. В этом уроке я расскажу Вам о TextDraw'ах.
Что такое TextDraw?
TextDraw - 2D блок, выводимый на экране пользователя.
Экран пользователя
По стандарту расширение экрана при запуске GTA SA изменяется на 640x480 пикселей. Кстати, именно это создаёт баг широкоформатных экранов.
2D система координат графической библиотеки OpenGL при расширении 640x480 пикселей.png
2D система координат графической библиотеки OpenGL при расширении 640x480 пикселей.png (12.82 КБ) 140 просмотров
Если в одиночной игре это редактируется в настройках, то в мультиплеере это невозможно. Поэтому мы можем рассчитывать 2D координаты без особых проблем.
В OpenGL, что очень странно, 2D точка X:0;Y:0 находится в левом верхнем углу экрана (привет WinAPI), хотя разумнее было бы поставить её в центр. Ну да ладно, как сделали, так сделали.
Типы переменных TextDraw
Итак, раз Вы читаете эту тему, значит, уже знакомы с типами переменных Integer, Float, String, Char и Bool. Теперь настала пора познакомиться с ещё двумя - Text и PlayerText.

Код: Выделить всё

new Text:tMyText1 = Text:INVALID_TEXT_DRAW; new PlayerText:pltMyText2 = PlayerText:INVALID_TEXT_DRAW;
  • Тип Text - глобальный TextDraw, т.е. выводимый всем игрокам на сервере.
  • Тип PlayerText - Pre-Player TextDraw, то бишь выводимый конкретному игроку.
Функции глобальных TDs (TextDraws)
  • 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 для всех
Обратите внимание! Вы можете создавать до 2048 глобальных TD.
Функции Pre-Player TD
  • 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 для определённого игрока
Обратите внимание! Вы можете создать до 256 Pre-Player TextDraws.
Шрифты TextDraw'ов
Textdraw_font_styles.png
Textdraw_font_styles.png (7.3 КБ) 140 просмотров
"Hello, world!" TextDraw

Код: Выделить всё

#include <a_samp> 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; }
Помог? Не стоит благодарности.

Префиксы:

Вернуться в «Изучаем язык Pawn»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость

  • Имя пользователя:


    Пароль:


    Remember me

    Register now!



  •  Top Posters

  •  Newest members

  •  Ссылка на нас
  • Please feel free to link to Pawn Forum. Use the following HTML:




cron