Перейти к содержимому

Знакомство с холстом

Наш движок рендерит эффекты в реальном времени с использованием элемента HTML canvas, аналогично тому, как браузер отображает веб-сайты.

Пользовательские эффекты необходимо хранить в специальной папке, чтобы приложение могло их найти. Независимо от выбранной IDE, каждый эффект — это один HTML-файл, который в процессе разработки должен находиться в C:\Users\<username>\AppData\Local\VortxEngine\app-<version>\Signal-x64\Effects\Dynamic\. Эффекты отображаются в меню «Установленные»; для каждого нового файла в этой папке SignalRGB необходимо перезапустить.

Элемент <canvas> должен быть создан в <body> и корректно получен в <script> (в примере представлен как var ctx). Методы, связанные с ctx, такие как fillStyle, fillRect и т. д., позволяют создавать нужные анимации. Ниже приведён простой пример цикла оттенка.

<head>
<title>Hue Cycle</title>
<meta description="Stock hue cycle."/>
<meta publisher="WhirlwindFX" />
<meta property="speed" label="Cycle Speed" type="number" min="1" max="10" default="2">
</head>
<body style="margin: 0; padding: 0;">
<canvas id="exCanvas" width="320" height="200"></canvas>
</body>
<script>
// Get the canvas element from the DOM
var c = document.getElementById("exCanvas");
var ctx = c.getContext("2d");
var width = 320;
var height = 200;
var hue = 0;
function update()
{
ctx.fillStyle = 'hsl('+ hue + ', 100%, 50%)';
ctx.fillRect(0, 0, width , height);
hue+=(speed / 4);
if (hue > 360) { hue = hue % 360; }
window.requestAnimationFrame(update);
}
window.requestAnimationFrame(update);
</script>
<head>
<title>Hue Cycle</title>
<meta description="Stock hue cycle."/>
<meta publisher="WhirlwindFX" />
<meta property="speed" label="Cycle Speed" type="number" min="1" max="10" default="2">
</head>
<body style="margin: 0; padding: 0;">
<canvas id="exCanvas" width="320" height="200"></canvas>
</body>
<script>
// Get the canvas element from the DOM
var c = document.getElementById("exCanvas");
var ctx = c.getContext("2d");
var width = 320;
var height = 200;
var hue = 0;
function update()
{
ctx.fillStyle = 'hsl('+ hue + ', 100%, 50%)';
ctx.fillRect(0, 0, width , height);
hue+=(speed / 4);
if (hue > 360) { hue = hue % 360; }
window.requestAnimationFrame(update);
}
window.requestAnimationFrame(update);
</script>

Вот и всё — весьма впечатляющий цикл оттенка. Пусть это и просто, но этот небольшой шаблон содержит всё необходимое для начала программирования! Для получения дополнительной информации см. раздел Эффекты — это веб-страницы.