Знакомство с холстом
Наш движок рендерит эффекты в реальном времени с использованием элемента 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>Результат
Заголовок раздела «Результат»Вот и всё — весьма впечатляющий цикл оттенка. Пусть это и просто, но этот небольшой шаблон содержит всё необходимое для начала программирования! Для получения дополнительной информации см. раздел Эффекты — это веб-страницы.