pub fn draw_text(
text: &str,
x: f32,
y: f32,
font_size: f32,
color: Color,
) -> TextDimensions
Expand description
Draw text with given font_size Returns text size
Examples found in repository?
examples/basic_shapes.rs (line 12)
4 5 6 7 8 9 10 11 12 13 14 15 16
async fn main() {
loop {
clear_background(LIGHTGRAY);
draw_line(40.0, 40.0, 100.0, 200.0, 15.0, BLUE);
draw_rectangle(screen_width() / 2.0 - 60.0, 100.0, 120.0, 60.0, GREEN);
draw_circle(screen_width() - 30.0, screen_height() - 30.0, 15.0, YELLOW);
draw_text("HELLO", 20.0, 20.0, 30.0, DARKGRAY);
next_frame().await
}
}
More examples
examples/camera.rs (line 21)
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
async fn main() {
loop {
clear_background(LIGHTGRAY);
// Render some primitives in camera space
set_camera(&Camera2D {
zoom: vec2(1., screen_width() / screen_height()),
..Default::default()
});
draw_line(-0.4, 0.4, -0.8, 0.9, 0.05, BLUE);
draw_rectangle(-0.3, 0.3, 0.2, 0.2, GREEN);
draw_circle(0., 0., 0.1, YELLOW);
// Back to screen space, render some text
set_default_camera();
draw_text("HELLO", 30.0, 200.0, 30.0, BLACK);
next_frame().await
}
}
examples/input_keys.rs (line 25)
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
async fn main() {
let mut x = screen_width() / 2.0;
let mut y = screen_height() / 2.0;
loop {
clear_background(LIGHTGRAY);
if is_key_down(KeyCode::Right) {
x += 1.0;
}
if is_key_down(KeyCode::Left) {
x -= 1.0;
}
if is_key_down(KeyCode::Down) {
y += 1.0;
}
if is_key_down(KeyCode::Up) {
y -= 1.0;
}
draw_circle(x, y, 15.0, YELLOW);
draw_text("move the ball with arrow keys", 20.0, 20.0, 20.0, DARKGRAY);
next_frame().await
}
}
examples/input_touch.rs (line 19)
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
async fn main() {
loop {
clear_background(LIGHTGRAY);
for touch in touches() {
let (fill_color, size) = match touch.phase {
TouchPhase::Started => (GREEN, 80.0),
TouchPhase::Stationary => (WHITE, 60.0),
TouchPhase::Moved => (YELLOW, 60.0),
TouchPhase::Ended => (BLUE, 80.0),
TouchPhase::Cancelled => (BLACK, 80.0),
};
draw_circle(touch.position.x, touch.position.y, size, fill_color);
}
draw_text("touch the screen!", 20.0, 20.0, 20.0, DARKGRAY);
next_frame().await
}
}
examples/3d.rs (line 42)
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
async fn main() {
let rust_logo = load_texture("examples/rust.png").await.unwrap();
let ferris = load_texture("examples/ferris.png").await.unwrap();
loop {
clear_background(LIGHTGRAY);
// Going 3d!
set_camera(&Camera3D {
position: vec3(-20., 15., 0.),
up: vec3(0., 1., 0.),
target: vec3(0., 0., 0.),
..Default::default()
});
draw_grid(20, 1., BLACK, GRAY);
draw_cube_wires(vec3(0., 1., -6.), vec3(2., 2., 2.), DARKGREEN);
draw_cube_wires(vec3(0., 1., 6.), vec3(2., 2., 2.), DARKBLUE);
draw_cube_wires(vec3(2., 1., 2.), vec3(2., 2., 2.), YELLOW);
draw_plane(vec3(-8., 0., -8.), vec2(5., 5.), Some(&ferris), WHITE);
draw_cube(
vec3(-5., 1., -2.),
vec3(2., 2., 2.),
Some(&rust_logo),
WHITE,
);
draw_cube(vec3(-5., 1., 2.), vec3(2., 2., 2.), Some(&ferris), WHITE);
draw_cube(vec3(2., 0., -2.), vec3(0.4, 0.4, 0.4), None, BLACK);
draw_sphere(vec3(-8., 0., 0.), 1., None, BLUE);
// Back to screen space, render some text
set_default_camera();
draw_text("WELCOME TO 3D WORLD", 10.0, 20.0, 30.0, BLACK);
next_frame().await
}
}
examples/text_measures.rs (lines 14-20)
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
fn draw_text_annotated(text: &str, font: Option<&Font>, x: f32, baseline: f32) {
let size = measure_text(text, font, 100, 1.0);
// Full background rect
draw_rectangle(x, baseline - size.offset_y, size.width, size.height, BLUE);
// Base line
draw_rectangle(x, baseline - 2.0, size.width, 4.0, RED);
// Base line annotation
draw_rectangle(x + size.width, baseline - 1.0, 120.0, 1.0, GRAY);
draw_text(
"baseline",
x + size.width + 10.0,
baseline - 5.0,
30.0,
WHITE,
);
// Top line
draw_rectangle(x, baseline - 2.0 - size.offset_y, size.width, 4.0, RED);
// Top line annotation
draw_rectangle(
x + size.width,
baseline - size.offset_y - 1.0,
120.0,
1.0,
GRAY,
);
draw_text(
"topline",
x + size.width + 10.0,
baseline - size.offset_y - 5.0,
30.0,
WHITE,
);
// Bottom line
draw_rectangle(
x,
baseline - 2.0 - size.offset_y + size.height,
size.width,
4.0,
RED,
);
// Bottom line annotation
draw_rectangle(
x + size.width,
baseline - size.offset_y + size.height - 1.0,
120.0,
1.0,
GRAY,
);
draw_text(
"bottomline",
x + size.width + 10.0,
baseline - size.offset_y + size.height - 5.0,
30.0,
WHITE,
);
draw_text_ex(
text,
x,
baseline,
TextParams {
font_size: 100,
font,
..Default::default()
},
);
}