From 71a2eac8b2d940931ceb5f5488c3a7193dc1b32e Mon Sep 17 00:00:00 2001 From: matthew-java Date: Tue, 3 Feb 2026 15:36:11 +0100 Subject: [PATCH] Jeu fonctionnel --- .idea/.gitignore | 10 ++++++ .idea/.name | 1 + .idea/misc.xml | 6 ++++ .idea/modules.xml | 8 +++++ .idea/vcs.xml | 6 ++++ Projet_DEV.iml | 11 ++++++ gitignore.txt | 2 ++ out/production/Projet_DEV/linea/Cercle.class | Bin 0 -> 2336 bytes out/production/Projet_DEV/linea/Jeu.class | Bin 0 -> 2694 bytes out/production/Projet_DEV/linea/Ligne.class | Bin 0 -> 2236 bytes .../Projet_DEV/linea/LineaAppli.class | Bin 0 -> 475 bytes .../Projet_DEV/linea/ObjetGraphique.class | Bin 0 -> 760 bytes out/production/Projet_DEV/linea/Segment.class | Bin 0 -> 1381 bytes .../Projet_DEV/linea/ZoneDessin.class | Bin 0 -> 2266 bytes src/linea/Cercle.java | 3 +- src/linea/Jeu.java | 8 ++--- src/linea/Ligne.java | 32 ++++++++++++------ src/linea/ObjetGraphique.java | 3 +- src/linea/Segment.java | 4 +-- 19 files changed, 74 insertions(+), 20 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/.name create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 Projet_DEV.iml create mode 100644 out/production/Projet_DEV/linea/Cercle.class create mode 100644 out/production/Projet_DEV/linea/Jeu.class create mode 100644 out/production/Projet_DEV/linea/Ligne.class create mode 100644 out/production/Projet_DEV/linea/LineaAppli.class create mode 100644 out/production/Projet_DEV/linea/ObjetGraphique.class create mode 100644 out/production/Projet_DEV/linea/Segment.class create mode 100644 out/production/Projet_DEV/linea/ZoneDessin.class diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..7bc07ec --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,10 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Environment-dependent path to Maven home directory +/mavenHomeManager.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..3902724 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +ObjetGraphique.java \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..89ee753 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..e786817 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Projet_DEV.iml b/Projet_DEV.iml new file mode 100644 index 0000000..c90834f --- /dev/null +++ b/Projet_DEV.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/gitignore.txt b/gitignore.txt index 72690d5..dc3d74d 100644 --- a/gitignore.txt +++ b/gitignore.txt @@ -10,6 +10,8 @@ *.zip *.tar.gz *.rar +*.idea +*.out ### --- Dossiers de Build --- ### target/ diff --git a/out/production/Projet_DEV/linea/Cercle.class b/out/production/Projet_DEV/linea/Cercle.class new file mode 100644 index 0000000000000000000000000000000000000000..dfb017c5e241a5f9a1b20136f63e77e80c0d448a GIT binary patch literal 2336 zcmb_cZF3V<6n?fzHf>niw6wewlp-K)3It*Sp}eFt1q(?_DF(`5b(?O}rAanyHifDn zIOA{db&!AHI76tTGm0Plpnt_L{sPD6+)a~+eBguWbkEsy?>+lG&pGG*@%N8E14!Z1 z2-*+`BWNH5T|;ldE?H)Ldf~R^U3AUzvVEs&Y0yvGCEGizAuu?U)sts=mcI@}uqh0~ zz-Dx6F#NOQmYXZ^Ovp9YoRS7DCHtZVx@A*v(JIeLV2goX34|7{g{r3~S06TVZa1() zmI6z5Nw)4ZunVsdMbRmF7E^0C^yOC%EriONY zN^K^KmM{6|hq7TzY3Og9%Uez{KIY~UseLJ@x=^t6q%R7>xZ0{ib7KSed%t<%6=G}jPe|Fg{TO_I{_dfn%=FiV|>(BT3U(%CxM|##YuprDLiiMIv z!ixqhEHQE3@|d6Pnv(Fc0ed5SgRA4tBHO4d&1Rpf78fk{nn_9;deTnLEM!gBmiKxv z=q=k74V~%M{vKuLlG9L@LaGj?HtbM#ta94<{i}Ze>lx`<7HRXC>ss_S-rL8Pmh9ZJ zENyKmz($3r0lP0xb(+O(tdUwik?~d} zU9%`)NGvkzRNb6)!4?HJ`Qv+73eSH>f|cduD$5B~mcytlXOA`l>Ij|B+kE>P0eZkhY#myx7vUN@Vx2W~$)ksXz8bd0 z0yXs0f4znQn!Ppbrx~mvMsui!I8CC4k?)zP4J&*mVDNd6Afwnspi$mDef-;n?WD33 zgV>EYuaM(7gflqIYcY-jPZ&NJ6j9=v0Cnm>eU821O4dTLr|9^Oj<1`P1vuBD zMW~@grBSqz`e8j5WMP^V{1&-Hoi4Xz&>I=Nmt>IAzL?=EGt9mu15m|koxr!OsSutS zevT8FgFoTqT+iq_PCvuBVR9OOhKmel=IF>JaxH4lG}NBKUECwI5Ykw~hZG3-s6qEPUYR0nA;u34^x`JX z{*|1x^HcN(pP)}I@I~zYmAtHU(v@|!v5QVuFK&JD4I=FJTQVUkGXMEw6`7aFoX@X| znbj}^)G)+2b6`Vvvk!K#2Zkx*DdL?V;xw^dC(?P`=iUb`q8IAiKIYjF0>cB{(J{Gz zNlga#2(6IRW5etCpedT)LG3MxHtK(05>bUHn21+)y^zgLTu1K3PHfFn??fKv#r~4R Z`Bykh$PWmk4WHm4t=vT!%-|6^{sERVmK^{9 literal 0 HcmV?d00001 diff --git a/out/production/Projet_DEV/linea/Jeu.class b/out/production/Projet_DEV/linea/Jeu.class new file mode 100644 index 0000000000000000000000000000000000000000..7df82837f02cbfc1fdcfa3c0a0c29cd439264bbd GIT binary patch literal 2694 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 Ipt^v=UyUnSr~m)} literal 0 HcmV?d00001 diff --git a/out/production/Projet_DEV/linea/ObjetGraphique.class b/out/production/Projet_DEV/linea/ObjetGraphique.class new file mode 100644 index 0000000000000000000000000000000000000000..7d248262509d534adea613b17a5b7acc7b7ae1ca GIT binary patch literal 760 zcmZva-EPxB5QWbsPTZs>ElwK#q0rJM1`%%HCMZ&sD7~@Z0u;5E8{;-xxpC{*{5%yx z0#yQu2SD&jh_maUwkQ|gogL47Gjn!-{`vL;zyMwq1r%*q4oWBstRBgCvJ=VaVdvHO zC=618@(VRpX-}ZoYL9Fz3DiuGe4lpuaTF(3&;Rwi3LDEB;xMB%91h!~3TjxfvFhL| zT!BWUrlB<0bT^SF6Lp$}0(KB*QJ5vH?O*10HK5^O4NU>@f!{!Tt~RJA?4P!`@$ZD{kcs)vvhnnE?gd;#wmR zxJ{Ug2JX@V93q&AJ3R9T?qS{R_lX4mJ;27iNQV?1Tk^i3{)t8o)ja@@FThGUjQ-7q y$=Ci*e!4LEA-3j~dn~2pD0`1C&7&VL@Qgw{H-u&$H7~D4+UBHuIB1!6+kXKFeS04O literal 0 HcmV?d00001 diff --git a/out/production/Projet_DEV/linea/Segment.class b/out/production/Projet_DEV/linea/Segment.class new file mode 100644 index 0000000000000000000000000000000000000000..46082d3bc610f11e5e8a43ac5021103e030b2372 GIT binary patch literal 1381 zcma)6*-{fh6g{17APylSU=&aml`Kl!QNSe<7p$OGVWqTu8j>*?E6M0EQS#`Ue`8rC zYWd&?_)(VUb|wj;4-Uoj?c06NIeq$0e*XIY13(cE;|L*aAYvkln8J9&Y1vl(@%Ag* zzwcSE>&~0Dtq@ytT8@8HA)L;XhcSd<1920FU@DAsOSbG<({A|+YM1{-*_1FbDmzps zc6)<#d?bCu#JHrRyCt_(lgy-vqdL>+WsaFRjwuDB;B}ar^wQ6`y6#qqH!84?+Rbg-dunYrm>Da%6{}IUJV)k1GUC@A9&ohuhxx0b zr^qK$RtW9#B0`-GZ*NyS&7h+V<^c*XUpke#Ob z;Xy?@{b50J)As9b^@-(KP20CU>Wgo=ZLebAbL1dq&>~CXGv;{jA$CLv5orfT5orRB zL!kAD@qLxE7YH)~X0l(QvWYzy@*2sGBe{pM?lAF*8$wv-`#1|hpa@cIwqr;zGl3~g z^Y0p0%q|$NV}&yzS`CQalW3T^DNVE}L>VDUMTIA2?BOq(6QnuGqFK_+@f7nUThKI@ z2~4PfMxwQVdI~ofh4t!9M%{h47#YmnMj?>16Zo^7%YH`c3#Mf>zG40Y$B|$(7>`wY zNlqs8CZ+wn&#CSD;k~;wb21csBk#}(~ zP`*M!IbSR*CLXL_*(V^@7Z8)*5~yTBz95Q|n?KJ{IwY3OeZ|>>IMID7dN}vFJ4%U3 s5QyJgASh255gz5u=07s%wo3Oj`*EUOJuK#z`H$jD|541c2byBzHzEhlp8x;= literal 0 HcmV?d00001 diff --git a/out/production/Projet_DEV/linea/ZoneDessin.class b/out/production/Projet_DEV/linea/ZoneDessin.class new file mode 100644 index 0000000000000000000000000000000000000000..039fc64c3b65d53c96855da7e82022cbe23e9ebc GIT binary patch literal 2266 zcmZ`)-%}G;7(F+MEQD175r6+`QA1Eesnr&&HUz~;2-YYHw&EqZgvGFnyBihTKK9l3 zzV*$SK6FN>hG{#~@wtCPpF7ikq0`o$yIGQ8X&yFv@BQxi&OP6`-~Rf~Prm>d$5(Mg z5H%1pu?=kkJFe-lE8sPJ(1p2 zpPQ1lEGu_ZpXgwC@RVL2w^o$xS&kjY0UXx491+--$Yuv-H2N_U@8De?jp)~1wW!Fg zRIr|s-kz2u4U{0kae*BT(ix}XxN-F3qy|q=UxJ6|NfU!OC9s|7W3u?5>^fDuM8R92 zgZ+fnf}b&w!VoJXON`nbMpY!MrzI}>qXTm~ZrH^8I4jU@`O1~P;|la823o|=hV!GH zIEV8FJ~Z(WMmBT_D!maRU@S>5ub%jUBj)su3no4W9TKyH>D~?ORwf2M5$LTuBB=j_ zD_57ShgB8FC5)NKXa}~XZ5Dv~bmFp!D|*Us)vB~?RycyICbGCjIfI#uv$9HW*<{k! zqEH>U=mpy6Hted4yRkAn-hn)(4O}WKjq==3Ha$iEUu8;Kv}^M6?0hw3 z(}iq)Lf}x-Oq-+oC)FC=o5xKPw=hHbX41J^mz&$?r}LbwZ*SEmj!E1xF^jpnvo^sB z47VI^(~=it{4bt%$0dAb;&UxldwOxvDlREjowju?S(#C;w)m~=IByjrwr3pM^QG<2 z$VydhV{gzu!An%I%C_{YF8zJF#V?I(e<8P3MMp1=(hM1=#BDosYy$b}%7Sul%7qGN zdU8&Y93+`=98SjkC5v+Rgm}%KK_pWy^M)%ou#LdJ#MVg%sJKzJ!>GQkgBT)%enK_c zOKL?A^mXuEsV~QvQ!Q4MHlg&X5H0R3EK{I@&+9lPS3|aU*i>WZax*x5Yf8SOtFG;7<+%~Yi4DbK(c>|Fn2OkH>;;}getS0XG|6#H=x z^ANbtQ3Mh(-G(_X2ICUP?5TWj;~e`vpNgZegEt_PT!%>h3}bd39j_2iMqio`=yQBL&FcH_5hd>38Ei5do81c?^;Jj|{Gw#pc~NntOWb3cyY zIEHWnV>pR2S4|RNS}eihzrZpcgp|feUmq!+`~mU78cyGCBI`B)oIwX$pGN7cM}{ce zg9=uNBVadgb1TsBCIwLo{>Y89ENzN zuGqJTz0ilN;l148kN7~~8}#yp9(j#RQ>SW3KY#N_vW9V;D~hJ3SI~|Lo_>mo=8?cO zKN&ZuMWLZaKUIH74YW=};aOb1oBTlk1;fC(KlzCix|8y$E$}@v=vzOM99+l5;A>1y zoqCC>mnhV5JEWOE9n##xmpaXn*uEI6bNBh1-`{3=mw5MBi+NW5K3Pb9B^LNiDFrN( zWH>}+G|QOI+o;|MJosc4=Xw>7cm~aU2O@vtpn=JN`$5h==4=E{u*Uy5 le booléen permet de ne plus être tributaire // de la vitesse de répétition du clavier //------------------------------------------------------------------------- - public void Monter(){ + public void Monter(){ + montee = true; } diff --git a/src/linea/Jeu.java b/src/linea/Jeu.java index d972b46..a987891 100644 --- a/src/linea/Jeu.java +++ b/src/linea/Jeu.java @@ -23,6 +23,7 @@ public class Jeu implements KeyListener, ActionListener{ // un qui passera dessus protected Cercle demiCercleAvant = new Cercle(90,-180); // celui qui est sur la ligne protected Cercle demiCercleArriere = new Cercle(90,180); // celui qui est derrière la ligne + Ligne laligne = new Ligne(); // A FAIRE : ajouter les objets graphiques manquants, s'il y en a @@ -46,12 +47,10 @@ public class Jeu implements KeyListener, ActionListener{ //------------------------------------------------------------------------- public Jeu(){ // Gestion du score : a réactiver en fin de TP, inutile au début - /* labScore = new JLabel(); labScore.setText("

