From 57eba3c089bf883f83b99ea30d6ffe6052186d07 Mon Sep 17 00:00:00 2001 From: nemo Date: Tue, 8 Oct 2024 10:41:21 +0200 Subject: [PATCH] minigun player --- Makefile | 2 +- bullet.c | 9 ++++++++- bullet.h | 1 + data/bullet.aseprite | Bin 961 -> 917 bytes data/bullet.png | Bin 215 -> 204 bytes data/minigun.aseprite | Bin 0 -> 1090 bytes data/minigun.png | Bin 0 -> 880 bytes main.c | 20 ++++++++++++++++++-- minigun.c | 38 ++++++++++++++++++++++++++++++++++++++ minigun.h | 12 ++++++++++++ 10 files changed, 78 insertions(+), 4 deletions(-) create mode 100644 data/minigun.aseprite create mode 100644 data/minigun.png create mode 100644 minigun.c create mode 100644 minigun.h diff --git a/Makefile b/Makefile index 38b9291..89916cb 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -SRC=main.c ninja.c keys.c bullet.c +SRC=main.c ninja.c keys.c bullet.c minigun.c EXE=voleur CC=gcc diff --git a/bullet.c b/bullet.c index 4d066f1..cc4b797 100644 --- a/bullet.c +++ b/bullet.c @@ -20,6 +20,7 @@ Texture textures[BULLET_COUNT]; void bullet_load() { textures[BULLET_SHURIKEN] = LoadTexture("data/shuriken.png"); + textures[BULLET_MINIGUN] = LoadTexture("data/bullet.png"); } void bullet_spawn(BulletType type, Vector2 pos, float angle) @@ -47,6 +48,12 @@ void draw_bullets() Vector2 toward = Vector2Normalize((Vector2) {cos(angle), sin(angle)}); bullets[i].pos = Vector2Add(bullets[i].pos, Vector2Scale(toward, speed)); bullets[i].time -= GetFrameTime(); - DrawTexture(textures[bullets[i].type], bullets[i].pos.x, bullets[i].pos.y, WHITE); + + Texture t = textures[bullets[i].type]; + Rectangle source = {0, 0, t.width, t.height}; + Rectangle dest = {bullets[i].pos.x, bullets[i].pos.y, t.width, t.height}; + Vector2 origin = {t.width/2, t.height/2}; + + DrawTexturePro(t, source, dest, origin, bullets[i].angle + 90, WHITE); } } diff --git a/bullet.h b/bullet.h index 2cb06c9..0d2445d 100644 --- a/bullet.h +++ b/bullet.h @@ -3,6 +3,7 @@ typedef enum BulletType { BULLET_SHURIKEN, + BULLET_MINIGUN, BULLET_COUNT, } BulletType; diff --git a/data/bullet.aseprite b/data/bullet.aseprite index a4470859c608dc9ebfe88b6913e2025e6dda6de6..dd2cbc34afa929f324238c3edef624edcc049b95 100644 GIT binary patch delta 139 zcmX@eK9!wu>O{tRM$w6lQyG~ji!(Y-7Go5coWUrNnaRMwz^cH&zyhTIGXV)O;9(GD zsF;(SaDd_eMFYDJ|G%>ui}*P3YrZnP()8i)+pHa5E(HCpSGw|FJ;lt&R?Pats-?4j p`J0%{zxGbj<(;~au#a`dv&SLb>*QkjH%c&UKDjq%GcVH?MgXpaGB5xD delta 184 zcmV;p07w6o2f+sc!I1%f0YQ<0l>q{i7Xd+&76A~GXaNv^l>h($1t0(b000O8{{jF2 z00000001fg8UT2l?bfjkfG`Y1(VK=5Se-T4fE{QlK%(P>MTAWhhqLq>7tu=*1b`j) zwKl1o+dQ7Zc1I>>V@~$+-jmbbpL3%PnWDSI&Prmua|U?Q3PdBRPF8 m{?5x;WGVg@56R|yI4i0*lgb%%)|Vq^;2f_)pb6WIe4>IW39?Vq`V_=wSsU(!BDtiLxA_h-aKbLh*2~7YYn>_~r literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VV{wqX6T`Z5GB1IgiJmTwAr`%F zCt33~Cf@w~rw`rGH#VfWtI99m{5bqnY? N22WQ%mvv4FO#rQ^Q~>}0 diff --git a/data/minigun.aseprite b/data/minigun.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..d24830954f1e46397100189fd835db875197774e GIT binary patch literal 1090 zcmZ=_VPJT$l##&|2o)F@85kH+fEWRQVjw{V0U)FWIK<4r@arQ7*j5gp1!6$Vt^l?Y z$+|2cn+4=L1t3F7!NgU=Ce6~YKg{}mq1w#_Y3~lt`u)jl=F@;Hc#Y{!ngYF+7mtmRA6W#{C*|Jzr_?Rn_h7PsePm$QCgRe}V=LgVC1Kf%^B zGKd0cg!NJkszB@CUOmWp*no#M;OrFV@RJO87cX~ef5G*3=jM{$xay3J2VFQ$PkWNj zrOM`5aHu};k%dcTjf?Nh-MZfEzQ3N3eeBM=BeIdtFSA-5KYw=3-Jf%d_u8NFE2&jc z7R^nz2sYlc_e@2ca^Keej^ItUKjn_kj^DlRsmr_g-C}!>|DAlfYM;jP?|g#QEiu|J zY>!`ZU-jvKpT)GVai47Y{!iQUQ%rr+`71rot6Ki~Z;hMKm!>dxUSomIv5w29rn?>a zm=Z3tNn#1lJ9k;#XsfOBx+nHkPE+5VUg)3Z#{2pQla}|@v$4RG!>YgpOv1cK9@l0t z2YLM3Zr(!%0&EX@Tv)9G4VXlQxDEK7F9xx+h&+k-`14-5+n-CCCYJRUeRDIpPV!9g zn%Dn#IZI?M0Q;Px&DoI2^RCt{2oWE{UF%-tXqO!8)2`ZsVRnl}}s2JFo7|7g>1@Qt%C_@z~I|C2U zm5$5^RUHZvDX0=lpMa+bL+j|~;$9!y-#PY;@<~@oZxhG<<@53JpLPd&TDE@PQMjif zt%8^5<1ql>)wf*$z~d)Bz`mzd|3?~y_FY>j9&Mo*YT3SK(>e7X{tvt~sRi2EbgoqN zoj#nt2eyIMPFpA*ZJ~HnC6vK%RP^)J0_{V;2nApVr#$%0I9KF0GI357<(Mjyx6-O&^zlj9b(-CR zwv@nh3awI!u_P2X#PwrlgrX0Xruhy^AUA2(KU4=%d)1(%1Vo8Lo__fZ0GKQmfD)7{ zVu~cAbuc%K*xw3h}lVbDc^GMmnql6i@AjuX>c`UQ}=+XgOUJ5qNvn^5>teWKb;D77b_q@1$hd=8T9SbVo*ZvIvtarget = Vector2Subtract(GetScreenToWorld2D(pos, *cam), Vector2Scale(toward, speed)); + } + + DrawTexturePro(m, source, dest, origin, angle + 90, WHITE); +} diff --git a/minigun.h b/minigun.h new file mode 100644 index 0000000..359bac3 --- /dev/null +++ b/minigun.h @@ -0,0 +1,12 @@ +#ifndef MINIGUN_H +#define MINIGUN_H + +void load_minigun(); + +float minigun_radius(); + +void draw_minigun(Vector2 pos, Camera2D *cam); + +float minigun_dash_time(); + +#endif // MINIGUN_H