## Регистрация

Объявлять изображения можно в любой момент (главное - до их использования): и в `init`-блоке, и в `label`-секции.
Делается это так:
```renpy
image np smile = "images/sprites/np/np_smile.png"
image np normal = "images/sprites/np/np_normal.png"
```
Путь к изображениям задаётся относительно директории resources.
Если определить изображение 2 раза (например, `np smile`), то при повторном определении старое изображение будет замещено новым.

***

## Показ спрайта

Отобразить изображение на экране можно командой `show`:  
`show np smile`  
Стоит обратить внимание на то, что если мы сейчас сделаем:  
`show np normal`  
То первое изображение пропадёт.

***

## Псевдоним

Скрытие предыдущего изображения из абзаца выше происходит из-за того, что они имеют один и тот же **псевдоним**.
Псевдоним указывается параметром `as` после имени изображения:  
`show np normal as np1`  
В случае же, когда мы не указываем его вручную, он автоматически приравнивается первому слову в имени изображения (в данном случае `np`).
Т. е. когда мы отображаем `np normal`, изображение получает такой же псевдоним (`np`), как и `np smile`, поэтому `np smile` и убирается со сцены в примере из прошлого абзаца.

Кроме `as` есть и другие параметры.

***

## Позиция

`at` указывает местоположение на экране, например:
* `show np smile at left` - слева
* `show np smile at center` - по центру
* `show np normal at fright` - справа, близко к краю

Допустимы следующие значения (слева направо): `fleft, left, cleft, center, cright, right, fright` (по умолчанию используется `center`).  
На самом деле, это специальные объекты, причём указание места - лишь часть их функционала.
Они также отвечают и за анимации с трансформациями.
О том, как создавать свои объекты такого типа, рассказывается в главе про
[ATL](./ATL-(анимации-и-трансформации)).

***

## На втором плане

Указать положение **за** каким-либо персонажем позволяет `behind`.  
Допустим, у нас есть какой-то персонаж `sp`, и мы его отображаем так:  
`show sp normal at cright`  
Тогда при выполнении следующей команды персонаж `np` будет спереди `sp`:  
`show np normal at right`  
А если мы хотим поместить его позади, то следует использовать `behind`:  
`show np normal at right behind sp`

Нужно отметить, что `sp` здесь является псевдонимом.
Т. е. если бы на пару строк выше `sp` был бы показан с использованием `as sp1`, то и сейчас мы должны были бы написать `behind sp1`.

***

## Эффект

`with` указывает эффект, с которым отображается изображение (затемнение, появление и т. д.).  
Для эффектов выделена
[отдельная глава](./Эффекты),
так что детали ищите там.

***

## Скрытие
  
`hide np`  
Здесь `np` - тоже псевдоним.

***

## Сцены

Показ сцены убирает все объекты и показывает изображение нужной сцены. Примеры:
```renpy
scene bg black
scene cg my_room
scene # просто убрать всё
```

***

## Авто-масштабирование

Без указания размеров спрайт будет иметь размеры оригинального изображения при любых разрешениях экрана, что нехорошо.
```renpy
image np smile = "images/sprites/np/np_smile.png"
```

То же самое произойдёт и при указании абсолютных размеров:
```renpy
image np smile = "images/sprites/np/np_smile.png":
	size (400, 600)
```

Ситуация будет лучше при указании относительных размеров (*относительно* размера окна):
```renpy
image np smile = "images/sprites/np/np_smile.png":
	size (0.3, 0.889) # 400 / 1200, 600 / 675
```
Проблема же, однако, в том, что разные спрайты могут иметь разные размеры.

Решения:
1. Добавить пустые места в изображениях (слева, справа и сверху) и поставить один и тот же относительный размер в
[default_decl_at](./ATL-(анимации-и-трансформации)#user-content-Параметры-по-умолчанию) - лишнее расходование
многих ресурсов, иногда довольно значительное.
2. Указывать разные относительные размеры для каждого спрайта - муторно, долго,
используемые числа не очевидны, ошибки незаметны.

Авто-мастштабирование позволяет избавиться от всех этих недостатков.  
Достаточно лишь указать размеры экрана, для которого предназначены спрайты,
и во время игры их размеры будут автоматически изменены так, чтобы
отношение оригинальных размеров к указанным размерам окна были такими же как
отношения новых, вычисленных размеров к текущим размерам окна.

Указание размеров экрана, для которого предназначены спрайты, в новом проекте по умолчанию такое:
```renpy
init -1000:
	
	# only for scaling sprites!
	$ config.width, config.height = 1200, 675
	
	
	$ default_decl_at = []

	image rn happy = 'images/sprites/rn/happy.png'
```
Здесь вам требуется заменить `1200, 675` на размеры своего "стандартного экрана", к примеру, на `1920, 1080`.

Хотя изображения с явно указанными размерами тоже будут отмасштабированы,
обычно всё-таки нет никакой нужды эти размеры указывать, и потому дефолтную трансформацию (`default_decl_at`)
обычно имеет смысл держать пустой.

P. S. Т. к. `config` - на самом деле часть `persistent`-объекта (который сохраняет свойства между запусками), то
для отключения авто-масштабирования следует установить указанные свойства в `None`,
а не просто удалить или закомментировать установку числовых значений.

***

[Далее ->](./Музыка-и-звуки)  
[<- Назад](./Простейшие-примеры)
