Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package waz_v1;
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.KeyAdapter;
- import java.awt.event.KeyEvent;
- import javax.swing.JPanel;
- import javax.swing.Timer;
- /**
- *
- * @author Muun
- */
- public class Panel extends JPanel implements ActionListener{
- static int ilosc_jedzenia=30;
- int kierunek;
- int waz_x;
- int waz_y;
- Timer t;
- int predkosc=200;
- int snake[][]=new int[ilosc_jedzenia+3][2];
- int plansza[][]=new int[40][35];
- int dw=3;
- int jedzenie[][]=new int[ilosc_jedzenia][2];
- public Panel() {
- addKeyListener(new KeyClass());
- setBackground(new Color(233,222,155));
- setFocusable(true);
- ustawienia();
- // repaint();
- } // koniec konstruktora
- @Override
- public void paint(Graphics grafa){
- super.paint(grafa);
- //rysujemy obwódkę
- grafa.setColor(Color.red);
- for (int i = 0; i < 40; i++) {
- for (int j = 0; j < 35; j++) {
- if(plansza[i][j]==1) {
- grafa.fillRect(i*20,j*20, 20, 20);
- }
- }
- }
- //-----------------------------
- // rysujemy jedzenie
- grafa.setColor(Color.green);
- for(int i=0;i<ilosc_jedzenia;i++)
- grafa.fillRect(jedzenie[i][0],jedzenie[i][1], 20, 20);
- //rysujemy węża
- grafa.setColor(Color.yellow);
- for(int i=0;i<dw;i++) {
- grafa.fillRect(snake[i][0],snake[i][1], 20, 20);
- }
- } // koniec paint
- public void tworz_plansze(){
- for(int i=0;i<40;i++) {
- for(int j=0;j<30;j++) {
- plansza[i][j]=0;
- if ((j==0) || (j==29)) plansza[i][j]=1;
- if ((i==0) || (i==39)) plansza[i][j]=1;
- }
- }
- } // koniec tworz_plansze
- public void losuj_jedzenie(int n) {
- int xg;
- int yg;
- int i=0;
- int j;
- int wylosowac;
- do{
- wylosowac=0;
- xg=20+(((int) (Math.random()*38))*20);
- yg=20+(((int) (Math.random()*33))*20);
- for(j=0;i<j;i++)
- if((jedzenie[i][j]==xg) && (jedzenie[i][1]==yg)) wylosowac=1;
- if(wylosowac==0){
- jedzenie[i][0]=xg;
- jedzenie[i][1]=yg;
- i++;
- }
- } while (i<n);
- }
- private void ustawienia(){
- t = new Timer(predkosc, this);
- t.start();
- for(int i=0;i<dw;i++) {
- snake[i][0]=20*20;
- snake[i][1]=(15+i)*20;
- }
- tworz_plansze();
- losuj_jedzenie(ilosc_jedzenia);
- }
- @Override
- public void actionPerformed(ActionEvent e) {
- // throw new UnsupportedOperationException("Not supported yet.");
- switch (kierunek){
- case 1:
- waz_x = waz_x +20; break ;
- case 2:
- waz_x = waz_x -20; break ;
- case 3:
- waz_y = waz_y +20; break ;
- case 4:
- waz_y = waz_y -20; break ;
- }
- // nowa pozycja weza
- for(int i=dw-1;i>0;i--){
- snake[i][0]=snake[i-1][0];
- snake[i][1]=snake[i-1][1];
- }
- //pozycja głowy
- snake[0][0]=waz_x;
- snake[0][1]=waz_y;
- // sprawdz kolzije
- repaint();
- }
- class KeyClass extends KeyAdapter{
- @Override
- public void keyPressed (KeyEvent e){
- if(e.getKeyCode()==KeyEvent.VK_ESCAPE){
- t.stop();
- }
- switch (e.getKeyCode()){
- case 37: kierunek=2; break;
- case 38: kierunek=4; break;
- case 39: kierunek=1; break;
- case 40: kierunek=3; break;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement