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 - присваиваем ей номер
× **Примечание:** номера текстур должны быть больше 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
Результат говорит сам за себя:
|2054|1|0|08727525`png`895`656`400`293``\|30804637`png`783`482`400`246``\||risovanie_na_ehkrane_chast_2_tekstury|1498916749