score : 0

"); labScore.setBounds(20, 0, 200, 50); ecran.add(labScore); - */ } @@ -111,7 +110,6 @@ public class Jeu implements KeyListener, ActionListener{ // Création d'une fenêtre JFrame fenetre = new JFrame(); - Ligne laligne = new Ligne(); ecran.ajouterObjet(demiCercleArriere); ecran.ajouterObjet(demiCercleAvant); ecran.ajouterObjet(laligne); @@ -127,7 +125,7 @@ public class Jeu implements KeyListener, ActionListener{ fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Démarrage du timer, qui rythmera l'animation - horloge = new Timer(40, this); + horloge = new Timer(20, this); horloge.start(); demiCercleArriere.setCouleur(new Color(0.8f, 0.0f, 0.0f)); @@ -140,7 +138,7 @@ public class Jeu implements KeyListener, ActionListener{ //------------------------------------------------------------------------- @Override public void actionPerformed(ActionEvent e) { - + ecran.traiterBoucleAnimation(); } } diff --git a/src/linea/Ligne.java b/src/linea/Ligne.java index da944e1..5a4fba9 100644 --- a/src/linea/Ligne.java +++ b/src/linea/Ligne.java @@ -36,19 +36,26 @@ public class Ligne extends ObjetGraphique{// Hérite de la classe ObjetGraphique // Valeurs initiales pour la position de la Ligne double x = 800; double y = 200; - double dx,dy; + + double xCourant = x; + double yCourant = y; + double dx = 0,dy=0; + // Création de la liste de segments qui composent la ligne - Segment s; + Segment s = new Segment(xCourant,yCourant,dx,dy); + + for (int i=0; i