From f4dd51620808a12b3ab7aaba70126e6563541cdd Mon Sep 17 00:00:00 2001 From: Thomas Gideon Date: Tue, 8 Aug 2017 14:02:57 -0400 Subject: [PATCH] Add different color stars. --- assets/blue_star.png | Bin 0 -> 1330 bytes assets/green_star.png | Bin 0 -> 1377 bytes assets/{star.png => pink_star.png} | Bin assets/star.svg | 99 ++++++++++++++++++++++++++--- assets/yellow_star.png | Bin 0 -> 1338 bytes src/lib.rs | 10 ++- src/mobs/star.rs | 17 +++-- 7 files changed, 109 insertions(+), 17 deletions(-) create mode 100644 assets/blue_star.png create mode 100644 assets/green_star.png rename assets/{star.png => pink_star.png} (100%) create mode 100644 assets/yellow_star.png diff --git a/assets/blue_star.png b/assets/blue_star.png new file mode 100644 index 0000000000000000000000000000000000000000..b060993561ea5c6b6bb457e84a566915a3ecbca3 GIT binary patch literal 1330 zcmV-21v#iLnsqJ zhzjDug%VKcqFuNU3u=ipQc+MrA&RSRM1>+!7uL2hinfT=H1npBet@xY(JrdNFVYyB zq{%xjl9;BM%*>s6_r03*x0-qP-t+!{?s*^g%pHh|9^Jwbt%~aOCX%ye^bQQI#AxH7 z#-orBzHv{>P`0BOlxiw?B6JNzVchT}%1nwYn@MYR_%g!8(_2tlXB|`G2rqI{%fpls zo^e$JY{#c;ZW}joo~J_7LYT%q9!JTQ(yessy0GMgW4uS#B5cmtM~P8J8wYer7?Ru@ zS2Y-(N6Bx<=SHq$i*rqcVf-kMqHHL*zwj8nTI)~|;M#b%RsvhC#wdmf+VJ!$H=-tS zYdp?#_}CjzZoubh2a5i~o$<6jgi>Ghc;OK;+7O_kS-3I&ovy?LFk{LKbZbQbiss

