Advertisement
Explosiontime202

Snake

May 1st, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.42 KB | None | 0 0
  1. class Schlange {
  2.   ArrayList<PVector> pos;
  3.   int len;
  4.   Schlange(PVector spos) {
  5.     pos=new ArrayList<PVector>();
  6.     //pos.add(new PVector(spos.x/size,spos.y/size));
  7.     len=5;
  8.     for (int i=0; i<len; i++) {
  9.       pos.add(new PVector(spos.x/size+i, spos.y/size));
  10.     }
  11.   }
  12.   void zeichne() {
  13.     for (int i=0; i<pos.size(); i++) {
  14.       fill(#0000FF);
  15.       if (i==0) {
  16.         fill(#FF0000);
  17.       }
  18.       ellipse(pos.get(i).x*50, pos.get(i).y*50, size, size);
  19.     }
  20.   }
  21.   void keyPressed(char k) {
  22.     switch(k) {
  23.     case 'w':
  24.       up();
  25.       break;
  26.     case 'a':
  27.       right();
  28.       break;
  29.     case 's':
  30.       down();
  31.       break;
  32.     case 'd':
  33.       left();
  34.       break;
  35.     }
  36.   }
  37.   void up() {
  38.     move(0,-1);
  39.   }
  40.   void down() {
  41.     move(0,1);
  42.   }
  43.   void right() {
  44.     move(-1,0);
  45.   }
  46.   void left() {
  47.     move(1,0);
  48.   }
  49.   void move(int dx,int dy /*dx=Dimension X; dy=Dimension Y*/) {
  50.     PVector p=new PVector();
  51.     p.x=pos.get(0).x+dx;
  52.     p.y=pos.get(0).y+dy;
  53.     for(int i=1;i<pos.size();i++) {
  54.       PVector test=pos.get(i);
  55.       if(p.x==test.x&&p.y==test.y) {
  56.         return;
  57.       }
  58.     }
  59.     pos.remove(pos.size()-1);
  60.     pos.add(0,p);
  61.   }
  62. }
  63.  
  64. final float size=50;
  65. Schlange s;
  66. void setup() {
  67.   fullScreen();
  68.   s=new Schlange(new PVector(500, 500));
  69. }
  70. void draw() {
  71.   background(255);
  72.   s.zeichne();
  73. }
  74.  
  75. void keyPressed() {
  76.   s.keyPressed(key);
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement