[−][src]Struct console_engine::ConsoleEngine
Fields
frame_count: usize
The current frame count, publicly accessible
Methods
impl ConsoleEngine
[src]
Basic Usage :
use console_engine::pixel; use console_engine::termion::color; use console_engine::termion::event::Key; fn main() { // initializes a screen of 20x10 characters with a target of 3 frame per second // coordinates will range from [0,0] to [19,9] let mut engine = console_engine::ConsoleEngine::init(20, 10, 3); let value = 14; // main loop, be aware that you'll have to break it because ctrl+C is captured loop { engine.wait_frame(); // wait for next frame + capture inputs engine.clear_screen(); // reset the screen engine.line(0, 0, 19, 9, pixel::pxl('#')); // draw a line of '#' from [0,0] to [19,9] engine.print(0, 4, format!("Result: {}", value)); // prints some value at [0,4] engine.set_pxl(4, 0, pixel::pxl_fg('O', color::Cyan)); // write a majestic cyan 'O' at [4,0] if engine.is_key_pressed(Key::Char('q')) { // if the user presses 'q' : break; // exits app } engine.draw(); // draw the screen } }
pub fn init(width: u32, height: u32, target_fps: u32) -> ConsoleEngine
[src]
Initialize a screen of the provided width and height, and load the target FPS
pub fn init_fill(target_fps: u32) -> ConsoleEngine
[src]
Initialize a screen filling the entire terminal with the target FPS
pub fn scr_w(&self) -> u32
[src]
Get the screen width
pub fn scr_h(&self) -> u32
[src]
Get the screen height
pub fn clear_screen(&mut self)
[src]
Reset the screen to a blank state
pub fn print(&mut self, x: u32, y: u32, string: String)
[src]
prints a string at the specified coordinates.
The string will automatically overlaps if it reach the right border
usage:
engine.print(0,0, String::from("Hello, world!")); engine.print(0, 4, format!("Score: {}", score));
pub fn print_fbg<C1: Color + Clone, C2: Color + Clone>(
&mut self,
x: u32,
y: u32,
string: String,
fg: C1,
bg: C2
)
[src]
&mut self,
x: u32,
y: u32,
string: String,
fg: C1,
bg: C2
)
prints a string at the specified coordinates with the specified foreground and background color
The string will automatically overlaps if it reach the right border
usage
// print "Hello, world" in blue on white background engine.print(0,0, String::from("Hello, world!"), color::Blue, color::White);
pub fn line(
&mut self,
start_x: u32,
start_y: u32,
end_x: u32,
end_y: u32,
character: Pixel
)
[src]
&mut self,
start_x: u32,
start_y: u32,
end_x: u32,
end_y: u32,
character: Pixel
)
draws a line of the provided character between two sets of coordinates
this code is heavily inspired by the drawLine function of olc::PixelGameEngine
see: olcPixelGameEngine Repository
usage :
use console_engine::pixel; // ... engine.line(0, 0, 9, 9, pixel::pxl('#'));
pub fn set_pxl(&mut self, x: u32, y: u32, character: Pixel)
[src]
sets the provided character in the specified coordinates
usage:
use console_engine::pixel; // ... engine.set_pxl(3,8,pixel::pixel('o'));
pub fn get_pxl(&self, x: u32, y: u32) -> Pixel
[src]
Get the character stored at provided coordinates
usage:
if engine.get_pxl(3,8).chr == 'o' { engine.print(0,0,"Found a 'o'"); }
pub fn draw(&self)
[src]
Draw the screen in the terminal
For best results, use it once per frame
usage:
engine.print(0,0,String::from("Hello, world!")); // <- prints "Hello, world!" in 'screen' memory engine.draw(); // display 'screen' memory to the user's terminal
pub fn wait_frame(&mut self)
[src]
Pause the execution until the next frame need to be rendered
Internally gets user's input for the next frame
usage:
// initializes a screen with a 10x10 screen and targetting 30 fps let mut engine = console_engine::ConsoleEngine::init(10, 10, 30); loop { engine.wait_frame(); // wait for next frame // do your stuff }
pub fn is_key_pressed(&self, key: Key) -> bool
[src]
checks whenever a key is pressed (first frame held only)
usage:
loop { engine.wait_frame(); // wait for next frame + captures input if engine.is_key_pressed(Key::Char('q')) { break; // exits app } }
pub fn is_key_held(&self, key: Key) -> bool
[src]
checks whenever a key is held down
usage:
loop { engine.wait_frame(); // wait for next frame + captures input if engine.is_key_held(Key::Char('8')) && pos_y > 0 { pos_y -= 1; // move position upward } }
pub fn is_key_released(&self, key: Key) -> bool
[src]
checks whenever a key has been released (first frame released)
usage:
if engine.is_key_held(Key::Char('h')) { engine.clear_screen(); engine.print(0,0,"Please don't hold this button."); engine.draw(); while !engine.is_key_released(Key::Char('h')) { engine.wait_frame(); // refresh button's states } }
pub fn debug_keys(&self)
[src]
prints key status on screen. For debug purposes only.
Trait Implementations
impl Drop for ConsoleEngine
[src]
Auto Trait Implementations
impl !RefUnwindSafe for ConsoleEngine
impl Send for ConsoleEngine
impl !Sync for ConsoleEngine
impl Unpin for ConsoleEngine
impl !UnwindSafe for ConsoleEngine
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,