From ff1b36f0540032910b0249f0df310c6583081a89 Mon Sep 17 00:00:00 2001 From: lukel495 Date: Wed, 8 Nov 2023 15:15:18 +0100 Subject: [PATCH] Added code exampel from lecture --- Makefile | 6 +- build/_main.o | Bin 2872 -> 0 bytes build/_test.o | Bin 2872 -> 46800 bytes build/exe/game.out | Bin 17264 -> 0 bytes build/exe/test.out | Bin 17264 -> 47944 bytes src/fighter.png => fighter.png | Bin src/font.ttf => font.ttf | Bin src/_main.cc | 7 +- src/_test.cc | 150 +++++++++++++++++++++++++++++++-- src/sfml_start.cc | 36 -------- 10 files changed, 149 insertions(+), 50 deletions(-) delete mode 100644 build/_main.o delete mode 100755 build/exe/game.out rename src/fighter.png => fighter.png (100%) rename src/font.ttf => font.ttf (100%) delete mode 100644 src/sfml_start.cc diff --git a/Makefile b/Makefile index 21421db..799827b 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ CC := g++ CCFLAGS := -std=c++17 -Wall -Wextra -pedantic -Weffc++ -Wold-style-cast -I src -LDFLAGS := +LDFLAGS := -L${SFML_ROOT}/lib -I${SFML_ROOT}/include -lsfml-window -lsfml-graphics -lsfml-system OBJDIR := build EXEDIR := build/exe @@ -27,10 +27,10 @@ testing: dir @$(MAKE) --no-print-directory test-target game-target: $(OBJDIR)/_main.o $(OBJECTS) - $(CC) $(LDFLAGS) $^ -o $(EXE) + $(CC) $(LDFLAGS) $^ -o $(EXE) $(LDFLAGS) test-target: $(OBJDIR)/_test.o $(OBJECTS) - $(CC) $(LDFLAGS) $^ -o $(TEST) + $(CC) $(LDFLAGS) $^ -o $(TEST) $(LDFLAGS) $(OBJDIR)/%.o: %.cc $(CC) $(CCFLAGS) -c -o $@ $< diff --git a/build/_main.o b/build/_main.o deleted file mode 100644 index 5557490812fd36357d753675f802d4751f62baed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2872 zcmbuB--}yC6vrn?ZR?M=vHmPA5?_if?Il@L-HI-0w|6(Ov0e7=f>f93&CRvBnA}_L zkFu?-BCSG@h5iBhKlmc_NyUQ2zrZISg?;cr@nw;Pc)oLIvNy9gQ0RfVbIxbZIWu!+ zGP_@x?S*2Yz?2l&9NV=NWo-7quHF!8gO%A4_V1C`{#$Jh|7>oa18r`;hi*&g!(W=; zJe6v{Hiy3p_yG3W!*ST%zskdnonf+lcVnlJ%zU}AJsL5VoSI0q`I5*Yr%*W`iG=rm z8z=h_p+8~uTi=dGqqT>8V0*sdIEYrVI6wbR<&D)&;>Stlyiqr*XKRVDYM;+kjcVPP zIhAq|v5&rGYS_o(l~q<`>}RkNHOPx;#|n3rSz*0gIR4y$gZF6(Cy1j#-p0o~T>iQ^ ze`vo?4rF5NU2u{Q@KNK%OTq!;AA^$|!$*xTrSU*{g5B?9|4Z%KZSdWhI#s?uuqOKq|%v8N}&*dMFfD<$^q zUPz?GZ~~L^A(=-r^-=3xBaZXePVt|c!rAz@ z!LM0ydzN!A@O&?3{93)nc@*2R=Wr0u?t6F03Vd$+UEX!0I7}R2S3QsM#rD;U7upn( zba+c-r5sjVcY=hn$aTkX4fPM1AT`7&E;P5p(7w$KCm0M|pPc<5b`5&m&(f`TK9%+jKQV5G!A&=e z$yWrsJ^o2(4_vvlC+aE`jT-4MU4t0pyR;jB;hUA?WT5tqEF`@t{@^lpPzD?#235Uy zuS)-ulIt)3A97sp^!afgk#kzS?yuW5iUrHw1u~hMUw`TK_&M@DOiiDE3rR@Sep74L zR{T5-IbCa6n~!>)>NgI6};yV^?OaN)EBzihn3Nl5Bd|zAqz>@u|o|1 zlIiuUNXH6|Wks!DvCl|>s~+Ew@$1S__Ims+;(7J!$@(>A9O{R+QN^qJ<;{(d2Xg*~ oTo}$6O^?U@(9fO_+m`UM%mW6|O!4OC#eXl?|5X|`{_64n0|Opwz5oCK diff --git a/build/_test.o b/build/_test.o index bbeaa95b1b62f29f635e14fb2a3265ff9c3d71f3..8b1f7d89b789cb503f0072caa27f4c45ed6ac077 100644 GIT binary patch literal 46800 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 Ou9eUap?o}e{r`W3lz;I6 literal 2872 zcmbuB--{bn6vuCp+SVU!WBplLB)$||+96p}-HI-0x3inr*e;u0km_e@B!?#hoi8&e-#HCJA-8V?#50onfY>KdpKk)IW?AO^Cg)@4WV;Bk_qqs zHcIv*LVv>Sx4s_R+gY57x1GWtHU_`x&f259GzPVYxfYEVo|F9e?h?!TU6Y6U6aA-p0#5T>Lse ze`tR|4rHS5U2u{Q@Y4PHOVR=TAA^$|!%O!srSU+M1gqc2{-HwbmBPfG#ai@g#$yVU z$&_aZ6(z2;%f8R}V)N?73rz}1 z+PuO0jvr8tmZ-X6LfKUB)rEzYy~0;6Tx{B0_V?mOOH?Xu*NM1@9ACr@*S435z1enR z8at$MJg47qSGe6e$CoaCyf;=Mdz_S~LfP(6N)b?n#TWl4_A3kCvKJG}qtVb%X0X%!+UKh0~^1L}}aATIBT{ zi}pk?tK$fVS?xGxRura&?8SlRP82z}ndOH4z88>l5DL$t%l#~!diPUh-v|=xW)$A^ zB0;_~*z597BB$@EsXb9sqG;5}yy@ut6NS11-NdltxKdVKSyH{<8X_b@%?_*+OqqSu>R zySC=%sbf<8mehvmI-!0*I!^QViD6Dvgm;y7obPLOWz3=_YoG z;V+q4zmjq+QD0W{{5AWG6u6r4H5I?E9aU?_-y%M#eqB|+x{5>na5w6BUB5|VBjkY^ qzosUJJ;r0k<9wKVPl#T5F)U3OC|A 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 diff --git a/build/exe/test.out b/build/exe/test.out index 94b0db0b7bf48df778e89f3a18acfe783144460d..12adb2a5e9b518d76e5c088e5e457ddf08abbcf1 100755 GIT binary patch literal 47944 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 QD*yENWR4}S0xs70PxljCO8@`> literal 17264 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 +#include // includes most things in SFML +using namespace sf; -int main() { - std::cout << "_test.cc" << std::endl; - return 0; +int const width{640}; +int const height{480}; + +int main() +{ + RenderWindow window{ + VideoMode{width, height}, + "SFML DEMO"}; + + /* skapa en cirkel */ + float const r{16.0}; + CircleShape circle{r}; + + // placera cirkeln på skärmen + circle.setPosition(width / 2, height / 2); + + // sätt vilken punkt som är origo + // i cirkeln (det är denna punkt som + // cirkelns position är specificerad ifrån + circle.setOrigin(r, r); + + // sätt en bakgrundsfärg på cirkeln + circle.setFillColor(Color::Green); + + /* ladda in en texture (bild) */ + Texture texture; + if (!texture.loadFromFile("fighter.png")) + { + // gick inte att ladda bilden + return 1; + } + + // skapa sprite + Sprite sprite{texture}; + sprite.setPosition(width / 2, height / 2); + + // sätt origin på sprite till mitten + auto size{texture.getSize()}; + sprite.setOrigin(size.x / 2, size.y / 2); + + float const speed{4.0}; + + // skapa en klocka + Clock clock; + + double const fps{60.0}; + + // beräkna hur lång tid vi har per frame + auto const target{milliseconds(1000.0 / fps)}; + + /* skapa text */ + Font font; + if (!font.loadFromFile("font.ttf")) + { + // kunde inte ladda typsnitt + return 2; + } + + // skapa text objekt + Text text{"Demo", font}; + + auto bounds{text.getGlobalBounds()}; + text.setPosition((width - bounds.width) / 2, 0); + + // loopa sålänge fönstret finns + while (window.isOpen()) + { + // börja tidtagning + clock.restart(); + + /* hantera events */ + Event event; + // hämta ett event i taget + while (window.pollEvent(event)) + { + if (event.type == Event::Closed) + { + window.close(); + } + // har en mus-knapp tryckts? + else if (event.type == Event::MouseButtonPressed) + { + auto mouse{event.mouseButton}; + // är det vänster musknapp? + if (mouse.button == Mouse::Button::Left) + { + // flytta cirkeln + circle.setPosition(mouse.x, mouse.y); + } + } + } + + /* hantera logiken */ + auto old_position{sprite.getPosition()}; + + if (Keyboard::isKeyPressed(Keyboard::Key::W)) + { + sprite.setRotation(0); + sprite.move(0, -speed); + } + else if (Keyboard::isKeyPressed(Keyboard::Key::S)) + { + sprite.setRotation(180); + sprite.move(0, speed); + } + else if (Keyboard::isKeyPressed(Keyboard::Key::A)) + { + sprite.setRotation(-90); + sprite.move(-speed, 0); + } + else if (Keyboard::isKeyPressed(Keyboard::Key::D)) + { + sprite.setRotation(90); + sprite.move(speed, 0); + } + + auto sprite_box{sprite.getGlobalBounds()}; + auto circle_box{circle.getGlobalBounds()}; + if (sprite_box.intersects(circle_box)) + { + // om kollision, flytta tillbaks sprite + sprite.setPosition(old_position); + } + + /* rita ut */ + window.clear(); // rensa skärmen + + window.draw(text); // rita ut texten + window.draw(circle); // rita ut cirkeln + window.draw(sprite); // rita ut bilden + + window.display(); // visa ändringarna + + // räkna ut hur lång tid vi har kvar tills nästa + // frame ska börja + auto wait_time{target - clock.getElapsedTime()}; + + // vänta tiden som blev över + sleep(wait_time); + } } \ No newline at end of file diff --git a/src/sfml_start.cc b/src/sfml_start.cc deleted file mode 100644 index b130bf0..0000000 --- a/src/sfml_start.cc +++ /dev/null @@ -1,36 +0,0 @@ -#include // includes most things in SFML - -using namespace sf; - -int const width { 640 }; -int const height { 480 }; - -int main () -{ - RenderWindow window { - VideoMode { width, height }, - "SFML DEMO" - }; - - // loopa sålänge fönstret finns - while ( window.isOpen () ) - { - /* hantera events */ - Event event; - // hämta ett event i taget - while ( window.pollEvent (event) ) - { - if ( event.type == Event::Closed ) - { - window.close (); - } - } - - /* hantera logiken */ - - /* rita ut */ - window.clear (); // rensa skärmen - - window.display (); // visa ändringarna - } -} -- 2.30.2