summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Worthe <justin@worthe-it.co.za>2018-08-11 16:30:03 +0200
committerJustin Worthe <justin@worthe-it.co.za>2018-08-11 16:30:03 +0200
commit092eb4685e9073b046c98371ab15f85156426d15 (patch)
tree7d366e6b7a3dda606a68608d760aa71ea4d53516
parent3b90ccfcc15b13ff06cfd98dc4817b5d692ef97e (diff)
New cursors!!!
-rw-r--r--src/main.rs22
-rw-r--r--src_assets/sprites/Cursor.pngbin1265 -> 0 bytes
-rw-r--r--src_assets/sprites/Cursor.svg81
-rw-r--r--src_assets/sprites/Cursor1.pngbin0 -> 4286 bytes
-rw-r--r--src_assets/sprites/Cursor2.pngbin0 -> 2663 bytes
-rw-r--r--src_assets/sprites/Cursor3.pngbin0 -> 4810 bytes
6 files changed, 18 insertions, 85 deletions
diff --git a/src/main.rs b/src/main.rs
index e6932af..55c8594 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -35,7 +35,8 @@ struct BugBasherGame {
game_over: bool,
time_to_next_bug: f64,
total_time: f64,
- camera: Affine
+ camera: Affine,
+ cursor: SpriteId
}
impl App<AssetId> for BugBasherGame {
@@ -90,12 +91,16 @@ impl App<AssetId> for BugBasherGame {
let (x, y) = self.camera.invert_translate().apply_f64(ctx.cursor());
match key {
KeyCode::MouseLeft => {
+ let mut hit = false;
for bug in self.bugs.iter_mut().filter(|bug| bug.touches_point(Vec2d { x, y })) {
if !self.game_over && bug.alive == true {
self.points += 1;
}
-
bug.alive = false;
+ hit = true;
+ }
+ if hit {
+ self.rotate_cursor();
}
},
KeyCode::Return => {
@@ -155,7 +160,7 @@ impl App<AssetId> for BugBasherGame {
let mut renderer = renderer.sprite_mode();
renderer.draw(
&Affine::translate(cursor_x, cursor_y),
- SpriteId::Cursor
+ self.cursor
);
}
}
@@ -178,7 +183,8 @@ impl BugBasherGame {
game_over: true,
time_to_next_bug: 0.,
total_time: 0.,
- camera: Affine::id()
+ camera: Affine::id(),
+ cursor: SpriteId::Cursor1
};
game.reset();
game
@@ -221,6 +227,14 @@ impl BugBasherGame {
renderer.draw(&affine, tile);
};
}
+
+ fn rotate_cursor(&mut self) {
+ self.cursor = match self.cursor {
+ SpriteId::Cursor1 => SpriteId::Cursor2,
+ SpriteId::Cursor2 => SpriteId::Cursor3,
+ _ => SpriteId::Cursor1
+ }
+ }
}
fn main() {
diff --git a/src_assets/sprites/Cursor.png b/src_assets/sprites/Cursor.png
deleted file mode 100644
index c097119..0000000
--- a/src_assets/sprites/Cursor.png
+++ /dev/null
Binary files differ
diff --git a/src_assets/sprites/Cursor.svg b/src_assets/sprites/Cursor.svg
deleted file mode 100644
index 9310f50..0000000
--- a/src_assets/sprites/Cursor.svg
+++ /dev/null
@@ -1,81 +0,0 @@
-<?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>
diff --git a/src_assets/sprites/Cursor1.png b/src_assets/sprites/Cursor1.png
new file mode 100644
index 0000000..b5a87fb
--- /dev/null
+++ b/src_assets/sprites/Cursor1.png
Binary files differ
diff --git a/src_assets/sprites/Cursor2.png b/src_assets/sprites/Cursor2.png
new file mode 100644
index 0000000..e1e1e5d
--- /dev/null
+++ b/src_assets/sprites/Cursor2.png
Binary files differ
diff --git a/src_assets/sprites/Cursor3.png b/src_assets/sprites/Cursor3.png
new file mode 100644
index 0000000..8fdb660
--- /dev/null
+++ b/src_assets/sprites/Cursor3.png
Binary files differ