P&9|&ji)t*uqm*3$^)b|6AA;ax5baC^HaaDuIttgEc?m@T>KY)9{<-qj)LCIk7xQk;#TJHy%5b98_ zj#^_VDBr}HOyOoUYBeDt3?RH|sFP0-_C~EIBrX6ik(9y77nmX5CdLoZY6<~E2TA#H z@*_aAj59_%hF>BT=9Vu=$iC?>Gq0=-at_#mFcO6-rx^PAo3~~kx|oFYqr8S$K({(! zi1W15EVCwb?jog54xxM$nlP6LKEkUs$=OSrvaik(>_Yh7xiHuGd_Y3Fvo&QmF5>eC zuK=fA>T-%9LmltW-#i~JGR!DDfMFN9oFWXMyqs&bmb(zqBxfjN=hVCI{{zDqWweu& z!Q9>QQ7b(t?*%5zHA)8?q%U8$!b(p`J_NolRg-fJ`$)?E!nziMi1Hh+Bm7j7Fqatm z8Q`5lyW6d|k834k?84_-Yhf-Ch8SUMw&(SH*i~6;WB|h(*1}xl^NEdVD5ktTPR?3Z zL|E^fvNtY-x>uzjjD3}NVHjtz8ZV-*Z*P2}fGr(ib0yUa=ZbL)7O8RnGQ7qYb*igc zy?!qYfy4q(yPvV`{}vIWoC)huGYEYMpP_t3 zLjK{nRx-+c2oK}4w&=Jcb~iYCh($07*qoM6N<$f>cFY{Qv*} literal 0 HcmV?d00001 diff --git a/assets/green_star.png b/assets/green_star.png new file mode 100644 index 0000000000000000000000000000000000000000..e6c440114e3ec1b8a64be4937bded6314d441aed GIT binary patch literal 1377 zcmV-n1)lneP)Hz$CcK$QLmtu|{dxA8a}2yu0_; zi*r}oy!U#}x#v7*Q$Me^^E|)b{qjA(d!FY!&vW4lSGYoGD1z3`4O4;@=7&T5lOQ|L zr(| zya5`Y3A~V}Wgd*wnwAqn1?Wp4*B5A8iPlw`RAbfvt*-`IR=9&$Ag`hEt4&EVXMi?T zfWG3O=Z&E20@stnUEg@MY+Va5R6PzgNYB0@kmp=+)UO41m?8=$Mp zA+re(mw~e(l5e!|6$2FzT?=}%w^&($)-Cl{&qRVXKsVeAva+-!vJqWhVAw33;0)0C z3>baY9@;Pek3g208Lmha3{=I3{->O zWsm4E_QSLX=(Y{e_(ISIkQ+kPW)wXI>AKuJV0j9xU&0k+5*Y<~3u!-X8z9eQAhs1a z5w0*}yoV%@!T6b=>>Py57T{c1s?4AVk(T{q|4p0lN<6IAc-u@+y>eov@$bD2hw^d zUrXWFVQCry*#Zm&CCdzQ6qdCWYAwDVAjtv9G}_b2X~|y@-DVH-`MLOlh_oFBY4=l= z8DtdLitPTgSTBbwLdg$-?$SjWW%t-*rx?x*5ELrjw#U)wfE+|xK6TR5`I?}-GYpZ< zz~5eF8Dapm$!TYIi=y)WuaJEcDELqb7afMo>qzpf(+Kyg!m_6atY+77!J`n_jFWm-}urDB^-eUuy%wC~(M=1t`cDAno0%xvr8&t~9&{Q)3 z7&K`>*7%XOi<7Bv8*wRp1%NWwhpR5JufTbe228~Yz>oo&ut1}pVgn^=ssj3_;@t;h z6+mnXjsO4|QwF3j_X;Sx+zp8OWxx<{0QkYDe69`f_$1GiXn^zroiOsne;XBAI~S~F z*hgw_@tD|@0qHUi#q$U7Im9}VT^DY`%AVhV4xj^Fb2mh5Kp!dm+k(89G9VIjxP6!g zJq&cgqu&%;o}Pg0?FD+##4h-G0az=5hk^3qftD!)va#aFi?ko43(kLrw4b)GwYvWp z`{Y*-(1SL-3uhjJYz z^)gujVDA{oQLwt;+@Z-kuYn;S{0{5`_T^5mJqA((;@SX@=LG9>2O_NlNb@OAIs8Tw j7M!d?T2f(4nO6J@#N9d)F^B+&00000NkvXXu0mjf5)Nzo literal 0 HcmV?d00001 diff --git a/assets/star.png b/assets/pink_star.png similarity index 100% rename from assets/star.png rename to assets/pink_star.png diff --git a/assets/star.svg b/assets/star.svg index fc0c008..d2a3662 100644 --- a/assets/star.svg +++ b/assets/star.svg @@ -15,8 +15,8 @@ version="1.1" id="svg8" inkscape:version="0.92.1 r15371" - sodipodi:docname="star_template.svg" - inkscape:export-filename="/home/cmdln/src/git/susuwatari-game/assets/star.png" + sodipodi:docname="star.svg" + inkscape:export-filename="/home/cmdln/src/git/susuwatari-game/assets/green_star.png" inkscape:export-xdpi="9.6000004" inkscape:export-ydpi="9.6000004"> @@ -48,21 +48,22 @@ image/svg+xml - + + transform="translate(-13.253985,-58.111215)" + style="display:none"> + + + + + diff --git a/assets/yellow_star.png b/assets/yellow_star.png new file mode 100644 index 0000000000000000000000000000000000000000..91c1051c54070e97715c4b9c139a511d1875ad1d GIT binary patch literal 1338 zcmV-A1;zS_P)sTwhEOJc z5EaCQ3nie?MZ0hz7Ss}Hq@tjLLKIishzdodF05^16m5}K)67gG{QzU*qFq#jU!*ZM zNt1V6OcRr4GBbDP-Su=CQ5(FB0MRtJp|s8ZkSM~-dWy;* zwFG8d6$5O?qhf9&w{U@Hg3a|2skYl0v$evHRaHWb}octZQAcc=((Y+QS&2DaJ_!Z1m@rn$zA zsw{3Z9_0nR5)3Fe;qj~kMbkJlt|=ZtX(%~>@R(+3^ik3*oEX>dS&8u>W6Dd~LzNGb z=HMpdQMTdvAXr&Nl;?aI7%F$p`=?@xd>wj zCsEQU8RDFl?3YvI@FLJpiEu0HP?`{81r{4&F@(^EkY*_!68uh7wT4A=_$^~z_;aUa*ko2#Mxh5*CG%>`JFcr zelAa$Lkt59@?Npst=8Lmf@;Rug~#>w${ZpLGs@On_v`tvsyw5Q<;_)!TCX}T`9MQ3HLuG-Q z>sf>@D(RBD`P(`^m+JbE0W#W6C#z{jNdotxL~;*upYgd<-7td35e#2SjEr^6JV+}e zKsV5>{jBCZNeoFm>MrXVK*lGTn#!kuZdUTO)VTkZRciSI*aPg*qtqZIiO`D28Z3=l wZ|>0)J5kQCoUTG!s)9fjLxy?;v6*fE0VP~R!#zUUzW@LL07*qoM6N<$f~8An!~g&Q literal 0 HcmV?d00001 diff --git a/src/lib.rs b/src/lib.rs index 62666a7..3d7e0c9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -34,8 +34,14 @@ impl Game { pub fn new(w: &mut PistonWindow) -> Game { let mut scene = Scene::new(); let mut stars: Vec = vec![]; - for _ in 1..7 { - stars.push(Star::new(w, &mut scene)); + for number in 1..7 { + let color = match number % 4 { + 1 => "yellow", + 2 => "green", + 3 => "blue", + _ => "pink", + }; + stars.push(Star::new(color, w, &mut scene)); } let player = Hero::new(w, &mut scene); Game { diff --git a/src/mobs/star.rs b/src/mobs/star.rs index f63edd7..0a58f56 100644 --- a/src/mobs/star.rs +++ b/src/mobs/star.rs @@ -19,23 +19,23 @@ pub struct Star { dir: u32, pub collider: Cuboid2, pub destroyed: bool, + accel: f64, } const DESIGNED_FOR_WIDTH: f64 = 640.0; const SCALE_FACTOR: f64 = 0.5; -const ACCEL: f64 = 2.0; const MOVE_DUR: f64 = 0.75; const DESTROY_DUR: f64 = 0.75; impl Star { - pub fn new(w: &mut PistonWindow, scene: &mut Scene>) -> Star { + pub fn new(color: &str, w: &mut PistonWindow, scene: &mut Scene>) -> Star { let assets = find_folder::Search::ParentsThenKids(3, 3) .for_folder("assets") .unwrap(); let tex = Rc::new(Texture::from_path(&mut w.factory, - assets.join("star.png"), + assets.join(format!("{}_star.png", color)), Flip::None, &TextureSettings::new()) .unwrap()); @@ -43,6 +43,12 @@ impl Star { let x = rand_pos(width as f64); let y = rand_pos(height as f64); let scale = width as f64 / DESIGNED_FOR_WIDTH * SCALE_FACTOR; + let accel = match color { + "yellow" => 3.0, + "blue" => 1.0, + "green" => 2.0, + _ => 2.0, + }; let mut sprite = Sprite::from_texture(tex); sprite.set_scale(scale, scale); sprite.set_position(x, y); @@ -57,6 +63,7 @@ impl Star { dir: rand_dir(), collider: Cuboid2::new(Vector2::new(bounds[2], bounds[3])), destroyed: false, + accel: accel, } } @@ -81,8 +88,8 @@ impl Star { } self.dir = rand_turn(self.dir); let dir = lookup_dir(self.dir); - let mov_x = ACCEL * dir.0; - let mov_y = ACCEL * dir.1; + let mov_x = self.accel * dir.0; + let mov_y = self.accel * dir.1; scene.run(self.sprite_id, &Action(Ease(EaseFunction::CubicOut, Box::new(MoveBy(dt * MOVE_DUR, mov_x, mov_y)))));