76 lines
1.5 KiB
Rust
76 lines
1.5 KiB
Rust
extern crate pancurses;
|
|
|
|
use pancurses::{initscr, endwin, noecho, curs_set, cbreak, Input};
|
|
const SCREENWIDTH: i32 = 15;
|
|
const SCREENHEIGHT: i32 = 15;
|
|
|
|
|
|
struct Character {
|
|
row: i32,
|
|
col: i32,
|
|
symbol: char
|
|
}
|
|
|
|
fn new_character(row: i32, col: i32, symbol: char) -> Character{
|
|
let mut a = Character {
|
|
row: row,
|
|
col: col,
|
|
symbol: symbol,
|
|
};
|
|
return a;
|
|
}
|
|
|
|
|
|
fn main() {
|
|
|
|
/*Create the window*/
|
|
let window = initscr();
|
|
window.keypad(true);
|
|
|
|
let mut max_x = 0;
|
|
let mut max_y = 0;
|
|
|
|
|
|
|
|
getmaxyx(stdscr(), &mut max_y, &mut max_x);
|
|
|
|
/*Create our dude*/
|
|
let draco = new_character(5,5,'@');
|
|
|
|
/*Set some ncurses config*/
|
|
init();
|
|
window.printw("Hello Rust");
|
|
|
|
// window.printw(&draco.row.to_string());
|
|
|
|
/*See function for explination */
|
|
refresh_win(&window);
|
|
|
|
loop {
|
|
match window.getch() {
|
|
Some(Input::Character(c)) => { window.addch(c); },
|
|
Some(Input::KeyDC) => break,
|
|
// Some(Input::KeyUp) => {
|
|
// let mut y;
|
|
// / let mut x;
|
|
// getyx(window, y, x); },
|
|
Some(Input) => { window.addstr(&format!("{:?}", Input)); },
|
|
None => ()
|
|
}
|
|
}
|
|
endwin();
|
|
}
|
|
|
|
fn init() {
|
|
noecho();
|
|
curs_set(0);
|
|
cbreak();
|
|
}
|
|
|
|
|
|
/* This is a test to see how I can find a way to manipulate main()
|
|
* data (scope) in functions */
|
|
fn refresh_win(window: &pancurses::Window) {
|
|
window.refresh();
|
|
}
|