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

Так же обратите внимание на размер картинки ( в нашем случаи: 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

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

Last updated