# 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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lessons.sannybuilder.com/00100/00200/00039.-risovanie-na-ekrane-chast-2-tekstury.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
