Advertisement
Guest User

Untitled

a guest
Mar 18th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.43 KB | None | 0 0
  1. package gra;
  2.  
  3. import java.applet.Applet;
  4. import java.awt.Graphics;
  5. import java.awt.Image;
  6. import java.awt.event.KeyEvent;
  7. import java.awt.event.KeyListener;
  8. import java.io.File;
  9. import java.io.IOException;
  10. import java.util.Random;
  11. import javax.imageio.ImageIO;
  12. import javax.swing.ImageIcon;
  13.  
  14. class Samochod {
  15. int x;
  16. int y;
  17. public int getX() {
  18. return x;
  19. }
  20. public void setX(int x) {
  21. this.x = x;
  22. }
  23. public int getY() {
  24. return y;
  25. }
  26. public void setY(int y) {
  27. this.y = y;
  28. }
  29.  
  30. public int getSrednica() {
  31. return srednica;
  32. }
  33.  
  34. public void setSrednica(int srednica) {
  35. this.srednica = srednica;
  36. }
  37. int srednica=50;
  38. Image samochod;
  39.  
  40. public Samochod(int x, int y) {
  41.  
  42. this.x=x;
  43. this.y=y;
  44. try {
  45. samochod=ImageIO.read(new File("samochod.png"));
  46. } catch (IOException ex) {}
  47. }
  48.  
  49. public void update(Gra gra)
  50. {
  51. if(x+srednica>=gra.getWidth())
  52. {
  53. x= gra.getWidth()-srednica;
  54. }
  55. else if(x<=0)
  56. {
  57. x=0;
  58. }
  59.  
  60. if(y<0)
  61. {
  62. y=0;
  63. }
  64. else if(y+srednica>=gra.getHeight())
  65. {
  66. y=gra.getHeight()-srednica;
  67. }
  68. else
  69. {
  70. y++;
  71. }
  72. }
  73.  
  74. public void paint(Graphics g )
  75. {
  76. //g.fillOval(x, y, srednica, srednica);
  77. g.drawImage(samochod, x, y, null);
  78.  
  79. }
  80.  
  81. void ruchLewo() {
  82. x-=20;
  83. this.samochod=samochod;
  84. }
  85.  
  86. void ruchPrawo() {
  87. x+=20;
  88. this.samochod=samochod;
  89. }
  90.  
  91. void pozWyjsciowa() {
  92. this.samochod=samochod;
  93. }
  94. }
  95.  
  96.  
  97. class Policja {
  98.  
  99. private int x, y;
  100. private int srednica=50;
  101. private Image policja;
  102.  
  103. public Policja(int x, int y)
  104. {
  105. this.x=x;
  106. this.y=y-srednica;
  107. try {
  108. policja= ImageIO.read(new File("policja.png"));
  109.  
  110. } catch (IOException ex) {}
  111. }
  112.  
  113. public void update(Gra gr, Samochod samochod)
  114. {
  115. if(y>=gr.getHeight())
  116. {
  117. y= 0-srednica;
  118. }
  119. else
  120. {
  121. y++;
  122. y++;
  123. }
  124. sprKolizja(samochod);
  125. }
  126.  
  127. public void sprKolizja(Samochod samochod)
  128. {
  129.  
  130. int samochodX=samochod.getX();
  131. int samochodY=samochod.getY();
  132. int promienSamochodu=samochod.getSrednica()/2;
  133.  
  134. int a= samochodX-x;
  135. int b=samochodY-y;
  136. int sumaProm= promienSamochodu+srednica/2;
  137.  
  138. double c=Math.sqrt((double)(a*a)+(double)(b*b));
  139. if(c<sumaProm)
  140. {
  141. //samochod.setX(300);
  142. //samochod.setY(600);
  143. }
  144. }
  145.  
  146. public void stop(Thread t){
  147. t.stop();
  148. }
  149.  
  150. public void paint(Graphics g)
  151. {
  152. // g.fillOval(x, y, srednica, srednica);
  153. g.drawImage(policja, x, y, null);
  154. }
  155. }
  156.  
  157.  
  158.  
  159. public class Gra extends Applet implements Runnable, KeyListener
  160. {
  161. private Image img;
  162. private Graphics gg;
  163. private Samochod samochod;
  164. private Policja []przeszkody=new Policja[6];
  165. private Image tlo;
  166.  
  167.  
  168. @Override
  169. public void init() {
  170. setSize(500, 600);
  171. addKeyListener(this);
  172.  
  173. }
  174.  
  175. @Override
  176. public void start() {
  177.  
  178. samochod=new Samochod(250,600);
  179. for(int i=0; i<przeszkody.length;i++)
  180. {
  181. Random r= new Random();
  182.  
  183. przeszkody[i]=new Policja(r.nextInt(450),-(r.nextInt(600)));
  184. }
  185.  
  186. Thread t= new Thread(this);
  187. t.start();
  188. }
  189.  
  190. @Override
  191. public void update(Graphics g) {
  192. if(img==null)
  193. {
  194. img=createImage(this.getSize().width, this.getSize().height);
  195. gg=img.getGraphics();
  196. }
  197.  
  198. gg.setColor(getBackground());
  199. gg.fillRect(0, 0, getSize().width, getSize().height);
  200. gg.setColor(getForeground());
  201. paint(gg);
  202.  
  203. g.drawImage(img, 0, 0, this);
  204.  
  205. }
  206.  
  207. @Override
  208. public void paint(Graphics g) {
  209.  
  210. samochod.paint(g);
  211. for(int i=0; i<przeszkody.length;i++)
  212. {
  213. przeszkody[i].paint(g);
  214. }
  215. }
  216.  
  217. @Override
  218. public void run() {
  219.  
  220. while(true){
  221. samochod.update(this);
  222. for(int i=0; i<przeszkody.length;i++)
  223. {
  224. przeszkody[i].update(this, samochod);
  225. }
  226.  
  227. repaint();
  228. try {
  229. Thread.sleep(20);
  230. } catch (InterruptedException ex) {}
  231. }
  232. }
  233.  
  234. @Override
  235. public void keyPressed(KeyEvent e) {
  236.  
  237. switch(e.getKeyCode())
  238. {
  239. case KeyEvent.VK_LEFT:
  240. samochod.ruchLewo();
  241. break;
  242. case KeyEvent.VK_RIGHT:
  243. samochod.ruchPrawo();
  244. break;
  245. }
  246. }
  247.  
  248. @Override
  249. public void keyTyped(KeyEvent e) {
  250. }
  251.  
  252. @Override
  253. public void keyReleased(KeyEvent e) {
  254. samochod.pozWyjsciowa();
  255. }
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement