Guest User

Untitled

a guest
Sep 18th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.86 KB | None | 0 0
  1. import java.awt.Graphics;
  2. import java.awt.*;
  3.  
  4. public abstract class Shape
  5. {
  6. protected int x,y;
  7. protected int tam = 20;
  8. protected int dir;
  9.  
  10. public void moverDerecha()
  11. {
  12. x+=1;
  13. if (x==340)
  14. {
  15. x-=1;
  16. }
  17. }
  18.  
  19. public void moverIzquierda()
  20. {
  21. x-=1;
  22. if (x<0)
  23. {
  24. x+=1;
  25. }
  26. }
  27.  
  28. public void moverArriba()
  29. {
  30. y-=1;
  31. if (y<0)
  32. {
  33. y+=1;
  34. }
  35. }
  36.  
  37. public void moverAbajo()
  38. {
  39. y+=1;
  40. if (y==340)
  41. {
  42. y-=1;
  43. }
  44. }
  45.  
  46. public abstract void show (Graphics papel); //clase abstracta, solo muestra la cabeza
  47. }
  48.  
  49.  
  50. public class Square extends Shape
  51. {
  52. public void show (Graphics papel)
  53. {
  54. papel.drawRect(x,y,tam,tam);
  55. }
  56. }
  57.  
  58.  
  59. public class Circle extends Shape
  60. {
  61. public void show (Graphics papel)
  62. {
  63. papel.drawOval(x,y,tam,tam);
  64. }
  65. }
  66.  
  67.  
  68.  
  69. import javax.swing.JFrame;
  70. import javax.swing.JPanel;
  71. import javax.swing.JButton;
  72. import java.awt.event.ActionListener;
  73. import java.awt.event.ActionEvent;
  74. import java.awt.Container;
  75. import java.awt.FlowLayout;
  76. import java.awt.Dimension;
  77. import java.awt.Color;
  78. import java.awt.Graphics;
  79. public class UseShap extends JFrame implements ActionListener //JFrame es para hacer ventanas graficas
  80. //ActionListener es una interfa (clase de encabezados de metodos)
  81. /**
  82. * La clase UseShap tuvo requirio la interfaz grafica y uamos clases abtractas para poder hacer fuincionar el codigo.
  83. * usamos las librerias de awt y del swing en donde utilizamos para darle las dimensiones a la ventana y al panel,
  84. * y a la vez activar las acciones en el codigo.
  85. */
  86. {
  87. // private JButton botonCirculo,botonCuadrado;
  88. private JPanel panel;
  89. private Circle myCircle; //La clase que heredo de esfera
  90. private Square mySquare;
  91. private javax.swing.Timer tempo;
  92.  
  93.  
  94. public static void main (String vaca[])
  95. {
  96. UseShap ventana = new UseShap();
  97. ventana.setSize(400,460);//tamaño de la ventana
  98. ventana.crearGUI();//Se puede cambiar de nombre
  99. ventana.setVisible(true); //Para que pueda verse la ventana donde se trabaja
  100.  
  101. }
  102.  
  103. private void crearGUI()
  104. {
  105. setDefaultCloseOperation(EXIT_ON_CLOSE); //se cierra cuando le das la x de salir(Se puede cambiar,pero en mayuscula para por la nomenclatura camello)
  106. Container contenedor = getContentPane();
  107. contenedor.setLayout(new FlowLayout()); //Distribucion en flujo (es para centrar objetos)
  108.  
  109. panel = new JPanel(); // el panel en donde se va a trabajar
  110. panel.setPreferredSize(new Dimension (360,360)); //tamaño del panel
  111. panel.setBackground(Color.black); //color del panel
  112. contenedor.add(panel); //se mueve al contenedor
  113.  
  114.  
  115. /**
  116. botonCirculo = new JButton ("Circle"); //igual que la izquierda
  117. contenedor.add(botonCirculo);
  118. botonCirculo.addActionListener(this);
  119.  
  120. botonCuadrado = new JButton ("Square"); //igual que la izquierda
  121. contenedor.add(botonCuadrado);
  122. botonCuadrado.addActionListener(this);
  123. */
  124.  
  125. myCircle = new Circle (); //creamos un objeto de tipo burbuja
  126. mySquare = new Square ();
  127.  
  128. myCircle.x = (int)(Math.random()*341);
  129. myCircle.y = (int)(Math.random()*341);
  130. myCircle.dir = (int)(Math.random()*8);
  131.  
  132. mySquare.x = (int)(Math.random()*341);
  133. mySquare.y = (int)(Math.random()*341);
  134. mySquare.dir = (int)(Math.random()*8);
  135.  
  136. tempo = new javax.swing.Timer (10, this);
  137. tempo.start ();
  138. }
  139.  
  140. public void actionPerformed(ActionEvent event) //acciones que suceden en la ventana(es de ActionListener)
  141. {
  142. Graphics papel = panel.getGraphics(); //agarrar la parte grafica para dibujar(Nombre papel)
  143.  
  144. papel.setColor(Color.black); //para tapar el panel antiguo
  145. papel.fillRect(0,0,360,360); //el tamaño
  146. papel.setColor(Color.white); //color del circulo
  147.  
  148. if(myCircle.x==339 || myCircle.x==0 || myCircle.y==339 || myCircle.y==0)
  149. {
  150. if(myCircle.dir < 3)
  151. {
  152. myCircle.dir = (myCircle.dir+5);
  153. }
  154. else if(myCircle.dir > 2)
  155. {
  156. myCircle.dir = (myCircle.dir-3);
  157. }
  158. }
  159.  
  160. if(mySquare.x==339 || mySquare.x==0 || mySquare.y==339 || mySquare.y==0)
  161. {
  162. if(mySquare.dir < 5)
  163. {
  164. mySquare.dir = (mySquare.dir+3);
  165. }
  166. else if(mySquare.dir > 4)
  167. {
  168. mySquare.dir = (mySquare.dir-5);
  169. }
  170. }
  171.  
  172. if (myCircle.dir==0)
  173. {
  174. myCircle.moverArriba();
  175. myCircle.show(papel);
  176. }
  177. else if (myCircle.dir==1)
  178. {
  179. myCircle.moverArriba();
  180. myCircle.moverDerecha();
  181. myCircle.show(papel);
  182. }
  183. else if (myCircle.dir==2)
  184. {
  185. myCircle.moverDerecha();
  186. myCircle.show(papel);
  187. }
  188. else if (myCircle.dir==3)
  189. {
  190. myCircle.moverAbajo();
  191. myCircle.moverDerecha();
  192. myCircle.show(papel);
  193. }
  194. else if (myCircle.dir==4)
  195. {
  196. myCircle.moverAbajo();
  197. myCircle.show(papel);
  198. }
  199. else if (myCircle.dir==5)
  200. {
  201. myCircle.moverAbajo();
  202. myCircle.moverIzquierda();
  203. myCircle.show(papel);
  204. }
  205. else if (myCircle.dir==6)
  206. {
  207. myCircle.moverIzquierda();
  208. myCircle.show(papel);
  209. }
  210. else if (myCircle.dir==7)
  211. {
  212. myCircle.moverIzquierda();
  213. myCircle.moverArriba();
  214. myCircle.show(papel);
  215. }
  216.  
  217. if (mySquare.dir==0)
  218. {
  219. mySquare.moverArriba();
  220. mySquare.show(papel);
  221. }
  222. else if (mySquare.dir==1)
  223. {
  224. mySquare.moverArriba();
  225. mySquare.moverDerecha();
  226. mySquare.show(papel);
  227. }
  228. else if (mySquare.dir==2)
  229. {
  230. mySquare.moverDerecha();
  231. mySquare.show(papel);
  232. }
  233. else if (mySquare.dir==3)
  234. {
  235. mySquare.moverAbajo();
  236. mySquare.moverDerecha();
  237. mySquare.show(papel);
  238. }
  239. else if (mySquare.dir==4)
  240. {
  241. mySquare.moverAbajo();
  242. mySquare.show(papel);
  243. }
  244. else if (mySquare.dir==5)
  245. {
  246. mySquare.moverAbajo();
  247. mySquare.moverIzquierda();
  248. mySquare.show(papel);
  249. }
  250. else if (mySquare.dir==6)
  251. {
  252. mySquare.moverIzquierda();
  253. mySquare.show(papel);
  254. }
  255. else if (mySquare.dir==7)
  256. {
  257. mySquare.moverIzquierda();
  258. mySquare.moverArriba();
  259. mySquare.show(papel);
  260. }
  261. }
  262. }
Add Comment
Please, Sign In to add comment