resources_for_snakegame
This is an old revision of the document!
Snake Game
import java.awt.Color; import java.awt.Font; 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 javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.Timer; public class SnakeGame extends JPanel implements KeyListener, ActionListener { public static int WIDTH=800; public static int HEIGHT=600; public static int SIZE=30; private Font titleFont, regularFont; private int x,y; private Timer timer; private Snake snake; public SnakeGame() { snake = new Snake(WIDTH/2, HEIGHT/2, SIZE); titleFont = new Font("Roman", Font.BOLD, 18); regularFont = new Font("Helvetica", Font.PLAIN, 12); y=0; x=200; timer = new Timer(10, this); //1000=1 seconds timer.start(); } public static void main(String[] args) { SnakeGame app= new SnakeGame(); JFrame window = new JFrame("Snake Version 0.1"); window.setSize(WIDTH, HEIGHT); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.getContentPane().add(app); window.addKeyListener(app); //window.pack(); window.setVisible(true); } public void paintComponent(Graphics g){ super.paintComponent(g); g.setColor(Color.WHITE); g.fillRect(0, 0, getWidth(),getHeight()); g.setColor(Color.BLUE); g.setFont(titleFont); g.drawString("SnakeGame Example", 20, 20); g.setColor(Color.BLACK); g.setFont(regularFont); snake.draw(g); } // These 3 methods need to be declares to implement the KeyListener Interface @Override public void keyTyped(KeyEvent e) {} @Override public void keyPressed(KeyEvent e) { int code=e.getKeyCode(); if (code ==39) // right snake.changeDirection('e'); else if (code == 37 ) //left snake.changeDirection('w'); else if (code == 38 ) //left snake.changeDirection('n'); else if (code == 40 ) //left snake.changeDirection('s'); repaint(); } @Override public void keyReleased(KeyEvent e) {} @Override public void actionPerformed(ActionEvent e) { if (e.getSource()==timer){ snake.move(); } repaint(); } }
import java.awt.*; public class Snake { // instance variables - replace the example below with your own private int x, y, size; private char direction; /** * Constructor for objects of class Snake */ public Snake(int x, int y, int size) { // initialise instance variables this.x = x; this.y = y; this.size = size; direction = 'e'; } public void draw(Graphics g) { g.setColor(Color.GREEN); if (direction == 'e' || direction== 'w') g.fillOval(x, y, 2*size,size); else g.fillOval(x, y, size,2*size); } /** * An example of a method - replace this comment with your own * * @param y a sample parameter for a method * @return the sum of x and y */ public void move() { if (direction == 'e') x++; else if (direction == 'w') x--; else if (direction == 'n') y--; else if (direction == 's') y++; } public void changeDirection(char ch) { direction = ch; } }
resources_for_snakegame.1652287665.txt.gz · Last modified: 2022/05/11 12:47 by frchris