Advertisement
Guest User

Untitled

a guest
Feb 27th, 2020
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.86 KB | None | 0 0
  1. package waz_v1;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Graphics;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.awt.event.KeyAdapter;
  8. import java.awt.event.KeyEvent;
  9. import javax.swing.JPanel;
  10. import javax.swing.Timer;
  11.  
  12. /**
  13. *
  14. * @author Muun
  15. */
  16. public class Panel extends JPanel implements ActionListener{
  17. static int ilosc_jedzenia=30;
  18. int kierunek;
  19. int waz_x;
  20. int waz_y;
  21. Timer t;
  22. int predkosc=200;
  23. int snake[][]=new int[ilosc_jedzenia+3][2];
  24. int plansza[][]=new int[40][35];
  25. int dw=3;
  26. int jedzenie[][]=new int[ilosc_jedzenia][2];
  27. public Panel() {
  28. addKeyListener(new KeyClass());
  29. setBackground(new Color(233,222,155));
  30. setFocusable(true);
  31. ustawienia();
  32.  
  33. // repaint();
  34. } // koniec konstruktora
  35. @Override
  36. public void paint(Graphics grafa){
  37. super.paint(grafa);
  38. //rysujemy obwódkę
  39. grafa.setColor(Color.red);
  40. for (int i = 0; i < 40; i++) {
  41. for (int j = 0; j < 35; j++) {
  42. if(plansza[i][j]==1) {
  43. grafa.fillRect(i*20,j*20, 20, 20);
  44. }
  45. }
  46. }
  47. //-----------------------------
  48. // rysujemy jedzenie
  49. grafa.setColor(Color.green);
  50. for(int i=0;i<ilosc_jedzenia;i++)
  51. grafa.fillRect(jedzenie[i][0],jedzenie[i][1], 20, 20);
  52. //rysujemy węża
  53. grafa.setColor(Color.yellow);
  54. for(int i=0;i<dw;i++) {
  55. grafa.fillRect(snake[i][0],snake[i][1], 20, 20);
  56. }
  57. } // koniec paint
  58. public void tworz_plansze(){
  59. for(int i=0;i<40;i++) {
  60. for(int j=0;j<30;j++) {
  61. plansza[i][j]=0;
  62. if ((j==0) || (j==29)) plansza[i][j]=1;
  63. if ((i==0) || (i==39)) plansza[i][j]=1;
  64. }
  65. }
  66. } // koniec tworz_plansze
  67.  
  68. public void losuj_jedzenie(int n) {
  69. int xg;
  70. int yg;
  71. int i=0;
  72. int j;
  73. int wylosowac;
  74. do{
  75. wylosowac=0;
  76. xg=20+(((int) (Math.random()*38))*20);
  77. yg=20+(((int) (Math.random()*33))*20);
  78. for(j=0;i<j;i++)
  79. if((jedzenie[i][j]==xg) && (jedzenie[i][1]==yg)) wylosowac=1;
  80. if(wylosowac==0){
  81. jedzenie[i][0]=xg;
  82. jedzenie[i][1]=yg;
  83. i++;
  84. }
  85.  
  86. } while (i<n);
  87. }
  88. private void ustawienia(){
  89. t = new Timer(predkosc, this);
  90. t.start();
  91.  
  92. for(int i=0;i<dw;i++) {
  93. snake[i][0]=20*20;
  94. snake[i][1]=(15+i)*20;
  95. }
  96. tworz_plansze();
  97. losuj_jedzenie(ilosc_jedzenia);
  98. }
  99.  
  100. @Override
  101. public void actionPerformed(ActionEvent e) {
  102. // throw new UnsupportedOperationException("Not supported yet.");
  103. switch (kierunek){
  104. case 1:
  105. waz_x = waz_x +20; break ;
  106. case 2:
  107. waz_x = waz_x -20; break ;
  108. case 3:
  109. waz_y = waz_y +20; break ;
  110. case 4:
  111. waz_y = waz_y -20; break ;
  112. }
  113. // nowa pozycja weza
  114. for(int i=dw-1;i>0;i--){
  115. snake[i][0]=snake[i-1][0];
  116. snake[i][1]=snake[i-1][1];
  117. }
  118. //pozycja głowy
  119. snake[0][0]=waz_x;
  120. snake[0][1]=waz_y;
  121. // sprawdz kolzije
  122. repaint();
  123. }
  124. class KeyClass extends KeyAdapter{
  125. @Override
  126. public void keyPressed (KeyEvent e){
  127. if(e.getKeyCode()==KeyEvent.VK_ESCAPE){
  128. t.stop();
  129. }
  130. switch (e.getKeyCode()){
  131. case 37: kierunek=2; break;
  132. case 38: kierunek=4; break;
  133. case 39: kierunek=1; break;
  134. case 40: kierunek=3; break;
  135. }
  136. }
  137. }
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement