From 54428561a9840d5dca80f54526083c33fb8e874b Mon Sep 17 00:00:00 2001 From: Fernando Escobar Robles <zs22016116@estudiantes.uv.mx> Date: Thu, 20 Feb 2025 11:01:19 -0600 Subject: [PATCH] proyecto subido --- pom.xml | 14 ++ src/main/java/com/mycompany/ascii/Ascii.java | 8 + .../java/com/mycompany/ascii/Ventana.java | 160 ++++++++++++++++++ .../classes/com/mycompany/ascii/Ascii.class | Bin 0 -> 494 bytes .../classes/com/mycompany/ascii/MiPanel.class | Bin 0 -> 2685 bytes target/classes/com/mycompany/ascii/Nave.class | Bin 0 -> 2926 bytes .../classes/com/mycompany/ascii/Ventana.class | Bin 0 -> 805 bytes .../compile/default-compile/createdFiles.lst | 4 + .../compile/default-compile/inputFiles.lst | 2 + 9 files changed, 188 insertions(+) create mode 100644 pom.xml create mode 100644 src/main/java/com/mycompany/ascii/Ascii.java create mode 100644 src/main/java/com/mycompany/ascii/Ventana.java create mode 100644 target/classes/com/mycompany/ascii/Ascii.class create mode 100644 target/classes/com/mycompany/ascii/MiPanel.class create mode 100644 target/classes/com/mycompany/ascii/Nave.class create mode 100644 target/classes/com/mycompany/ascii/Ventana.class create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..1464804 --- /dev/null +++ b/pom.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <groupId>com.mycompany</groupId> + <artifactId>Ascii</artifactId> + <version>1.0-SNAPSHOT</version> + <packaging>jar</packaging> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <maven.compiler.source>19</maven.compiler.source> + <maven.compiler.target>19</maven.compiler.target> + <exec.mainClass>com.mycompany.ascii.Ascii</exec.mainClass> + </properties> +</project> \ No newline at end of file diff --git a/src/main/java/com/mycompany/ascii/Ascii.java b/src/main/java/com/mycompany/ascii/Ascii.java new file mode 100644 index 0000000..fb9d3c9 --- /dev/null +++ b/src/main/java/com/mycompany/ascii/Ascii.java @@ -0,0 +1,8 @@ +package com.mycompany.ascii; + +public class Ascii { + + public static void main(String[] args) { + Ventana v=new Ventana(); + } +} diff --git a/src/main/java/com/mycompany/ascii/Ventana.java b/src/main/java/com/mycompany/ascii/Ventana.java new file mode 100644 index 0000000..2156b88 --- /dev/null +++ b/src/main/java/com/mycompany/ascii/Ventana.java @@ -0,0 +1,160 @@ +package com.mycompany.ascii; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; +import java.util.ArrayList; +import java.util.Random; + +public class Ventana extends JFrame { + private MiPanel panel; + + public Ventana() { + setTitle("Spacecraft Animation"); + setSize(800, 400); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setLocationRelativeTo(null); + + panel = new MiPanel(); + add(panel); + setVisible(true); + + panel.inicializarEstrellas(); + } + +} + +class MiPanel extends JPanel implements KeyListener { + private Nave nave; + private ArrayList<Point> estrellas; + private Random rand = new Random(); + + public MiPanel() { + nave = new Nave(this); + setFocusable(true); + addKeyListener(this); + + estrellas = new ArrayList<>(); + } + + public void inicializarEstrellas() { + int ancho = Math.max(getWidth(), 800); + int alto = Math.max(getHeight(), 400); + + for (int i = 0; i < 100; i++) { + estrellas.add(new Point(rand.nextInt(ancho), rand.nextInt(alto))); + } + + Thread hilo = new Thread(nave); + hilo.start(); + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + + g.setColor(Color.BLACK); + g.fillRect(0, 0, getWidth(), getHeight()); + + g.setColor(Color.WHITE); + for (Point estrella : estrellas) { + g.fillRect(estrella.x, estrella.y, 2, 2); + } + + nave.dibujar(g); + } + + public void moverEstrellas() { + int ancho = getWidth(); + int alto = getHeight(); + + for (Point estrella : estrellas) { + estrella.y += 2; + if (estrella.y > alto) { + estrella.y = 0; + estrella.x = rand.nextInt(Math.max(ancho, 800)); + } + } + } + + public void keyPressed(KeyEvent e) { + nave.keyPressed(e); + } + + public void keyReleased(KeyEvent e) { + nave.keyReleased(e); + } + + public void keyTyped(KeyEvent e) {} +} + +class Nave implements Runnable { + private int x = 100; + private int y = 150; + private int xVel = 0; + private int yVel = 0; + private final int VELOCIDAD = 8; + private MiPanel panel; + + public Nave(MiPanel panel) { + this.panel = panel; + } + + @Override + public void run() { + while (true) { + try { + mover(); + panel.moverEstrellas(); + panel.repaint(); + Thread.sleep(30); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + public void dibujar(Graphics g) { + g.setColor(Color.CYAN); + g.drawString(" oOOOo", x, y); + g.drawString(" AAAAAAAAAAA", x, y + 10); + g.drawString(" zzzzzzzzzzzzzzzz", x, y + 20); + g.drawString(" <><><><><><><><><>", x, y + 30); + g.drawString(" XXXXXXXXXXXXXXXXXXXXXX", x, y + 40); + g.drawString("XXXXXXXXXXXXXXXXXXXXXXXXX", x, y + 50); + g.drawString(" XXX[ ][ ][ ][ ][ ][ ][ ][ ][ ][ ]XXX", x, y + 60); + g.drawString(" ~XXXXXXXXXXXXXXX~", x, y + 70); + g.drawString(" ( <><><><> )", x, y + 80); + g.drawString(" ( ) ( ) ( )", x, y + 90); + g.drawString(" ( ) ( ) ( )", x, y + 100); + g.drawString(" ( ) ( ) ( )", x, y + 110); + g.drawString(" ( ) ( ) ( )", x, y + 120); + g.drawString(" ( ) ( )", x, y + 130); + } + + private void mover() { + x += xVel; + y += yVel; + + // Evitar que la nave salga de la pantalla + if (x < 0) x = 0; + if (x > panel.getWidth() - 100) x = panel.getWidth() - 100; + if (y < 0) y = 0; + if (y > panel.getHeight() - 70) y = panel.getHeight() - 70; + } + + public void keyPressed(KeyEvent e) { + int keyCode = e.getKeyCode(); + if (keyCode == KeyEvent.VK_A) xVel = -VELOCIDAD; + if (keyCode == KeyEvent.VK_D) xVel = VELOCIDAD; + if (keyCode == KeyEvent.VK_W) yVel = -VELOCIDAD; + if (keyCode == KeyEvent.VK_S) yVel = VELOCIDAD; + } + + public void keyReleased(KeyEvent e) { + int keyCode = e.getKeyCode(); + if (keyCode == KeyEvent.VK_A || keyCode == KeyEvent.VK_D) xVel = 0; + if (keyCode == KeyEvent.VK_W || keyCode == KeyEvent.VK_S) yVel = 0; + } +} diff --git a/target/classes/com/mycompany/ascii/Ascii.class b/target/classes/com/mycompany/ascii/Ascii.class new file mode 100644 index 0000000000000000000000000000000000000000..1c9e997b066bd015cc061b3b5b2747847f08b062 GIT binary patch literal 494 zcmZ{g!A`<J5QhIL&_b<(peQjOynzS%02mE1@zm%6)5LgMYJ*GY)|5iRV|gOc#0T)9 zj59#OrS4%i|IF<7@66Bd=Qn^`bX-^{IVgLmz$P>%YN7n8GGqU7G>M~}U|(ya^BY2` z+Y23331?B7_{oyvyE02(%_6P+FgCd|%7r7mJwm6bYaqRZ@?H8G6Y7CB@xweB#o3b@ zO*zvH(nw81m1)u2WI2D+Gqw%>CH5JaC~XMs?n|(nVVGyyjQhQi>na;Fq*YKR(1LJY zh~JLI2JSGOXHk5w<)7|)kSlS*1!ReGERd{`qsPkUoA|C=u0S8_@;*l?10@`A^fnEs yqrs|%Lo_)fj|U7BXzdHm^9r?K2iUmTsPd`>(%v+pg(Fr~1{`xvyiZtLIQ;`xGH2cZ literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/ascii/MiPanel.class b/target/classes/com/mycompany/ascii/MiPanel.class new file mode 100644 index 0000000000000000000000000000000000000000..cb0b2e5e091f73f3add04303ec8a3f01d04c4e34 GIT binary patch literal 2685 zcmai0SyL2O6#gzVlV*li0To41afd-1H)3=E1p+ec0fay{FGI^T4n3r&K`?t__RZ`u zkEvAooRkbntV;5dm%OG@mACv4lhS;*r)SY3m51qj`}SGBbG~!Vo!{>M_!EG$_$q`F z_%!%+1n`hR<(yoS%aQaI)0&O+4ok~O3Ov+eTBg$`;Hz&K*H9`@uEZjXj+u;%NNXlF zAA$y75M|IcY|yb0n*?g&srktK3ZDzoT8YSX+%zKtrf1Y|Q;`n)A2b!!P$95=J>@~U zWQ0(T%?j-nfx7zs^~5|M(S~t_s7l8+Y!~ob)E3yWu8Oi84N-cBjvCYo=xM|0PQ@3~ zaym&ZfBjU$xca_J$8OXKY?L!Iea1?^nRX1zumyJ4XCskUoQSbxSWcwqGofhME3ml` zY`bksS3QJ1+0-4-aS(?Df=1f0jbu`$1-2HYC$HfGZO{=$qd@7b;Y^q_PQs-p7D5w_ zXo%=IierT7I!sEkIUrq`dATeQsE@@OC|iaTI!-DxL7M3?%-Mva;o+Q~ie)%uT8^Uk z5gn&-MnJQSWhZ7iDk-j!X0#|iT0OH&(;l4FaSrW-#56GqFE=iZq3Jmz?nE1=G<4=F z$^9^vunjpALI=8(y>5YR#d;%)mZivGE|pA=j+m<0K-!Tu0hXXoM?VILeL)g(C(ABn zkq3dQB5Katav@>H({6DLVOYasIz}*B9CBwWnIfZsj{f$}K0+)I>waPSFMxbb=y)8H z0u^qKRjzWz$qLKIGqbtKdsbfsZ~;%~coI)h^pcrOjxZ%mEomV!EZZSGqvN826`1IW zjdiJ<PV0z+*(^03!<LSMSXJLpR3I_$JX(fJnAMQbVPei}>TI{>MCdCa(}QHvEt@H& zk<>8{OErpnyd`J5n6)69v7qBw(79kCiI_TZbS%0jE2=xM=vY=fXfx*Y;+(YA*;O6S z;dz13Wn*R7HqvQ>fz%ddCf_n$s&`zD%kiR)my}i+wMLAjA*rU}6*h4`<$1kACk98& zSxY*LHv9HaQF`+I(^4SRt?p=Blu>u4W~i{K-?WUu#rbK&9?Q0VWq&FzljG7h)w_4- zcM>MsbLYClBsYHqws3I9O_?;WO1rDj)xspN(uyZi^edB&S`ucGi#HC7`hn0kj5;!Y zc|b0B&P#Ix;=bC<hC)haIcEwH=4z65HqNJ(jQemf;Oc^CK9^YzSZU1r*vf+9Dm0o} zwBts%sivVmPL8A{k0=^Y$1zd@ftTUq%2~^sr9_P~p1tbsU*kKk1nxDS@uK1L8sF0J za|av?uR(-wLz`Sfa1|kL%O`nOxr(h}e+Jdza0WYhx`zV$R<ZwE*X-+j?xIPsIs6>U zo3NL|dmjPq#{mL3N(gW8tDbd&H}MwV1m4aA_?<gH&&FuKzQR}cJr1{Ud%Qwi=eE_? zwzGWZYt)BtVgGG3PjU^_WN=EYwOrQ_&7f`Knor!k_vdYND1ohOcyzESgYycb4+`U6 zl=2y7ni^5X`Me89(8{$F$Jpq{F^Ur|&XY{dcFMd1o0>%BAui*jdzWYIceLR>?n<Z^ z!29@savxHX1l;8vC&V4P@vAXNVU^)uDW(D(4>zu%xA8j+W-!+1^Qm}Mpczc@@M#{Z z7&DLqhkpPWzJXobTo(8R&4Z0iw~*p59SBhV=DojEn2i}M6+%3SAibQTx6@4b8SFp{ zNonP?4ZZxIF@ScCybd?aI)ZLtJzU2}ZkXd<m_&(>@d=T8A^n2}4VUhaQGrkMoc+Oo z0(3T^VsP1N^{@{%dDz>y$zng_ul7$W<QG?wuJ&_R`weQV{XX}VdZC&u?PPNmshjtH zelVskI_pLVJuIjg3F~EaeZ1WIN!uV154ka^tREz$Dkhch2`{Dq@0KieA?6@Uor<m; zzPqRtg7N*0b9YFnPy^Cqt)1^BlnQ!@UMbYOy68ZorF5@qyDBS~Phk+B;d7c1YI6RE pxfdQZH%@aC|6}fpyt!t&RUkycjB03LvdDzUBNBN;U%HAn{ssO&PyGM@ literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/ascii/Nave.class b/target/classes/com/mycompany/ascii/Nave.class new file mode 100644 index 0000000000000000000000000000000000000000..516dc623f493c6f387b45ca96cc13c98fdeb3b87 GIT binary patch literal 2926 zcma)8U2_vv7=E@*yPI?iX^VxHQX^GJQY3-`YAag$0fj;ft$~6-x5=SRNjG7$X&Y3K z&r!$E83mmI@xmGIoYAq>@j~yt@+at>_j2KdBR*$0*`&3@csiRs@AH0~=e*~A&-Ryp ze*6i*%eWap6{=PEbkv|$L2$;HGh%7OoQe%k&WMDqptd_@rtG~6s>6}E9~%5B0y^rT zE7*|8%*JL5{LLC>A!g(fsZ{KUF((u#3w#Ep{Tdx>rLj_wQiG00Dft%SA}xV+Iv#U? zLJ?T6V}k_z@&2LV-od_}K55pfV<XxW)Nmz{R<LPkwY3kYMx?qcK#z7EkIOyP%x30< z6~GhNtfE85lM>wc2yX>z9GCu_ZHaW+$VuNVI<`tj)e>1FW!g2&pB(K0bYh!|r*&*c zY*_}!rY&J4Ng$UNBFim@4@TlDb|`2sr+Lt{g=OWlwn+9bBt+IuWy}Dc!LvG^lk2U` zT3l_^HWKH@EF&TO*o{3Zp4agLUL;c|k}+?`dNb*a#YK9@dybIC&~gPc(v6o??A3Yd zuPA8n)cY+XJDp186lghN7o#+VSNccd8ul@7p;bp_cz8G?m*~^cj{yaNq-D&H+T=c^ zV0|%~Q&%q7H8?0E9#|z}PkCrKsGzNK#fvM3h9LzlMT_peEB`bw7gBv<)uCa8>Qz+| z)No8eO!}S*g--vU$8j2CV-y)(l3^;wB@J;Nf8~zCQYi73^N5BM3Zima9*$MSmCJK? zrs1T5ZDrd~sB9roDHUCd8V#>4_oy^+JxUHmcMWG0bjoPOL65Qtv2cYbbs8pCY@*Vl z6vYb`kv%r4BLOyyHYM!isiZyaTsnhNbxy~WRQahoAW~D)b^s~Ns5q}9Efwp%f);ba zv}1=vp<hl|igcmWn@I{4rh-Pt(y7H`dDAo|)4Z<gdoyOvHcUHir1PShjjbsNg&%pz zM0k`w8J1l-lrqJU{OqK##@v97Lz#q;jvH1=%0<v;Pp8;ut*eHW_huJ&Y~@K(VbGA< zgAUWxt_d2~I~T)YBU@ZRO{OOEGY0R0=86t3wRo3gtgs=Q%H8ehn5grjFk*>ZPB5Qs z75>XJ>O^TNM_8fd70EbmTIx7ECep%iLIy@Nc`G3XQZnIsoQGqW#&&rc2=TtIf`VDp z^387x51>kZHk>y<7|xsD3BDWU=Yh5v2g}lq9|q2AiPhi&e=SP$#H;w;8vPzhG?-k3 z8g0O>Mbt;D7ZH>{P0^sXh~{YLB3iz2g5~(TnN)xzd^n8&&Y%Hj(ToW$Vz3Scw%{CW zS~R=ik;fb*F67W)ez~-yB1ybmB+(IF!lvkVXjwwYeLb}f;U5sa|L~8Y&L!-;|L`}u zfIHjByT2M`B54wtWkyWyJ43xii!AqhfjP50B5kx<K*5R8QKWQ{@l+BxsWPO3*YSqS zN=Y(JGBpo6zs0U4bagiNkd(@&ehIyujr&VdFfic&gC4NX1rB*Yy9*rlfUpY;d%#W? zIO+l2E->l=11|8Y2aLGDaSu4@0^=T#bb(VIV7kC*4_I)4vn8MbS0z$D=Y0q=2lGtP z0{;Oi@LVrq53_WDc^b!?n877Vm+>Cn!d+a!*SLzGaSgxXI)29u{E3@h`k70w4j$0= z5;I*T|NC$=PQPl-fD6%aH_^cfS&tOz$*+lme5-e$$-0y$As<$Y5lkk(LPNAHx$63& zsdSSMO+|2^!c<C(D!1!aQ#&^byn}kYi&nhP?S8;7^@li$k62G1J6n-mMUoZuQw!gg z_PTcBmzf5)sBd#?@`BvW!kvDpE!guV{L$cFY^t_kpEGAyaelmnH?;*vOL$Y6Q7h8} ze8OV<ludREn{XQue1={4++h=PSMd_Nn+J7;9BQzGN1>C2tZ+Ykf1^REtE;2xnn&_V zkz}|;@*eySJtxDGodb}U160szWGex8xXfMl_!sQ!dlhuT9-Xj9r{lkLe04t3xz0dU GxbZJ8Iat2{ literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/ascii/Ventana.class b/target/classes/com/mycompany/ascii/Ventana.class new file mode 100644 index 0000000000000000000000000000000000000000..f6cb13b89d9b53c83053ac78ef3293477a076c4d GIT binary patch literal 805 zcmZ`%ZEq4m5PlY}KyfXFQbDmueLYs~`Ih(rQ)AF3ZSW;RF#2tKY<10XNA8Z+_CJ{T zS4{MpXyOm>M;T|~zL?;b-JP9hW}bOwe*gLL3&3MMC?bPw9u~(EatxJ^@=$(qq9g6U zclLHdIaUn0N7~o%Hbd5K4+|(TRQnU@DmRn|aqEe%$1>J|UqlgS^57h2vBJ=BgRwI{ zrgI|wV@F1=*3MA*vGgTFAyV-`#~!6$w|l0l<4LO7k3%ZmX%9`dRgN+$40!_g^$B5@ z?A_hDugbBGa}0IzJyi#C>cw3zh}6r83TJc}EIY;4InLt(RU&LJaA)q<%A@;G4FZN* z%0M2)PM7!wKG7r&d0hNYAJ6qG=_{{@2C~b<^b$u4o5YWLRUX4eZ&CMYRLAsoh2tu& zk*0DqVi1cN%!T=vmI=PWVWZ7Zq=tq%()&h7%YJ91Y2YTuEi=q2jm_24(<d@~7R90R zJQ)$L8;l5E>S<rSn2z^VIFPdh6{C$el%Y0u`f0@<GzBegC>>{qnDm2b=&BuUnDF#} z%ghy<L^wm+#^@xGW-n3-Ir_Ox)@NktMcXJ&!9*pWU|E#2tup(Ppd@k$)&xsX6F<>- zdy0+kXbSNS%><X<2rI$$xgow%iVU{s6jTtjgcerlRYDc3H2*T1SVNnvd$c(ZQNuRs Ta0tog<#7jh$ztR;neP7ut|q(T literal 0 HcmV?d00001 diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..a870d39 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,4 @@ +com\mycompany\ascii\Ascii.class +com\mycompany\ascii\Nave.class +com\mycompany\ascii\MiPanel.class +com\mycompany\ascii\Ventana.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..53572c9 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,2 @@ +C:\Users\alasn\Desktop\Tareas UV\desarrolloSoftware\asciiArt\Ascii\src\main\java\com\mycompany\ascii\Ventana.java +C:\Users\alasn\Desktop\Tareas UV\desarrolloSoftware\asciiArt\Ascii\src\main\java\com\mycompany\ascii\Ascii.java