From 135d46497cae4fbfcc500b3bd22b6c8d97d53084 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Tue, 27 Oct 2015 08:48:01 -0400 Subject: [PATCH] bird AI + xcfs --- Changelog | 8 ++++++++ assets/mountain.png | Bin 0 -> 2125 bytes src/entities.cpp | 6 +++++- src/gameplay.cpp | 4 ++-- xcf/mountain.xcf | Bin 0 -> 209841 bytes 5 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 assets/mountain.png create mode 100644 xcf/mountain.xcf diff --git a/Changelog b/Changelog index c1426fd..4c4d823 100644 --- a/Changelog +++ b/Changelog @@ -174,3 +174,11 @@ - fixed GLEW shader initialization segfault - began working on bird mob - improved world scenery + +10/27/2015: +=========== + + - added a parallax background layer + - gained knowledge on sprite creation + - created tree and mountain sprites + - created a decent bird AI diff --git a/assets/mountain.png b/assets/mountain.png new file mode 100644 index 0000000000000000000000000000000000000000..12c0f64000c912aa6456ac2ead339796ddc93371 GIT binary patch literal 2125 zcmV-T2(tHyP)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00*^6L_t(|+U;9SZ&Ozgz3+)< z6fd9=p%ox`k&U}R$oz!<^8N&>Dp8sZi%KB1j+Kyw5i!DDxZ@1tGavVT+9Fr7p5G_V znRCyanRiL)VLXf7WZeb97AQX*24bIm>_*r+Z;I-PFMy?yg~aNvs}0e|=B z*%lBEYy@1+=#)|@aGdo+0$=P4;K->&fR9Ma_2OpdIYRH(bSz88t8pW z%%i>l|Lxa%4b?olmjt;icz{P74(a*nNlNdpHovtG;ES#SC$RbW{jbgT!^b(bV6$dG zTg*N^***XMs(Z!{(od&Ayn6Y3yFY$hZG(_f+5&?liDrToFb=Nhv8UN2rQ7A^x+mlN z?+35x8q2LgGk^z%ALBEF#%z+(AAjR(W|Pe^e*W~t2fAyv7yAM@)b?dc$K(6&1RjAY z2M1TOIi<}$0WP~IkZC`q%`q8(=%_0r2M2l+mUEzGFi;Rs0EofXF^%P) zS1BD;-2z{B<;Uv)O@I=Z{5blqF`k3TLA_n>?#pphZGdn3H}%H!Hnbc`jKz9QQV^>p z(3a#7tug&`59LBR6wA3p@C1oij1uUzA`>!k63ace z!sUg_%!{Y(OHA1&;5n{>fV4oi?vu<$EJut+NmgSz1)y!<%QhuKGSW(Zi0RrhBX&`f z56N;3cmkUkPM@P{59NheE-js8u>@9Qx^yz0Q;9eh?>lF;{7$1ywwG9UK2+#v zKx*eL$&n1_Th4NMUXvDLxU`RZ!E}l|2ZVgKWU^=TEX|KFosuSJyXMg&l_|+fTeV25 zOrK3K%Q@SnE=O_$3Y2FP5wp2|drU_X!;igqIxy2mRa(y`yLL}9UDNB_M6BH()ogyu z^5=5fg|;_lx@0r|$bdw^M%Q@^myU$99D$6OPWnw+P7MFV?!8-WK6_~ykyDAf5Ut^5 zFBkZ9nwCEs*PF4OwRYQ*7Yks^cgy0) zl9Wh$cU0Z8ys3jJbEJj8?CpBUP9f^ENVnqMhYBGtX>y6-fD`+ljq@d@%mw1fxF67E zTULAXqp{xuAAu}cFLj&)&XZ{;Os7bqg5$OW8L_&D+RF&-{+!<@1HrYNOA7x^x}L-K zFw^A{G_I$0fk!=XP0KaFC8O)iL`zzvTN$MHqW!^jdf66u^52ueMbZ+fHl>bhFDa0e zwB=&Th_uWmHltA|PlD2w#E|X|f!!@T8DT1_p((}bKFQJxE8PKM=)%%E8xQJe( zXJ~KqBOSzuv=FN$%X#AL#HWv{v_{K`t^S9$ib^Zlb6u15p3`EuloYG4!nIt2FM%eO z=dituXgC5fw+R)w7O_5>Gjft7DvYFt(-sv%8r!4xvGi=BHl3rc#d04gI9k&RIg|*~ z5zDQBaKOF9DK$N6AIqps^wyF@X9BtoU2m;lxm|7mv-&9#RPT)tD)Y5+pTMre@^B*6 z8b^qEk(q$rU0Ow#w$L+|-EFO5Aq|%-ZzL}=foec&KzY@o)h$F)qwPn0xW{s>)Ymi| zv7Cb+Y58UsM~I2YSy&ouy+X4X?%6@)PCRx;s!a|iV!7OAGd*Gxqk)JpJcr4-1&`M~ zBzNMqY&pm|Lt}e^E+WvoTFa*;%!qVoE!n!Ov2uIk8oRB4$X9whOy>(~kS;cD)#mg{ zBx@1ia`~G_66@7lgykCGBr93+LM+!-tu|$R8!ce|oA@?|?W4+Px-5PoY}OJgl9|$C zIsZd7-`f;K>sfLQif0EuE&b9Sd2ksBS^Pu-z`@oWjw&x`>UtV#fo6fLRf(L@-VEc< z9tE5VU4vdwXiT|1P&(-7{O%D*ED0y_eAEenfdCvP^4f2@9@+J(I z-9qgp1ac>IOtM@CL>5kwQH-jzZo2N;l8rj|=G>3Ef=$<_NVX%U^ZlGzuw}aTraM{* zqW_U5XNAZ9NFUs?fU^JXz1Nif8&#c%>DDZXR;m91(3fuplpj)x00000NkvXXu0mjf D1VI9x literal 0 HcmV?d00001 diff --git a/src/entities.cpp b/src/entities.cpp index da096bc..0479d5e 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -332,6 +332,7 @@ unsigned int Structures::spawn(_TYPE t, float x, float y){ //spawns a structure void Mob::wander(int timeRun){ static int direction; //variable to decide what direction the entity moves + static unsigned int hey=0,hi=0; switch(subtype){ case MS_RABBIT: if(!ticksToUse){ @@ -350,7 +351,10 @@ void Mob::wander(int timeRun){ ticksToUse--; //removes one off of the entities timer break; case MS_BIRD: - if(loc.y<=init_y-.2)vel.y+=.005*deltaTime; // TODO handle direction + if(loc.y<=init_y-.2)vel.y=.02*deltaTime; // TODO handle direction + vel.x=.02*deltaTime; + if(++hey==200){hey=0;hi^=1;} + if(hi)vel.x*=-1; break; default: break; diff --git a/src/gameplay.cpp b/src/gameplay.cpp index 1de542d..d1cc69d 100644 --- a/src/gameplay.cpp +++ b/src/gameplay.cpp @@ -84,9 +84,9 @@ void initEverything(void){ entity.push_back(mob.back()); mob.back()->spawn(200,100); - mob.push_back(new Mob(2)); + mob.push_back(new Mob(MS_BIRD)); entity.push_back(mob.back()); - mob.back()->spawn(200,100); + mob.back()->spawn(-500,500); /* * Link all the entities that were just created to the initial world, and setup a test AI function. diff --git a/xcf/mountain.xcf b/xcf/mountain.xcf new file mode 100644 index 0000000000000000000000000000000000000000..5ef311ee1e0e1c69fc513d8ee33a762cdb7a694a GIT binary patch literal 209841 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