Results 1 to 2 of 2
Thread: basic snake game
- 03-05-2011, 05:19 PM #1
Member
- Join Date
- Feb 2011
- Posts
- 19
- Rep Power
- 0
basic snake game
I feel so stupid about this, i cant figure out how can i make this game so it wont think you die when it eats... I mean how i can make it so snake grows but they dont go on eachother? I've tried it in many ways but never succeed! please point me out in this thing
The game is just like other snake games. I want it to NOT TO think the snake have hitted himself when it eats food. When it eats food it spawns new piece of snake on last snake piece but i got no idea how to make it so it will move 1 step inb4 it will make the new piece appear or something. I didnt find any useful tutorials from google so dont post any of them. Just help me out with your geniousness. Please i beg you!Java Code:import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.ArrayList; import java.util.List; import java.util.Random; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.Timer; public class testingSO extends JPanel implements ActionListener, KeyListener { Timer t = new Timer(200, this); Random r = new Random(); List<Snake> snakes = new ArrayList<Snake>(); Food f; boolean isFood = false; public static void main(String args[]){ new testingSO(); } public testingSO(){ JFrame frame = new JFrame("snake"); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setContentPane(this); setPreferredSize(new Dimension(400, 400)); frame.pack(); snakes.add(new Snake(0, 0, 1, 0)); frame.addKeyListener(this); frame.setFocusable(true); } public void paintComponent(Graphics g){ super.paintComponent(g); t.start(); for(Snake x: snakes){ g.drawRect(x.x, x.y, 25, 25); } if(f != null && isFood){ g.drawRect(f.x, f.y, 25, 25); } } @Override public void actionPerformed(ActionEvent ae) { if(!isFood){ int tx = r.nextInt(16); int ty = r.nextInt(16); f = new Food(tx*25, ty*25, 0, 0); isFood = true; } if(snakes.size() > 0){ for(int x = snakes.size()-1; x > 0; x--){ for(int y = snakes.size()-1; y > 0; y--){ if(!snakes.get(x).equals(y)){ if(snakes.get(x).rect().intersects(snakes.get(y).rect())){ System.out.println("game over!"); } } } snakes.get(x).x = snakes.get(x-1).x; snakes.get(x).y = snakes.get(x-1).y; } } if(isFood){ if(snakes.get(0).nextRect().intersects(f.rect())){ isFood = false; snakes.add(new Snake(snakes.get(snakes.size()-1).x, snakes.get(snakes.size()-1).y, 0, 0)); } } snakes.get(0).x += snakes.get(0).vx*25; snakes.get(0).y += snakes.get(0).vy*25; repaint(); } @Override public void keyPressed(KeyEvent ke) { snakes.get(0).vx = 0; snakes.get(0).vy = 0; switch(ke.getKeyCode()){ case KeyEvent.VK_UP: snakes.get(0).vy = -1; break; case KeyEvent.VK_DOWN: snakes.get(0).vy = 1; break; case KeyEvent.VK_RIGHT: snakes.get(0).vx = 1; break; case KeyEvent.VK_LEFT: snakes.get(0).vx = -1; break; } } @Override public void keyReleased(KeyEvent ke) { } @Override public void keyTyped(KeyEvent kt) { } }Last edited by Ruuhkis; 03-05-2011 at 05:51 PM. Reason: quote tags changed to code tags
-
Moderator Edit: quote tags changed to code tags so that the pasted code above is readable.
OP: consider adding more description of your code and it's problem. I think you are overestimating our ability to guess what your program is doing, is supposed to be doing, etc. Describe the problem as if we have no prior knowledge of the situation (which is true!).
Similar Threads
-
Snake Game in Java
By Shyamz1 in forum New To JavaReplies: 4Last Post: 02-10-2011, 02:49 PM -
Snake Game Applet
By Growler in forum Java AppletsReplies: 6Last Post: 07-11-2010, 02:47 PM -
Snake game in java
By freaky in forum New To JavaReplies: 5Last Post: 04-20-2010, 06:34 PM -
Snake Game
By mustachMan in forum New To JavaReplies: 2Last Post: 12-10-2009, 10:35 PM -
Snake game movement
By BeerMonkey in forum New To JavaReplies: 9Last Post: 11-27-2008, 12:48 PM


LinkBack URL
About LinkBacks

Bookmarks