diff options
-rw-r--r-- | Cargo.lock | 18 | ||||
-rw-r--r-- | src/geometry.rs | 3 | ||||
-rw-r--r-- | src/main.rs | 17 | ||||
-rw-r--r-- | src_assets/sprites/Cursor.png | bin | 0 -> 1265 bytes | |||
-rw-r--r-- | src_assets/sprites/Cursor.svg | 81 |
5 files changed, 117 insertions, 2 deletions
@@ -133,6 +133,7 @@ dependencies = [ "gl 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", "sdl2 0.29.1 (registry+https://github.com/rust-lang/crates.io-index)", + "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -371,6 +372,11 @@ dependencies = [ ] [[package]] +name = "redox_syscall" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] name = "regex" version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -428,6 +434,16 @@ dependencies = [ ] [[package]] +name = "time" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "libc 0.2.37 (registry+https://github.com/rust-lang/crates.io-index)", + "redox_syscall 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)", + "winapi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] name = "unreachable" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -518,6 +534,7 @@ dependencies = [ "checksum rand 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "eba5f8cb59cc50ed56be8880a5c7b496bfd9bd26394e176bc67884094145c2c5" "checksum rayon 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "485541959c8ecc49865526fe6c4de9653dd6e60d829d6edf0be228167b60372d" "checksum rayon-core 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9d24ad214285a7729b174ed6d3bcfcb80177807f959d95fafd5bfc5c4f201ac8" +"checksum redox_syscall 0.1.37 (registry+https://github.com/rust-lang/crates.io-index)" = "0d92eecebad22b767915e4d529f89f28ee96dbbf5a4810d2b844373f136417fd" "checksum regex 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "5be5347bde0c48cfd8c3fdc0766cdfe9d8a755ef84d620d6794c778c91de8b2b" "checksum regex-syntax 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8e931c58b93d86f080c734bfd2bce7dd0079ae2331235818133c8be7f422e20e" "checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8" @@ -525,6 +542,7 @@ dependencies = [ "checksum sdl2 0.29.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4c366cfa1f22d001774214ce2fb13f369af760b016bc79cc62d7f5ae15c00fea" "checksum sdl2-sys 0.27.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8d9f87e3d948f94f2d8688970422f49249c20e97f8f3aad76cb8729901d4eb10" "checksum thread_local 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "279ef31c19ededf577bfd12dfae728040a21f635b06a24cd670ff510edd38963" +"checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" "checksum utf8-ranges 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "662fab6525a98beff2921d7f61a39e7d59e0b425ebc7d0d9e66d316e55124122" "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" diff --git a/src/geometry.rs b/src/geometry.rs index f84a973..6f7f658 100644 --- a/src/geometry.rs +++ b/src/geometry.rs @@ -7,6 +7,9 @@ pub struct Vec2d { } impl Vec2d { + pub fn new(x: f64, y: f64) -> Vec2d { + Vec2d {x, y} + } pub fn distance(&self, other: Vec2d) -> f64 { self.distance_squared(other).sqrt() } diff --git a/src/main.rs b/src/main.rs index 857e744..c98c80e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -32,7 +32,8 @@ struct BugBasherGame { lives: i64, game_over: bool, time_to_next_bug: f64, - total_time: f64 + total_time: f64, + cursor_pos: Vec2d } impl App<AssetId> for BugBasherGame { @@ -86,6 +87,9 @@ impl App<AssetId> for BugBasherGame { bug.alive = false; } }, + InputEvent::MouseMotion(x, y) => { + self.cursor_pos = Vec2d::new(x,y); + }, InputEvent::KeyPressed(KeyCode::Return) => { self.reset(); }, @@ -130,6 +134,14 @@ impl App<AssetId> for BugBasherGame { BugBasherGame::print_string(renderer, &points_str, Alignment::Center, 0., -25.); } } + + { + let mut renderer = renderer.sprite_mode(); + renderer.draw( + &Affine::translate(self.cursor_pos.x, self.cursor_pos.y), + SpriteId::Cursor + ); + } } } @@ -149,7 +161,8 @@ impl BugBasherGame { lives: 0, game_over: true, time_to_next_bug: 0., - total_time: 0. + total_time: 0., + cursor_pos: Vec2d::new(0.,0.) }; game.reset(); game diff --git a/src_assets/sprites/Cursor.png b/src_assets/sprites/Cursor.png Binary files differnew file mode 100644 index 0000000..c097119 --- /dev/null +++ b/src_assets/sprites/Cursor.png diff --git a/src_assets/sprites/Cursor.svg b/src_assets/sprites/Cursor.svg new file mode 100644 index 0000000..9310f50 --- /dev/null +++ b/src_assets/sprites/Cursor.svg @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="50" + height="50" + viewBox="0 0 50 50" + version="1.1" + id="svg4540" + inkscape:version="0.92.2 2405546, 2018-03-11" + sodipodi:docname="Cursor.svg" + inkscape:export-filename="/home/justin/proj/bug_basher/src_assets/sprites/Cursor.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> + <defs + id="defs4534" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="8" + inkscape:cx="26.000629" + inkscape:cy="24.118821" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + units="px" + inkscape:showpageshadow="false" + showborder="true" + inkscape:window-width="1916" + inkscape:window-height="1055" + inkscape:window-x="0" + inkscape:window-y="21" + inkscape:window-maximized="0" /> + <metadata + id="metadata4537"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Layer 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-1072.5196)"> + <circle + style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path5085" + cx="25" + cy="1097.5197" + r="23.5" /> + <path + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 0,1072.5196 50,50" + id="path5087" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + <path + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 0,1122.5196 50,-50" + id="path5087-3" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cc" /> + </g> +</svg> |