java小游戏-贪吃蛇__教程 |
|
日期:2007-5-20 1:28:10 人气:294 [大 中 小] |
|
|
|
private LinkedList eatedBean; { eatedBean = new LinkedList(); } private Iterator snakeSq; public javax.swing.Timer snakeTimer; private int direction = 2; private int score; private String info; private Point bean, eatBean; { bean = new Point(); } private boolean flag; private JMenuBar infoMenu; private JMenu[] tempMenu; private JMenuItem[] tempMenuItem; private JRadioButtonMenuItem[] levelMenuItem, versionMenuItem; private JLabel scoreLabel; { scoreLabel = new JLabel(); } private Graphics2D g; private ImageIcon snakeHead; { snakeHead = new ImageIcon( "LOGO.gif" ); } private ConfigMenu configMenu; private boolean hasStoped = true; public GameFrame() {
this.tempKit = this.getToolkit(); this.setSize( tempKit.getScreenSize() ); this.setGrid( 60, 40, 5 ); this.getContentPane().setBackground( ColorGroup.COLOR_BACK ); this.setUndecorated( true ); this.setResizable( false ); this.addKeyListener( new KeyHandler() ); GameFrame.this.snakeTimer = new javax.swing.Timer( 80, new TimerHandler() ); this.getContentPane().add( scoreLabel, BorderLayout.SOUTH ); this.scoreLabel.setFont( new Font( "Fixedsys", Font.BOLD, 15 ) ); this.scoreLabel.setText( "Pause[SPACE] - Exit[ESC]" ); this.configMenu = new ConfigMenu( this ); this.setVisible( true );
} public void setGrid( int temp1, int temp2, int temp3 ) { this.horizontalGrid = temp1; this.verticalGrid = temp2; this.singleWidthX = this.getWidth() / temp1; this.singleHeightY = this.getHeight() / temp2; this.cooPos = temp3; }
private class KeyHandler extends KeyAdapter { public void keyPressed( KeyEvent e ) { if( e.getKeyCode() == 27 ) { snakeTimer.stop(); if( JOptionPane.showConfirmDialog( null, "Are you sure to exit?" ) == 0 ) { System.exit( 0 ); } snakeTimer.start(); } else if( e.getKeyCode() == 37 && mainSnake.snakeDirection != 2 )//left { direction = 4; } else if( e.getKeyCode() == 39 && mainSnake.snakeDirection != 4 )//right { direction = 2; } else if( e.getKeyCode() == 38 && mainSnake.snakeDirection != 3 )//up { direction = 1; } else if( e.getKeyCode() == 40 && mainSnake.snakeDirection != 1 )//down { direction = 3; } else if( e.getKeyCode() == 32 ) { if( !hasStoped ) { if( !flag ) {
snakeTimer.stop(); configMenu.setVisible( true ); configMenu.setMenuEnable( false ); flag = true; } else { snakeTimer.start(); configMenu.setVisible( false ); configMenu.setMenuEnable( true ); flag = false; } } } } }
private class TimerHandler implements ActionListener { public synchronized void actionPerformed( ActionEvent e ) { Point temp = (Point) mainSnake.getLast(); snakeSq = mainSnake.iterator(); |
|
出处:本站原创 作者:佚名 |
|
|