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

Уроки · 11

Проценты

В уроке “Позиционирование” мы делили экран на доли — пополам, на трети. Проценты устроены так же, только шкала привычнее: от 0 до 100. 0% — левый край (или верхний, если по вертикали), 100% — правый край, 50% — середина. Это та же шкала, что и в заряде телефона или громкости звука.

Чтобы превратить процент в реальную координату на экране, делим его на 100 (получаем долю от 0.0 до 1.0) и умножаем на ширину экрана:

// Процент от 0 до 100.
let x_percent = 60.0;
// Переводим в пиксели: делим на 100, умножаем на ширину экрана.
let x = screen_width() * x_percent / 100.0;

Например, при 60% точка окажется в 60% ширины экрана от левого края — чуть правее середины. Для вертикали всё то же самое, только через screen_height().

Меняй значения x% и y% ниже — кружок будет прыгать в новую точку, а код под ним покажет, как это записать в Rust, с уже подставленными числами:

src/main.rs
use macroquad::prelude::*;
#[macroquad::main("Проценты")]
async fn main() {
loop {
clear_background(BLACK);
// Процент от ширины экрана.
let x = screen_width() * 50.0 / 100.0;
// Процент от высоты экрана.
let y = screen_height() * 50.0 / 100.0;
draw_circle(x, y, 80.0, YELLOW);
next_frame().await;
}
}
  • x_percent / 100.0 — превращает процент (число от 0 до 100) в долю от 0.0 до 1.0, точно так же, как w / 3.0 в уроке “Позиционирование” превращал ширину экрана в одну треть.
  • Эту долю умножаем на screen_width() — и получаем координату в пикселях, готовую для draw_circle.