> For the complete documentation index, see [llms.txt](https://lessons.sannybuilder.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lessons.sannybuilder.com/00100/00200/00039.-risovanie-na-ekrane-chast-2-tekstury.md).

# 00039. Рисование на экране (Часть 2 - Текстуры)

Рисование на экране (Часть 2 - Текстуры)|В этом уроке Вы узнаете как выводить текстуры на экран.|wmysterio|wmysterio||||Прежде всего нужно помнить, что загружать текстуры можно только те, что находятся в папке "Игра\MODELS\TXD\\". Поэтому кидайте свои текстуры в эту папку, а только потом загружайте их.

Итак, первый делом, нужно загрузить TXD-файл, в котором есть текстуры. Делается это опкодом:

```
0390: load_txd_dictionary 'LD_POKE'
```

Здесь:\
'LD\_POKE' — имя тестуры. Обратите внимание, что расширение указывать не нужно. Также нет необходимости проверять на её загруженность ( даже проверки такой нету )

Что бы выгрузить текстуры с памяти используйте опкод:

```
0391: release_txd_dictionary
```

Следует помнить, что выгружаются абсолютно все загруженные ранее текстуры! Что бы мы могли выводить нужные текстуры, нужно указать им номер:

```
038F: load_texture "cd10c" as 1
```

Здесь:\
"cd10c" - имя картинки ( см. Картинку ниже )\
1 - присваиваем ей номер![](https://github.com/wmysterio/scm-scripting-lessons/raw/resources/_pu/0/30804637.png)\
\
× \*\*Примечание:\*\* номера текстур должны быть больше 0!

Так же обратите внимание на размер картинки ( в нашем случаи: 128x128 ). Он нам ещё пригодится!

Есть два опкода для рисования текстур:

```
038D: draw_texture 1 position 200.0 150.0 size 128 128 RGBA 255 255 255 255
074B: draw_texture 1 position 200.0 150.0 scale 128 128 angle 0.0 color_RGBA 255 255 255 255
```

Здесь:\
1 - номер картинки\
200.0 150.0 - координаты экрана где должна размещаться картинка\
128 128 - размер картинки\
0.0 - угол поворота картинки\
255 255 255 255 здесь указываются цвета и прозрачность. Обычно так и оставляют, но если написать так: "0 255 255 255", то в картинке пропадёт весь красный цвет и вообще картинка поменяется ( это только в игре, с самой картинкой ничего не случаться )

Так же есть полезный опкод:

```
03E3: set_texture_to_be_drawn_antialiased 1
```

Он сглаживает картинку, то есть не видно жесткой пикселизации.

Как видите, опкодов для работы с текстурами немного, но их достаточно, что бы сделать отличную модификацию, например того же спидометра. Но спидометра мы делать пока не будем, а просто выведем текстуру на экран. Так же, как и текст, текстуры рисовать нужно в цикле и с использованием опкода 03F0.

Давайте напишем простой скрипт с использованием текстур. Немного усложним скрипт, сделаем что бы картинка появлялась, когда игрок нажмёт клавишу 1\`:

```
:TEXTURE
thread 'TEXTURE'
wait 0 
if
0AB0: key_pressed 49
jf @TEXTURE
0390: load_txd_dictionary 'LD_DUAL'
038F: load_texture "light" as 1
wait 250

:TEXTURE_1
wait 0
03f0: enable_text_draw 1
03E3: set_texture_to_be_drawn_antialiased 1 
038D: draw_texture 1 position 150.0 150.0 scale 25.0 25.0 RGBA 255 255 255 255 
if
0AB0: key_pressed 49
then
0391: release_txd_dictionary
wait 250
jump @TEXTURE
end 
jump @TEXTURE_1
```

Результат говорит сам за себя:

![](https://github.com/wmysterio/scm-scripting-lessons/raw/resources/_pu/0/08727525.png)|2054|1|0|08727525\`png\`895\`656\`400\`293\`\`\\|30804637\`png\`783\`482\`400\`246\`\`\\||risovanie\_na\_ehkrane\_chast\_2\_tekstury|1498916749
