From 36d5709a66a5cfaf8aa1e002b6b4f3b154696d70 Mon Sep 17 00:00:00 2001 From: Rendo Date: Sat, 15 Nov 2025 01:04:22 +0500 Subject: [PATCH] Basic movement --- assets/asteroid.png | Bin 0 -> 187 bytes assets/enemy.png | Bin 0 -> 181 bytes assets/player.png | Bin 0 -> 147 bytes assets/projectile.png | Bin 0 -> 109 bytes assets/tileset.png | Bin 0 -> 471 bytes src/damagable/mod.rs | 64 ++++++++++++++++++++++++++++++++++++++++ src/damagable/player.rs | 36 ++++++++++++++++++++++ src/main.rs | 11 ++++++- 8 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 assets/asteroid.png create mode 100644 assets/enemy.png create mode 100644 assets/player.png create mode 100644 assets/projectile.png create mode 100644 assets/tileset.png create mode 100644 src/damagable/mod.rs create mode 100644 src/damagable/player.rs diff --git a/assets/asteroid.png b/assets/asteroid.png new file mode 100644 index 0000000000000000000000000000000000000000..2065e39ca07614ff4b6ff3296a39be05f773d9ed GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`O`a}}Ar`%BgB|$}C~#!|-6r?- z?wbu8G?oL~{yp>{_f|}j+EM?yq7hIF# zwwYKiAn3V1AvWXe&4Yh#S>HC+WB(R%@nuY7hJ|v_qK>qWn(Qj)RkGG?R$+aU{%WuO l%nj2&T-$3JqTEMoRzy literal 0 HcmV?d00001 diff --git a/assets/enemy.png b/assets/enemy.png new file mode 100644 index 0000000000000000000000000000000000000000..7ed48351aec022106a3e0aff18f0f0ed3f2c513b GIT binary patch literal 181 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`HJ&bxAr`$$FCXM>P~c&`5Pw+f z*kty|HpUsJ8GRx;GC!~g3T9-V|JxtHwdk{^)%*oIRqfkfFNtpuS(K1_>-yr`2F)4~ zvl$XvdKNGhOweD!wBv+u76T^}1NZLD!EV)6`>})byRjMRgqI25#T1suj vT9seFH?nHFWcFNATDf}8;$yrIOv^&K{Vaq-Ivl?MZDH_q^>bP0l+XkK5?eFA literal 0 HcmV?d00001 diff --git a/assets/projectile.png b/assets/projectile.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd0c27fbbddfc7f7ee043f9f5ea45579488aa51 GIT binary patch literal 109 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`CY~;iAr`&K2@DG zZ*LhT`H<}aQ(;ff4_<}KX%Y#GT#T7b_Z)EQdKBoO%)oHsIiJ@tDT9ST{S2P2elF{r G5}E)QpCI)B literal 0 HcmV?d00001 diff --git a/assets/tileset.png b/assets/tileset.png new file mode 100644 index 0000000000000000000000000000000000000000..7ebc17c150fb5cc0c98201e2593878f716193df2 GIT binary patch literal 471 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV4Uaa;uumf=k0atqC*A(Y!71j z!#!67vG6&&A2xh*X`gF`hj7}Y%>e<1GHICt%BLrl<%+bW{9FI%Vf(k~DJON5oLr8a z@e!UACatJ6>;3l0=lTnCKl$d)Z#z7@cke{*13T3_A|Co(FWvjz_p%6Qiok)l{K*1| z4Cihr920pzg=3+Ys8;wb*1qS?U%p??QeIgw&(qZ_Kf1}I)uCRY<5ca1wmo7ldMrUr z7ns()wyMs()p@~BeyySLe{N&-`J8@vS1so8fBE)l-rmF=SrN-3*XiypJK_}a+}h0Y z|JvRkk$UX=GZlZt?YBE~{1?Boxz>-%HC0#66r4GHgzL-7;KZhb92>svldiho?fSkV z`+a+`!nP}sTxn_N&iywGJ`hx6@%=A@&e8VY%z_iISoyaJR55BCJ$5IIac#vuufOX> z?eFJXZnM::from_hz(60.0)) + .add_systems(Startup, setup) + .add_systems( + FixedUpdate, + (player_movement_system, movement_system).chain(), + ); + } +} + +#[derive(Component)] +pub struct Damagable { + hp: u32, +} + +#[derive(Component)] +pub struct Movable { + linear_speed: f32, + rotation_speed: f32, + max_linear_speed: f32, + max_rotation_speed: f32, +} + +fn setup(mut commands: Commands, asset_server: Res) { + let player_sprite: Handle = asset_server.load("player.png"); + + commands.spawn(Camera2d); + + //Create player + commands.spawn(( + Player { acceleration: 100. }, + Movable { + linear_speed: 0., + rotation_speed: 0., + max_linear_speed: 500., + max_rotation_speed: f32::to_radians(360.), + }, + Damagable { hp: 10 }, + Sprite::from_image(player_sprite), + Transform::from_xyz(20., 20., 0.), + )); +} + +fn movement_system(time: Res