![]() |
| ||
| Help with snake tail for the game with arrays... <code>import java.io.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.Random; public class snake1 { public static void main(String args[]) { String name1= JOptionPane.showInputDialog("Enter Player one's name"); Windows myW=new Windows(name1); myW.setSize(800,600); myW.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent event) { System.exit(0); } }); myW.show(); while(true) { myW.repaint(); try{Thread.sleep(60/myW.getLevel());}catch(Exception e){} } } } class Windows extends Frame implements KeyListener { int appleSize = 10; int snakeSize = 10; private int x,y,xold,yold,textnum,turn,count; private boolean go,move,firsttime,win,tie,goTitle,play,selectLevel; private int size; private int level = 0; private int AppleX, AppleY, SnakeX, SnakeY; private boolean left,right,up,down; private boolean hitWall,start; private int numHit; private String nam1,nam2,winperson; private int snakeBody[][]; private int growth,hits,totalHits,seconds,currentLength,snakeLength; public Windows(String n1) { nam1=n1; play=false; win = false; x=265; y=265; AppleX=x; AppleY=y; xold=x; yold=y; textnum=6; firsttime =true; go =false; move =false; goTitle=true; go=false; addKeyListener(this); selectLevel=false; level=0; SnakeX=265; SnakeY=265; left=false; right=true; up=false; down=false; size=5; hitWall=false; start=false; growth = 1; snakeLength = 999; currentLength = 1; snakeBody = new int[snakeLength][2]; snakeBody[0][0] = SnakeX; snakeBody[0][1] = SnakeY; } public int getLevel() { return level; } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { if(goTitle) title(g); if(firsttime){ selectLevel=true; startgame(g); movebox(g); firsttime=false; } if(go){ selectLevel=true; snakeGame(g); } if(play) { snakeGame(g); selectLevel=false; } g.setFont(new Font("Courier",Font.BOLD,30)); g.setColor(Color.yellow); g.drawString("X = ",490,100); // display x,y on screen String xnum=Integer.toString(x); g.drawString(xnum,550,100); g.drawString("Y = ",640,100); String ynum=Integer.toString(y); g.drawString(ynum,700,100); if(move) movebox(g); //repaint(); } public void title(Graphics g) { g.setColor(Color.red); g.fillOval(100,100,600,450); g.fillRect(390,30,20,80); //g.setColor(Color.black); //g.drawRoundRect(100,150,20,10,20,20); g.setColor(Color.black); g.fillRect(0,0,800,600); //g.setColor(Color.black); //g.fillRect(100,100,600,400); g.setColor(Color.red); g.setFont(new Font("Courier",Font.ITALIC,36)); g.drawString("Snake Game", 300,200); g.setColor(Color.white); try{Thread.sleep(75);}catch(Exception e){} g.drawOval(410,250,6,6); try{Thread.sleep(75);}catch(Exception e){} g.drawOval(404,250,6,6); try{Thread.sleep(75);}catch(Exception e){} try{Thread.sleep(75);}catch(Exception e){} g.drawOval(400,240,20,20); try{Thread.sleep(75);}catch(Exception e){} g.drawOval(400,220,20,20); try{Thread.sleep(75);}catch(Exception e){} g.drawOval(320,200,20,20); try{Thread.sleep(75);}catch(Exception e){} g.drawOval(340,200,20,20); try{Thread.sleep(75);}catch(Exception e){} g.drawOval(360,200,20,20); try{Thread.sleep(75);}catch(Exception e){} g.drawOval(380,200,20,20); try{Thread.sleep(75);}catch(Exception e){} g.drawOval(400,200,20,20); try{Thread.sleep(400);}catch(Exception e){} for(int k=0; k<4; k++) { g.setColor(Color.green); g.setFont(new Font("Courier",Font.ITALIC,36)); g.drawString("How you like them APPLES!", 140,400); try{Thread.sleep(400);}catch(Exception e){} g.setColor(Color.red); g.setFont(new Font("Courier",Font.ITALIC,36)); g.drawString("How you like them APPLES!", 140,400); try{Thread.sleep(400);}catch(Exception e){} } goTitle=false; firsttime=true; } public void startgame(Graphics g) { g.setColor(Color.black); g.fillRect(0,0,800,600); g.setColor(Color.white); g.setFont(new Font("Courier",Font.ITALIC,30)); g.drawString("Snake Game", 300,75); firsttime=false; g.setColor(Color.yellow); g.drawString("Easy",250,265); g.setColor(Color.yellow); g.drawString("Normal",250,365); g.setColor(Color.yellow); g.drawString("Hard",250,465); } public void keyPressed(KeyEvent event) { if(selectLevel) { xold=x; yold=y; switch (event.getKeyCode()) { case KeyEvent.VK_UP: if(y<=265) y=265; else y-=100; move=true; break; case KeyEvent.VK_DOWN: if(y>=465) y=465; else y+=100; move=true; break; case KeyEvent.VK_ENTER: if(y==465) //HARD level=3; else if (y == 365) //MEDIUM level=2; else // EASY level=1; if(x==xold && y==yold) { play=true; } break; } } else { if (event.getKeyCode() == KeyEvent.VK_UP) { if(!down) { down=false; up=true; } left=false; right=false; move=false; selectLevel=false; } if (event.getKeyCode() == KeyEvent.VK_DOWN) { if(!up) { up=false; down=true; } left=false; right=false; move=false; selectLevel=false; } if (event.getKeyCode() == KeyEvent.VK_LEFT) { if(!right) { right=false; left=true; } up=false; down=false; move=false; selectLevel=false; } if (event.getKeyCode() == KeyEvent.VK_RIGHT) { if(!left) { left=false; right=true; } up=false; down=false; move=false; selectLevel=false; } if (event.getKeyCode() == KeyEvent.VK_ENTER) play=true; } } public void keyReleased(KeyEvent event) { } public void keyTyped(KeyEvent event) { } public void movebox(Graphics screen) { screen.setColor(Color.black); //blue rectangle to clear screen.fillRect(490,80,260,30); screen.setFont(new Font("Courier",Font.BOLD,30)); screen.setColor(Color.yellow); screen.drawString("X = ",490,100); // display x,y on screen String xnum=Integer.toString(x); screen.drawString(xnum,550,100); screen.drawString("Y = ",640,100); String ynum=Integer.toString(y); screen.drawString(ynum,700,100); if(x!=xold || y!=yold) { screen.setColor(Color.black); screen.fillRect(xold-10,yold,xold+110,yold); screen.setFont(new Font("Courier",Font.ITALIC,30)); screen.setColor(Color.yellow); screen.drawString("Easy",250,265); screen.setColor(Color.yellow); screen.drawString("Normal",250,365); screen.setColor(Color.yellow); screen.drawString("Hard",250,465); screen.setColor(Color.red); screen.drawLine(x-10,y,x+110,y); } xold=x; yold=y; move=false; selectLevel=true; } public void snakeGame(Graphics g) { Random rnum=new Random(); g.setColor(Color.gray); g.fillRect(0,0,800,600); DrawApple(g, AppleX, AppleY); g.setColor(Color.white); g.setFont(new Font("Courier",Font.ITALIC,30)); if(left) SnakeX-=size; if(right) SnakeX+=size; if (up) SnakeY-=size; if(down) SnakeY+=size; drawSnake(g); if (SnakeX<5) { hitWall=true; SnakeX=785; } if(SnakeX>785) { hitWall=true; SnakeX=5; } if(SnakeY<30) { hitWall=true; SnakeY=585; } if(SnakeY>585) { hitWall=true; SnakeY=30; } selectLevel=false; boolean touchSnakeX = (AppleX >= SnakeX) && (AppleX <= SnakeX + snakeSize); boolean touchSnakeY = (AppleY >= SnakeY) && (AppleY <= SnakeY + snakeSize); boolean touchAppleX = (AppleX <= SnakeX) && (AppleX + appleSize >= SnakeX); boolean touchAppleY = (AppleY <= SnakeY) && (AppleY + appleSize >= SnakeY); //if(SnakeX==AppleX && SnakeY==AppleY) if((touchSnakeX && touchSnakeY) || (touchAppleX && touchAppleY)) { AppleX = rnum.nextInt(785/size)*size+size; AppleY = rnum.nextInt(585/size)*size+size; if(AppleX<30) AppleX=30; if(AppleX>785) AppleX=785; if(AppleY<5) AppleY=5; if(AppleY>785) AppleY=785; } } public void DrawApple(Graphics g, int x, int y) { g.setColor(Color.green); g.fillRect(x,y,appleSize,appleSize); } public void drawSnake(Graphics g) { g.fillRect(SnakeX,SnakeY, snakeSize, snakeSize); } } </code> Can anyone help me go through this..? |
| ||
| Re: Help with snake tail for the game with arrays... What is your problem? |
| All times are GMT -4. The time now is 2:33 am. |
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC