From 80a0c7f88dc18e8951a411ccc24a8b13bf70cabd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D1=87=D0=B5=D0=BD=D0=B8=D0=BD=20=D0=94=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=BB=D0=B0=20=D0=9C=D0=B8=D1=85=D0=B0=D0=B9=D0=BB?= =?UTF-8?q?=D0=BE=D0=B2=D0=B8=D1=87?= <dmpechenin@edu.hse.ru> Date: Sat, 22 Mar 2025 23:55:13 +0300 Subject: [PATCH] Textures were added --- assets/enemy_blue.png | Bin 0 -> 2499 bytes assets/enemy_pink.png | Bin 0 -> 2458 bytes assets/enemy_red.png | Bin 0 -> 2798 bytes assets/enemy_yellow.png | Bin 0 -> 2901 bytes assets/pacman.png | Bin 0 -> 1975 bytes source/BasicAbstractions/Assets.cpp | 53 ++++++++++++++++++ source/BasicAbstractions/Assets.h | 12 ++++ source/BasicAbstractions/Button/Button.cpp | 4 +- source/BasicAbstractions/Font.h | 19 ------- source/Configuration.h | 16 ++++-- .../DynamicEntities/DynamicEntities.cpp | 44 +++++++++++---- .../DynamicEntities/DynamicEntities.h | 5 +- .../GameState/Entities/Pacman/Pacman.cpp | 16 +++++- source/States/GameState/GameState.cpp | 6 +- source/States/GameState/GameState.h | 1 - 15 files changed, 128 insertions(+), 48 deletions(-) create mode 100644 assets/enemy_blue.png create mode 100644 assets/enemy_pink.png create mode 100644 assets/enemy_red.png create mode 100644 assets/enemy_yellow.png create mode 100644 assets/pacman.png create mode 100644 source/BasicAbstractions/Assets.cpp create mode 100644 source/BasicAbstractions/Assets.h delete mode 100644 source/BasicAbstractions/Font.h diff --git a/assets/enemy_blue.png b/assets/enemy_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..e0c9ee5c0734dc2bc006b9af7f0facc6a49d46c5 GIT binary patch literal 2499 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 literal 0 HcmV?d00001 diff --git a/assets/enemy_pink.png b/assets/enemy_pink.png new file mode 100644 index 0000000000000000000000000000000000000000..27e30bf41f5d49b6212e9a6e569e3be86e78e379 GIT binary patch literal 2458 zcmaJ@2~<;88h#PVDsoU+6b3UWf?)PBK$<+XppgQCYz0z;6az#O60=BHD%IjfbZ``~ z6iTSp>KwLdtfV54bO2>Q!%>ug6i^g63KmEVkTHRI0Sb}o+?;#w|Nj5`{_Wm-PR@kx zBU@Q)v;Y9WDqydF7_@7l>11XCt-Hq`4nZ4?8%F*FsFpjugg$<xMF%7W2Lm3EYzCOX z)&fR)2=oJB8-b7JWdMkRIWEZuVD5{URS*UPKr3Ji&7@Owz<3d#4ek1o08Pl#!X8Q& z&=^cAkHvw9a#(O25{JY>HluRba?J8oOFp#aMoY32gaa-Nl_8+boV_=O3jk}H^%GX; zxyBLlQ9_T1=0yhw5fWKUB=sQc3mQ_uWb0V~Q9yu1CXGjh3z&>FE<r$YnMV*HS+7R9 zz~>>nRFX?{a46i5#i7CRNHh}d0$RY~a3bem5+Tfg&mtZABDtjScx(a+m7boCOvfQv zoMaTn$HxbS#-gxT1cX3vGtzie0V0jNdBMpae*9_NL=K(JqqEZBdcV{!SbQGI#YG=z zX)NSP6VR6<rEwR_f(k_GEhr2Ujd~xAM^E|yO>g-i4eHTSS?>fBP}vKl`DQHSNYrOQ zm_N`Me>#(v#)awuvEIb_)c#~xF3x}$Z9v?CHDnrCRx<rq3>GJxO--bMm_>?#$^fme zl@J|9<FXiheX~IyJQ^A(jD97e{$yTBU1mn6(Rm=0-#lf7dL=7n+5WzOhUS&j5DuLN zU77h@q0;7~8R`u1&`}ZmI5hoBieRxA;QJmH5w#Mv!a*=}^AA#aRDUXu24d0J9SAfI zfyG8(F@(S22^eorG>)L}l-|ud*hN1?l>Yh}T<3+iGOvXm3upmR|9E(yg<EBf0sxGM z1N?VI2w<-%?fl-ItAEgP_%@TSCuRyvIzQcq++u&t%)UIuHXoO3dRyq~idoNt**UBR zU49npvcDn3-xb|Ww91@0>itL?_+_#0NPN~wrDn8OI((tl?tY_rsx_!m*po(lMLWS9 zbxXQESeK&uDWvn^ugSCBmupCK3dQqDjpp8er<7RIQ5_9;uR|&g?lhk}A_mJQIy=L4 zzm|}5z&^s<0g>;miNKPUUaz`0#W_7<)OWrJ$Ll|eoBJP1QEyFa-2;neyEM~UE$LqW z)lO<vlI6IWV(;14uo0W;e>l9j!O2bCa%Z?DBe!C^<6zZxAv3<sB<P%_gJ&wn<C6H; zjXNKmE!>Q|;pCmqKGzHv73QVZPFN%aTplq?Htwa6b8*M}vSvAc&szwLDC|jfYtV*v zr^?=XZ`?`#uyNN#o65V?*EVvquHi{}k?Of;1OF@8(c_u%qp>qxinmoS;w$3s8Hpux zRYPRm`6-=5y~@;Fn=<$GnDHig>WJz16UcT`b=+E$>_sd+f9RVwd>*;fEfPudt5<Gw zoQU$M6#sRfrod{ZDB`C!6X&6D{L}DZW4Tv-T^z+)-s*+`X=B}z^K)x;Pry{&0KxZA z!@<AYoRwS{sAvMmWxJl-+Lj$MX9Fe($L_~BJS#@4OJxl~GGxe0N)Osv?~W4I;^8PL z2<fqy-PKnO7mKxVQ##g-F4qpb8qT(oEgx?{h)#XoHyDYmjUft%8(O$XwiwZ75AB80 z?nn2HE0x<yPR(snW(mVG!$6wfT$iF#dJd+D)!b&yDA~^zI>#4|l5nP@2Z)K$QrrG^ z%a0YU1TEB2zR=O9!Zixd_7sU>0~b7^dSq9!+f1~icGUE5*;BuV!0XWa>qVLxHz=e; zIsSOy%O=$TK4#ja$)Sss-7a^k%sPCQs*4h!P-CBO9-W~4$Ds>>?C^n=eU;U8DJ1Bv z%Gi0kn!d4xYx8Noa`z-Y`3yOy?Ha?T{+wilG9ppG&<u=M)KB-w&3t3kgUosoS(7>O z*s+nAJ9U*IbAKnT`a+8e#_4d7X4L2!St&k7)*nrQZk<e7VAe%4x%02zpHYqsC-eyu zSC86__fG(OHkG?OXAn0G2?v?|DcS2;svd3uDo>(O5=A?Uuj!I3bHC-Uw?>BS(OjN+ zWi@VFI8`bua|<mxEiJNd=&t{4{rIHJc}V!Q#EY1>w|Lzz*USrCGj)^whiN^Si|)>c z%g!p*gQ}C$TgxEg8n^S7(k8DRls0q0y4DlZTQ7cCIq_2RW=0gJ7Ll&z%wU9ea@FRe zscUr^{HFXmig!o;OjW>}k;hiPuhO0oeFr65ABaBl(q6xPLZv+|tu5`F_-*y*gUjAU zYWI$tlb?HzJ|O&G*>z%*WsOC6ZIq42o*r4aDsJ7CSE2YvF9K|@FizKKs?Y4_yE`6I z{*bpH->k@1G+!qaSnbFNYjJlROl=HIkXyzF#;U%Dw{AT0&l<Nz)30M={(c8Ten8I1 z9PIjc_qUfGF>hra`We%p$@(P=eMJ*ldNU52W1Vh2Z0(mhRx=bmHlY9e5wLrofAuE` G$NvWdY2@Po literal 0 HcmV?d00001 diff --git a/assets/enemy_red.png b/assets/enemy_red.png new file mode 100644 index 0000000000000000000000000000000000000000..423708fd3cce0594dff5b8e6dde7f71e86cb22ce GIT binary patch literal 2798 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%0D6#*&_U>S#LF;j z;zvewQl|K$M);k>)p^}dMD58ErwHAY2exG{+S6XlSAM^TK0X|!oPJI>j)WB3w)|o` z0PS)Le+$EaJG#h7L5c=}#@X8Ip+zCxjl84ABn@xpH!{4~cXJ}zyh*s@mug>oa<+16 z-g%loLn_5`yFBpE-F77O!odvcEj{BxwRijN3oZlOG1~vxn!(FeSsPyP9M`?mjyzVl zjjQ;R=Ws`6kXdtRZ^2XZjkT@lyiooR&N=*omg26WM|TEF&?8J|?wNAMaSJDxXvb{` SH*?uvIvXno%c6Zp68;DIOtFdp literal 0 HcmV?d00001 diff --git a/assets/enemy_yellow.png b/assets/enemy_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..028c7b2d74a31c20c4cc5aefcc3dc9e9e61fee05 GIT binary patch literal 2901 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 literal 0 HcmV?d00001 diff --git a/assets/pacman.png b/assets/pacman.png new file mode 100644 index 0000000000000000000000000000000000000000..91b0b9fff9063be5b604449df17a1348b6558320 GIT binary patch literal 1975 zcmeAS@N?(olHy`uVBq!ia0vp^HbCsa!3HGVWJFE?DaPU;cPEB*=VV?2Im=QbJkxxA z8MJ_G4hA+xAqHlU5+Gz?lwx27vl$q|7^UItI7SVq8YZ9`Lk1wpAPU53?U@WLQ1vxH z8U#Fm7-$lN4#=!X&B;wH$uCj}D9Tqb)-%>K0?IKjU_{utfC+Af%>rgP+X1MK;l5Ws z$oZTF9+AZi4BWyX%*Zfnjs(z*S(zabB@w<pR>}FfdWk9dNvV1jxdk9y3^o;3KxS@g zNuokUZcbjYRfVk*ScMgk4HDK@QUEI{$+lIB@C{IK&M!(;Fw-;8Gf=YQQczH^DN0GR z3UYCSY6tRcl`=|73as??%gf94%8m8%i_-NCEiEne4UF`SjC6r2bc-wVN)jt{^NN)r zhQQ2mNi9w;$}A|!%+FH*nVXoDUs__Tqy(}E4j}GKt;j^!lvfP(7SMzGAQ^o_Jp+Ag z+DbChaA*U`;M4{TBe=IvEUQQ?fM@~-2E>gvAQxDHBQ(+_GdDG_80a56GZP!I(=a3u zo<q_Yfuzv@StF7Jx<=>xocyBTg2d!hJ42`zBq1c#Ag@|Q1f>?|=ahoN+Rog_00{IA zL8Og7hBUfXgwD{s%n~~zs1`I~bX}1Md2ALUOQUP`FUm{>rWmkWfnEbU5LpaKJus%M zoQqOH87U+`KgSMRzOvCrSA}MPFEHV!B$gz)B$lMw85tOv>KYj98X1Kc8Cn?_Secq? z8yEu_5Mxl(Ld~(!2c=%5)C|cgU{PRRvEu@2h2=Xtt`%O<I>21Y;_2cTlEM0P=Ix?p z1%bBYOU_jn_x<nww&?PalKS@2uuV!D&y6N`HJq;dqrJM!B2}yZ_)9^fs|It}4CTHq zcztwh_bQWJFD$BrxOSMz>mK0l-I?Ee`&B=0joO97emm!En^Mjj`g;+>@vz{pA(?lW z>%-o#m`-hKot%`H|8Nict<?%@n|F83`MqkdcVd%lcYvjuD3gV2Nm<mlb}2_)`Q^bu zznw%wMe<uYzb%tozp=N*by>j8JtATcgOu;D^1oHPc3snkhCNbGIo)rZ3A<WTu6gH- z?e48jL7CGJoz+^cb3o^fmO<;`?L~=`eUCKBRyWN%soE*_d(-}_R!-5u5|(SO7u5#s z2rrFvT=`*Zd4z+$$UDg!OO|o(Q!0s0`KRj9Q9WPuoo6g}iDE`L*KUWIRY5yaOKTM* z#oRUis7gnzY;Q6OFXoaCSQ7k|b^gI?eP{0+p0;Rr!bXk?)-~VOo@j~@)?KmJt<{~$ z_nS?;=!U?OIx~(*=ZXso6Pjw&<Lh4@U*MU)G3fwH*UqQ^7fxy_Vn|^(OFaEK-Tu_| z!!eVKUp$+YZ|Gl^;MKg?qxEFjW7ee>n)BLSJDB6{T|RWS;_9OVLah%33q8%(uWFFA zQ>~bKK=a`2%4nslKN+6}oG@qB2|503+wWY>>ZqjS-{mxy-t~<->>OO+m+zNYz0f6U z^X@C3Js)1^4)Jc4@_Z|=!S}Q_W`^^jmd^90SNjV&Ets1Zsb_r1co56XJd6AAf9VI3 zbF^#T=&qT0TITq28=p({QO&z7Rkxj1S~7D@_|!sqdrh8<R~4y0;`$oq-iUG7t8sQi zLa3-&_k_R9^RquDf8E)Tzs2Z!gz(f&%2!+Y^%B1PzrZTLVoO9$gu#m4TbSDQm3QBF z6s<lv+a$v06}OG$jZ<pd*tk2^PMGKLlV8&6GXMOjRXR^@OV^ZGiZ9t<5;FT1OV<DO zUc0QXmosl}z4U;Ei|x-IyLYl|Y!#Xr%-rI8yhRc$qqBb4PPnxH#eriLUrfqGrYsC* qJZzVfe0+}Gx>hZDZh^iNpV&`T?_1q9ciJjY-Q?-&=d#Wzp$Py%Bd-?# literal 0 HcmV?d00001 diff --git a/source/BasicAbstractions/Assets.cpp b/source/BasicAbstractions/Assets.cpp new file mode 100644 index 0000000..297ec89 --- /dev/null +++ b/source/BasicAbstractions/Assets.cpp @@ -0,0 +1,53 @@ +#include "Assets.h" + +sf::Font& Assets::GetFont() { + static sf::Font font; + if (!font.getInfo().family.empty()) return font; + if (!font.loadFromFile(config::FONT_FILE)) + throw std::runtime_error("Failed to load font"); + return font; +} + +sf::Texture& Assets::GetPacmanTexture() { + static sf::Texture texture; + if (texture.getSize() != sf::Vector2u{0, 0}) return texture; + if (!texture.loadFromFile(config::PACMAN_FILE)) + throw std::runtime_error("Failed to load texture: pacman"); + return texture; +} + +sf::Texture& Assets::GetEnemyRedTexture() { + static sf::Texture texture; + if (texture.getSize() != sf::Vector2u{0, 0}) + return texture; + if (!texture.loadFromFile(config::ENEMY_RED_FILE)) + throw std::runtime_error("Failed to load texture: enemy red"); + return texture; +} + +sf::Texture& Assets::GetEnemyPinkTexture() { + static sf::Texture texture; + if (texture.getSize() != sf::Vector2u{0, 0}) + return texture; + if (!texture.loadFromFile(config::ENEMY_PINK_FILE)) + throw std::runtime_error("Failed to load texture: enemy pink"); + return texture; +} + +sf::Texture& Assets::GetEnemyYellowTexture() { + static sf::Texture texture; + if (texture.getSize() != sf::Vector2u{0, 0}) + return texture; + if (!texture.loadFromFile(config::ENEMY_YELLOW_FILE)) + throw std::runtime_error("Failed to load texture: enemy yellow"); + return texture; +} + +sf::Texture& Assets::GetEnemyBlueTexture() { + static sf::Texture texture; + if (texture.getSize() != sf::Vector2u{0, 0}) + return texture; + if (!texture.loadFromFile(config::ENEMY_BLUE_FILE)) + throw std::runtime_error("Failed to load texture: enemy blue"); + return texture; +} \ No newline at end of file diff --git a/source/BasicAbstractions/Assets.h b/source/BasicAbstractions/Assets.h new file mode 100644 index 0000000..b716fc4 --- /dev/null +++ b/source/BasicAbstractions/Assets.h @@ -0,0 +1,12 @@ +#pragma once +#include <Configuration.h> + +struct Assets final { + Assets() = delete; + static sf::Font& GetFont(); + static sf::Texture& GetPacmanTexture(); + static sf::Texture& GetEnemyRedTexture(); + static sf::Texture& GetEnemyYellowTexture(); + static sf::Texture& GetEnemyBlueTexture(); + static sf::Texture& GetEnemyPinkTexture(); +}; diff --git a/source/BasicAbstractions/Button/Button.cpp b/source/BasicAbstractions/Button/Button.cpp index 5032979..64e7f4e 100644 --- a/source/BasicAbstractions/Button/Button.cpp +++ b/source/BasicAbstractions/Button/Button.cpp @@ -1,6 +1,6 @@ #include <BasicAbstractions/Button/Button.h> #include <Configuration.h> -#include <BasicAbstractions/Font.h> +#include <BasicAbstractions/Assets.h> void Button::set(const sf::Vector2f pos, const sf::Vector2f size, const std::string& text, const size_t font_size, std::unique_ptr<ISelectCommand> ptr_command) { m_rectangle.setSize(size); @@ -8,7 +8,7 @@ void Button::set(const sf::Vector2f pos, const sf::Vector2f size, const std::str m_rectangle.setFillColor(config::BUTTON_COLOR_FILL); m_rectangle.setOutlineThickness(config::BUTTON_FRAME_THICKNESS); m_rectangle.setOutlineColor(config::BUTTON_COLOR_FRAME); - m_text.setFont(MyFont::Instance()); + m_text.setFont(Assets::GetFont()); m_text.setCharacterSize(font_size); m_text.setFillColor(config::BUTTON_COLOR_TEXT); m_text.setString(text); diff --git a/source/BasicAbstractions/Font.h b/source/BasicAbstractions/Font.h deleted file mode 100644 index d77f027..0000000 --- a/source/BasicAbstractions/Font.h +++ /dev/null @@ -1,19 +0,0 @@ -#pragma once -#include <Configuration.h> - -class MyFont final { -public: - static sf::Font& Instance() { - static MyFont instance; - return instance.m_font; - } - MyFont(const MyFont&) = delete; - MyFont& operator=(const MyFont&) = delete; -private: - MyFont() { - if (!m_font.loadFromFile(config::FONT_FILE)) - throw std::runtime_error("Failed to load font"); - } - ~MyFont() = default; - sf::Font m_font; -}; diff --git a/source/Configuration.h b/source/Configuration.h index 759b57d..d8829d0 100644 --- a/source/Configuration.h +++ b/source/Configuration.h @@ -3,7 +3,7 @@ namespace config { // Общее: - constexpr unsigned int FRAME_RATE_LIMIT = 60; + constexpr unsigned int FRAME_RATE_LIMIT = 10; // Меню: const sf::Vector2f BUTTON_SIZE = { 250, 80 }; const size_t BUTTON_FONT_SIZE = static_cast<size_t>(BUTTON_SIZE.y / 1.5f); @@ -18,6 +18,12 @@ namespace config { constexpr char BUTTON_TEXT_EXIT[] = "Exit"; // Игра: const sf::VideoMode GAME_VIDEO_MODE{ 1080, 720 }; + constexpr char PACMAN_FILE[] = ASSETS_PATH "pacman.png"; + constexpr char ENEMY_PINK_FILE[] = ASSETS_PATH "enemy_pink.png"; + constexpr char ENEMY_RED_FILE[] = ASSETS_PATH "enemy_red.png"; + constexpr char ENEMY_BLUE_FILE[] = ASSETS_PATH "enemy_blue.png"; + constexpr char ENEMY_YELLOW_FILE[] = ASSETS_PATH "enemy_yellow.png"; + constexpr size_t ENEMY_ON_SPRITE_COUNT = 8; constexpr char EASY_GAME_TITLE[] = "Level: Easy"; constexpr char MEDIUM_GAME_TITLE[] = "Level: Medium"; constexpr char HARD_GAME_TITLE[] = "Level: Hard"; @@ -26,12 +32,12 @@ namespace config { constexpr float MEDIUM_GAME_ENEMY_RATIO = 0.03f; constexpr float HARD_GAME_ENEMY_RATIO = 0.07f; constexpr float ROOM_SIZE = 50; - constexpr float GAME_ENEMY_SIZE = ROOM_SIZE * 0.7; + constexpr float GAME_ENEMY_SIZE = ROOM_SIZE * 0.8; constexpr float GAME_FOOD_SIZE = ROOM_SIZE * 0.1; constexpr float ENEMY_SPEED = 80; - constexpr float PACMAN_SPEED = 300; + constexpr float PACMAN_SPEED = 400; // ПакмÑн: - constexpr float GAME_PACMAN_SIZE = ROOM_SIZE * 0.8; + constexpr float GAME_PACMAN_SIZE = ROOM_SIZE * 0.9; constexpr sf::Keyboard::Key KEY_LEFT = sf::Keyboard::A; constexpr sf::Keyboard::Key KEY_RIGHT = sf::Keyboard::D; constexpr sf::Keyboard::Key KEY_UP = sf::Keyboard::W; @@ -46,11 +52,9 @@ namespace config { const sf::Color BUTTON_COLOR_SELECTION{ 255, 180, 180 }; const sf::Color BUTTON_COLOR_FRAME{ 0, 0, 0 }; const sf::Color SELECT_LEVEL_BACKGROUND_COLOR{ 230,230,230 }; - const sf::Color GAME_COLOR_PACMAN{ 250, 150, 0 }; const sf::Color GAME_COLOR_ROOM{ 255, 255, 255 }; const sf::Color GAME_COLOR_WALL{ 0, 0, 0 }; const sf::Color GAME_FOOD_COLOR{ 0, 200, 100 }; - const sf::Color GAME_ENEMY_COLOR{ 255, 50, 0 }; const sf::Color GAME_COLOR_BACKGROUND_INGAME{ 230,230,230 }; const sf::Color TEXT_COLOR_NOTIFICATION{ 0, 0, 0, 255}; const sf::Color NOTIFICATION_BANNER_COLOR_PLAY{ 0, 100, 255, 200 }; diff --git a/source/States/GameState/Entities/DynamicEntities/DynamicEntities.cpp b/source/States/GameState/Entities/DynamicEntities/DynamicEntities.cpp index 1e228fa..a47c0a6 100644 --- a/source/States/GameState/Entities/DynamicEntities/DynamicEntities.cpp +++ b/source/States/GameState/Entities/DynamicEntities/DynamicEntities.cpp @@ -1,10 +1,24 @@ #include <Configuration.h> +#include <BasicAbstractions/Assets.h> #include <States/GameState/Entities/DynamicEntities/DynamicEntities.h> -Enemy::Enemy() : m_rectangle({config::GAME_ENEMY_SIZE, config::GAME_ENEMY_SIZE}) { - m_rectangle.setFillColor(config::GAME_ENEMY_COLOR); - m_rectangle.setOrigin({config::GAME_ENEMY_SIZE/2, config::GAME_ENEMY_SIZE/2}); - m_distance_limit = config::ENEMY_SPEED/config::ROOM_SIZE; +Enemy::Enemy() { + std::mt19937 gen{std::random_device{}()}; + std::uniform_int_distribution<size_t> dist{0, 3}; + const sf::Texture* texture; + switch (dist(gen)) { + case 0: texture = &Assets::GetEnemyRedTexture(); break; + case 1: texture = &Assets::GetEnemyYellowTexture(); break; + case 2: texture = &Assets::GetEnemyBlueTexture(); break; + case 3: texture = &Assets::GetEnemyPinkTexture(); break; + default: texture = &Assets::GetEnemyRedTexture(); break;; + } + + m_sprite.setTexture(*texture); + m_sprite.setTextureRect(sf::IntRect(0, 0, + static_cast<int>(texture->getSize().x / config::ENEMY_ON_SPRITE_COUNT), static_cast<int>(texture->getSize().y))); + m_sprite.setOrigin(static_cast<float>(texture->getSize().x) / (2.f * config::ENEMY_ON_SPRITE_COUNT), static_cast<float>(texture->getSize().y) / 2.f); + m_distance_limit = config::ENEMY_SPEED / config::ROOM_SIZE; } std::unique_ptr<IDynamicEntity> Enemy::clone() const { @@ -13,11 +27,11 @@ std::unique_ptr<IDynamicEntity> Enemy::clone() const { void Enemy::action() { if (m_is_moving) { - const sf::Vector2f cur_pos = m_rectangle.getPosition(); - sf::Vector2f displacement = m_estimated_position - cur_pos; + const sf::Vector2f cur_pos = m_sprite.getPosition(); + const sf::Vector2f displacement = m_estimated_position - cur_pos; const float distance = std::sqrt(displacement.x * displacement.x + displacement.y * displacement.y); if (distance < m_distance_limit) { - m_rectangle.setPosition(m_estimated_position); + m_sprite.setPosition(m_estimated_position); m_is_moving = false; return; } @@ -32,7 +46,14 @@ void Enemy::action() { delta_y = std::min(direction.y, displacement.y); else delta_y = std::max(direction.y, displacement.y); - m_rectangle.move(delta_x, delta_y); + m_sprite.move(delta_x, delta_y); + m_time_count += frame_duration; + if(m_time_count > 1) { + sf::IntRect rect = m_sprite.getTextureRect(); + rect.left = static_cast<int>((rect.left / rect.width + 4) % config::ENEMY_ON_SPRITE_COUNT) * rect.width; + m_sprite.setTextureRect(rect); + m_time_count = 0; + } } else { if (static_cast<size_t>(m_stopwatch.getElapsedTime().asMilliseconds()) < m_dist_milliseconds(m_rng)) @@ -44,15 +65,14 @@ void Enemy::action() { } void Enemy::draw_into(sf::RenderWindow& window) const { - window.draw(m_rectangle); + window.draw(m_sprite); } void Enemy::prepare_for_first_drawing() { - m_rectangle.setPosition(m_ptr_room->get_position()); + m_sprite.setPosition(m_ptr_room->get_position()); } void Enemy::prepare_for_drawing() { m_estimated_position = m_ptr_room->get_position(); m_is_moving = true; - action(); -} +} \ No newline at end of file diff --git a/source/States/GameState/Entities/DynamicEntities/DynamicEntities.h b/source/States/GameState/Entities/DynamicEntities/DynamicEntities.h index ceb115f..74572ba 100644 --- a/source/States/GameState/Entities/DynamicEntities/DynamicEntities.h +++ b/source/States/GameState/Entities/DynamicEntities/DynamicEntities.h @@ -17,11 +17,12 @@ public: void draw_into(sf::RenderWindow& window) const override; void prepare_for_first_drawing() override; void prepare_for_drawing() override; - sf::FloatRect getBounds() const { return m_rectangle.getGlobalBounds(); } + sf::FloatRect getBounds() const { return m_sprite.getGlobalBounds(); } std::unique_ptr<IGameEvent> accept(IVisitor* ptr_visitor) override { return ptr_visitor->visit(this); } private: - sf::RectangleShape m_rectangle; + sf::Sprite m_sprite; sf::Vector2f m_estimated_position; + float m_time_count = 0; bool m_is_moving = false; float m_distance_limit; sf::Clock m_stopwatch; diff --git a/source/States/GameState/Entities/Pacman/Pacman.cpp b/source/States/GameState/Entities/Pacman/Pacman.cpp index 5a4fad2..696e78d 100644 --- a/source/States/GameState/Entities/Pacman/Pacman.cpp +++ b/source/States/GameState/Entities/Pacman/Pacman.cpp @@ -1,10 +1,11 @@ #include <Configuration.h> +#include <BasicAbstractions/Assets.h> #include <States/GameState/Entities/DynamicEntities/DynamicEntities.h> #include <States/GameState/Entities/Pacman/Pacman.h> #include <States/GameState/Entities/StaticEntities/StaticEntities.h> Pacman::Pacman() : m_circle{ config::GAME_PACMAN_SIZE/2 } { - m_circle.setFillColor(config::GAME_COLOR_PACMAN); + m_circle.setTexture(&Assets::GetPacmanTexture()); m_circle.setOrigin(config::GAME_PACMAN_SIZE/2, config::GAME_PACMAN_SIZE/2); m_distance_limit = config::PACMAN_SPEED/config::ROOM_SIZE; } @@ -21,12 +22,22 @@ void Pacman::move() { const sf::Vector2f cur_pos = m_circle.getPosition(); const sf::Vector2f displacement = m_estimated_position - cur_pos; const float distance = std::sqrt(displacement.x * displacement.x + displacement.y * displacement.y); + if (distance < m_distance_limit) { m_circle.setPosition(m_estimated_position); m_is_moving = false; return; } - const sf::Vector2f direction = config::PACMAN_SPEED * frame_duration * displacement / distance; + + sf::Vector2f direction = displacement / distance; + float target_angle = 0; + if (std::abs(direction.x) > std::abs(direction.y)) + target_angle = (direction.x > 0) ? 0 : 180; + else + target_angle = (direction.y > 0) ? 90 : 270; + m_circle.setRotation(target_angle); + + direction = config::PACMAN_SPEED * frame_duration * displacement / distance; float delta_x, delta_y; if (direction.x > 0) delta_x = std::min(direction.x, displacement.x); @@ -50,7 +61,6 @@ void Pacman::prepare_for_first_drawing() { void Pacman::prepare_for_drawing() { m_estimated_position = m_ptr_room->get_position(); m_is_moving = true; - move(); } std::unique_ptr<IGameEvent> Pacman::visit(Food* ptr_food) { diff --git a/source/States/GameState/GameState.cpp b/source/States/GameState/GameState.cpp index 33c41d1..d24164e 100644 --- a/source/States/GameState/GameState.cpp +++ b/source/States/GameState/GameState.cpp @@ -1,4 +1,4 @@ -#include <BasicAbstractions/Font.h> +#include <BasicAbstractions/Assets.h> #include <States/GameState/GameState.h> #include <States/SelectState/SelectState.h> @@ -12,7 +12,7 @@ GameState::GameState(IStateManager& state_manager, const sf::VideoMode& video_mo round((static_cast<float>(m_window.getSize().x) - m_rect.getSize().x) / 2.0f), round((static_cast<float>(m_window.getSize().y) - m_rect.getSize().y) / 2.0f) ); - m_text.setFont(MyFont::Instance()); + m_text.setFont(Assets::GetFont()); m_text.setCharacterSize(config::NOTIFICATION_FONT_SIZE); m_text.setStyle(sf::Text::Bold); m_text.setFillColor(config::TEXT_COLOR_NOTIFICATION); @@ -34,7 +34,7 @@ void GameState::event_handling() { case GameContext::INGAME: context.state = GameContext::PAUSE; break; - default: + default: break; } } if (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Z && event.key.control) diff --git a/source/States/GameState/GameState.h b/source/States/GameState/GameState.h index c83d6bc..d4624bd 100644 --- a/source/States/GameState/GameState.h +++ b/source/States/GameState/GameState.h @@ -1,5 +1,4 @@ #pragma once -#include <Configuration.h> #include <BasicAbstractions/IState.h> #include <BasicAbstractions/IWindowKeeper.h> #include <States/GameState/Maze/Maze.h> -- GitLab