aau语言 java_ddd - java代码库 - 云代码

[java]代码库import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import java.net.*;

import java.applet.*;

public class SnakeMap extends JPanel implements Runnable{

ImageIcon eatIcon = new ImageIcon("food.png");

ImageIcon heidong = new ImageIcon("heidong.png");

SnakeMap sm;

Snake snake = new Snake();

public SnakeMap(){

sm = this;

//构造组件

JLabel jlTitle = new JLabel();

jlTitle = new JLabel(new ImageIcon("title.jpg"),JLabel.CENTER);

JLabel jlLgio = new JLabel();

jlLgio = new JLabel(new ImageIcon("lgio.png"),JLabel.CENTER);

JLabel jlMap = new JLabel();

jlMap = new JLabel(new ImageIcon("map5.jpg"),JLabel.CENTER);

JButton newGame = new JButton("开始");

newGame.setBackground(new Color(168,132,98));

newGame.setForeground(new Color(128,64,0));

newGame.setFont(new Font("华文行楷",1,30 ));

JButton stopGame = new JButton("退出");

stopGame.setBackground(new Color(168,132,98));

stopGame.setForeground(new Color(128,64,0));

stopGame.setFont(new Font("华文行楷",1,30 ));

JLabel jlScore = new JLabel("分数:");

jlScore.setForeground(new Color(128,64,0));

jlScore.setFont(new Font("华文行楷",1,22 ));

//JLabel jlHard = new JLabel("难度");

//jlHard.setForeground(new Color(128,64,0));

//jlHard.setFont(new Font("华文行楷",1,22 ));

//JSlider slider = new JSlider(5,20);

//slider.setBackground(new Color(168,132,98));

//slider.setSnapToTicks(true);

//slider.setPaintTicks(false);

//slider.setMajorTickSpacing(0);

//slider.setMinorTickSpacing(0);

//设定布局

setLayout(null);

//添加组件

add(jlTitle);

jlTitle.setBounds(0,0,800,70);

add(newGame);

newGame.setBounds(40, 120, 120, 40);

add(jlScore);

jlScore.setBounds(30,210,100,80);

//add(jlHard);

//jlHard.setBounds(30,220,70,40);

add(stopGame);

stopGame.setBounds(40,320,120,40);

add(jlLgio);

jlLgio.setBounds(15,370,180,230);

add(jlMap);

jlMap.setBounds(210,80,580,480);

//add(slider);

//slider.setBounds(100,230,100,20);

//设置窗体颜色

this.setBackground(new Color(168,132,98));

//设置监听器

newGame.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

//newGame.setEnabled(false);

if(snake.start == false && snake.failed == true){

music();

snake.setup();

snake.start = true;

requestFocus(true);

}

if(snake.start == true){

requestFocus(true);

}

if(snake.start == false && snake.failed == false){

snake.setup();

snake.start = true;

snake.failed = true;

requestFocus(true);

}

}

});

stopGame.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

System.exit(0);

}

});

//添加键盘监听

addKeyListener(new KeyAdapter(){

public void keyPressed(KeyEvent e){

if(snake.start && snake.failed){

if(e.getKeyCode() == KeyEvent.VK_UP && snake.j !=20 && snake.isMove == false){

snake.j = -20;

snake.i = 0;

snake.isMove = true;

}

if(e.getKeyCode() == KeyEvent.VK_DOWN && snake.j != -20 && snake.isMove == false){

snake.j = 20;

snake.i = 0;

snake.isMove = true;

}

if(e.getKeyCode() ==KeyEvent.VK_LEFT && snake.i != 20 && snake.isMove == false){

snake.i = -20;

snake.j = 0;

snake.isMove = true;

}

if(e.getKeyCode() == KeyEvent.VK_RIGHT && snake.i != -20 && snake.isMove == false){

snake.i = 20;

snake.j = 0;

snake.isMove = true;

}

if(e.getKeyCode() == KeyEvent.VK_SPACE && snake.pause == true)

snake.pause = false;

else if(e.getKeyCode() == KeyEvent.VK_SPACE && snake.pause == false){

snake.pause = true;

Thread thread2 = new Thread(sm);

thread2.start();

requestFocus(true);

}

}

}

});

Thread thread=new Thread(sm);

thread.start();

}

public void run(){

while(snake.pause){

snake.move();

repaint();

try{

Thread.sleep(400 - 50*snake.speed);

}catch(Exception e){}

}

}

/*if(snakex[0] == 370 && snakey[0] == 400){

snakex[0] = 610;

snakey[0] = 280;

}

else if(snakex[0] == 610 && snakey[0] == 280){

snakex[0] = 370;

snakey[0] = 400;

}*/

public void music(){

try{

File f = new File("faded.wav");

URI uri = f.toURI();

URL url = uri.toURL();

AudioClip aau = Applet.newAudioClip(url);

aau.loop();

}catch(Exception e){

e.printStackTrace();

}

}

//调用paint方法

public void paint(Graphics g){

super.paint(g);

//画出地图 左上角(210,80) 右下角(790,560)

g.drawRect(200,70,600,500);

g.drawRect(210,80,580,480);

g.fillRect(200,70,600,10);

g.fillRect(200,70,10,500);

g.fillRect(200,560,600,10);

g.fillRect(790,70,10,500);

//画出蛇、食物

if(snake.start && snake.failed){

eatIcon.paintIcon(this , g , snake.food.eatx , snake.food.eaty);

heidong.paintIcon(this , g , 370 , 400);

heidong.paintIcon(this , g , 610 , 280);

g.setColor(new Color(255,0,0));

g.fillOval(snake.snakex[0] , snake.snakey[0] , 20 , 20);

Graphics2D g1 = (Graphics2D) g;

g1.setPaint(new GradientPaint(168,132,Color.CYAN,185,210,Color.MAGENTA,true));

for(int m = 1 ; m < snake.len ; m ++){

g.fillOval(snake.snakex[m] , snake.snakey[m] , 20 , 20);

}

g.setColor(new Color(128,64,0));

g.setFont(new Font("华文行楷",Font.BOLD, 30));

g.drawString(""+snake.score, 100, 260);

}

if (!snake.failed){

g.setColor(new Color(128,64,0));

g.setFont(new Font("华文行楷",Font.BOLD, 30));

g.drawString(""+snake.score, 100, 200);

g.setColor(new Color(168,132,98));

g.setFont(new Font("arial",Font.BOLD, 30));

g.drawString("Game Over ! Press start to restart", 200, 300);

}

}

}

694748ed64b9390909c0d88230893790.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值