日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

源代碼--java寫小游戲,吞食蛇

瀏覽:181日期:2024-06-23 17:26:32
內容: java新手,簡單的吞食蛇游戲,一邊寫一邊查書,寫了半天才弄出來沒法把jar文件附在文章后面,想試試的人自己編譯一下吧有意見盡管提,高手多多指導,不過罵人就算了///////////////////////////////////////////////////// 文件1///////////////////////////////////////////////////import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class GreedSnake implements KeyListener{ JFrame mainFrame; Canvas paintCanvas; JLabel labelScore; SnakeModel snakeModel = null; public static final int canvasWidth = 200; public static final int canvasHeight = 300; public static final int nodeWidth = 10; public static final int nodeHeight = 10; public GreedSnake() { mainFrame = new JFrame('GreedSnake'); Container cp = mainFrame.getContentPane(); labelScore = new JLabel('Score:'); cp.add(labelScore, BorderLayout.NORTH); paintCanvas = new Canvas(); paintCanvas.setSize(canvasWidth+1,canvasHeight+1); paintCanvas.addKeyListener(this); cp.add(paintCanvas, BorderLayout.CENTER); JPanel panelButtom = new JPanel(); panelButtom.setLayout(new BorderLayout()); JLabel labelHelp; labelHelp = new JLabel('PageUp, PageDown for speed;', JLabel.CENTER); panelButtom.add(labelHelp, BorderLayout.NORTH); labelHelp = new JLabel('ENTER or R or S for start;', JLabel.CENTER); panelButtom.add(labelHelp, BorderLayout.CENTER); labelHelp = new JLabel('SPACE or P for pause',JLabel.CENTER); panelButtom.add(labelHelp, BorderLayout.SOUTH); cp.add(panelButtom,BorderLayout.SOUTH); mainFrame.addKeyListener(this); mainFrame.pack(); mainFrame.setResizable(false); mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainFrame.setVisible(true); begin(); } public void keyPressed(KeyEvent e){ int keyCode = e.getKeyCode(); if (snakeModel.running) switch(keyCode){ case KeyEvent.VK_UP: snakeModel.changeDirection(SnakeModel.UP); break; case KeyEvent.VK_DOWN: snakeModel.changeDirection(SnakeModel.DOWN); break; case KeyEvent.VK_LEFT: snakeModel.changeDirection(SnakeModel.LEFT); break; case KeyEvent.VK_RIGHT: snakeModel.changeDirection(SnakeModel.RIGHT); break; case KeyEvent.VK_ADD: case KeyEvent.VK_PAGE_UP: snakeModel.speedUp(); break; case KeyEvent.VK_SUBTRACT: case KeyEvent.VK_PAGE_DOWN: snakeModel.speedDown(); break; case KeyEvent.VK_SPACE: case KeyEvent.VK_P: snakeModel.changePauseState(); break; default: } if (keyCode == KeyEvent.VK_R || keyCode == KeyEvent.VK_S || keyCode == KeyEvent.VK_ENTER){ snakeModel.running = false; begin(); } } public void keyReleased(KeyEvent e){ } public void keyTyped(KeyEvent e){ } void repaint(){ Graphics g = paintCanvas.getGraphics(); //draw background g.setColor(Color.WHITE); g.fillRect(0,0,canvasWidth,canvasHeight); // draw the snake g.setColor(Color.BLACK); LinkedList na = snakeModel.nodeArray; Iterator it = na.iterator(); while(it.hasNext()){ Node n = (Node)it.next(); drawNode(g,n); } // draw the food g.setColor(Color.RED); Node n = snakeModel.food; drawNode(g,n); updateScore(); } private void drawNode(Graphics g, Node n){ g.fillRect(n.x*nodeWidth, n.y*nodeHeight, nodeWidth-1, nodeHeight-1); } public void updateScore(){ String s = 'Score: ' + snakeModel.score; labelScore.setText(s); } void begin(){ if (snakeModel == null || !snakeModel.running){ snakeModel = new SnakeModel(this, canvasWidth/nodeWidth, canvasHeight/nodeHeight); (new Thread(snakeModel)).start(); } } public static void main(String[] args){ GreedSnake gs = new GreedSnake(); }}///////////////////////////////////////////////////// 文件2///////////////////////////////////////////////////import java.util.*;import javax.swing.*;class SnakeModel implements Runnable{ GreedSnake gs; boolean[][] matrix; LinkedList nodeArray = new LinkedList(); Node food; int maxX; int maxY; int direction = 2; boolean running = false; int timeInterval = 200; double speedChangeRate = 0.75; boolean paused = false; int score = 0; int countMove = 0; // UP and DOWN should be even // RIGHT and LEFT should be odd public static final int UP = 2; public static final int DOWN = 4; public static final int LEFT = 1; public static final int RIGHT = 3; public SnakeModel(GreedSnake gs, int maxX, int maxY){ this.gs = gs; this.maxX = maxX; this.maxY = maxY; // initial matirx matrix = new boolean[maxX][]; for(int i=0; i 20 ? 10 : maxX/2; for(int i = 0; i < initArrayLength; ++i){ int x = maxX/2+i; int y = maxY/2; nodeArray.addLast(new Node(x, y)); matrix[x][y] = true; } food = createFood(); matrix[food.x][food.y] = true; } public void changeDirection(int newDirection){ if (direction % 2 != newDirection % 2){ direction = newDirection; } } public boolean moveOn(){ Node n = (Node)nodeArray.getFirst(); int x = n.x; int y = n.y; switch(direction){ case UP: y--; break; case DOWN: y++; break; case LEFT: x--; break; case RIGHT: x++; break; } if ((0
標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品中文| 综合干狼人综合首页| 久久精品一区二区国产| 国产专区精品| 久久青草久久| 国产精品一页| 午夜国产精品视频免费体验区| 亚洲精品国模| 久久久蜜桃一区二区人| 奇米亚洲欧美| 1024精品一区二区三区| 国产精品1区| 欧美中文字幕| 免费高潮视频95在线观看网站| 日韩精品久久理论片| 999久久久免费精品国产| 久久精品国产网站| 国产精品91一区二区三区| 老牛国内精品亚洲成av人片| 亚洲免费专区| 99视频在线精品国自产拍免费观看| 麻豆精品蜜桃视频网站| 亚州欧美在线| 日韩精品一级二级 | 久久精品72免费观看| 亚洲一区二区三区在线免费| 99国产精品久久久久久久| 日韩av在线播放中文字幕| 日韩**一区毛片| 91嫩草精品| 免费日韩一区二区三区| 欧美aⅴ一区二区三区视频| 四季av一区二区凹凸精品| 国产精品二区影院| 国产精品红桃| 国产aⅴ精品一区二区四区| 色乱码一区二区三区网站| 久久精品观看| 日本大胆欧美人术艺术动态| 国产精品美女久久久浪潮软件| 亚洲另类视频| 国产精品麻豆久久| 免播放器亚洲| 久久精品福利| 久久精品观看| 日韩和欧美的一区| av资源亚洲| 亚洲青青久久| 91精品韩国| 欧美一级网站| 91久久中文| 成人污污视频| 欧美久久一区二区三区| 免费日韩av| 99视频在线精品国自产拍免费观看| 国产精品伦理久久久久久| 国产日韩中文在线中文字幕| 久久亚洲视频| 亚洲婷婷丁香| 国产综合精品| 99精品视频在线| 999国产精品| 99精品视频在线观看免费播放| 国产精品久久久久av蜜臀| 国产另类在线| 国产a亚洲精品| 亚洲成人av观看| 久久天堂成人| 99视频一区| 亚洲精选久久| 牛牛精品成人免费视频| 国产精品毛片视频| av中文字幕在线观看第一页 | 麻豆精品少妇| 日本在线高清| 蜜臀av免费一区二区三区| 在线观看精品| 在线精品一区| 国产一区二区三区免费在线| 久久精品官网| 欧美一区在线观看视频| 精品视频久久| 91久久国产| 青青草国产精品亚洲专区无| 国产精品igao视频网网址不卡日韩 | 久久人人97超碰国产公开结果| 欧美成人综合| 日韩av不卡一区二区| 麻豆视频在线观看免费网站黄| 亚洲欧洲一区| 麻豆国产精品一区二区三区| 久久精品亚洲人成影院| 日韩高清成人在线| 日韩一区二区中文| 中文字幕av亚洲精品一部二部| 国产日韩免费| 久久久精品五月天| 日本大胆欧美人术艺术动态| 国产精久久一区二区| 久久国产精品成人免费观看的软件| 久久国产成人| 国产精品久久观看| 日本久久二区| 三级亚洲高清视频| 国产黄大片在线观看| 日韩精品中文字幕吗一区二区| 日韩av一级| 国产精品v一区二区三区| 日韩中文欧美在线| 久久免费国产| 亚洲综合电影| 久久精品资源| 国产精品日本| 国产主播一区| 一本大道色婷婷在线| 日韩av一二三| 首页国产欧美久久| 久久精品欧美一区| 婷婷综合六月| 日本不卡免费高清视频在线| 精品久久久久久久| 久久久久九九精品影院| 欧美影院视频| 久久国产欧美日韩精品| 日本aⅴ亚洲精品中文乱码| 视频在线观看91| 亚洲深爱激情| 999国产精品永久免费视频app| 激情综合婷婷| 久久青青视频| 九九精品调教| 99久久九九| 欧美日韩视频一区二区三区| 欧美日韩国产精品一区二区亚洲| 天堂资源在线亚洲| 亚洲欧美日韩精品一区二区| 视频一区二区欧美| 欧美综合精品| 九九99久久精品在免费线bt| 久久久久久色 | 国产丝袜一区| 国产精品宾馆| 欧美国产美女| av亚洲免费| 日韩精品中文字幕吗一区二区| 欧美在线精品一区| 国产v日韩v欧美v| 免费观看不卡av| 亚洲天堂免费| 国产欧美一区二区三区米奇| 久久精品人人| 欧美成人基地| 伊人久久大香伊蕉在人线观看热v| 久久不射网站| 日本视频中文字幕一区二区三区| 国产精品啊v在线| 亚洲婷婷在线| 国产精品一站二站| 亚洲先锋成人| 国产日韩欧美三区| 午夜久久一区| 成人日韩av| 亚欧洲精品视频在线观看| 亚洲黄色中文字幕| 亚洲综合激情在线| 日韩免费视频| 国产精品白浆| 中文字幕av亚洲精品一部二部 | 婷婷精品在线| 国产韩日影视精品| 欧美激情精品| 久久狠狠亚洲综合| 亚洲一区欧美二区| 麻豆视频在线观看免费网站黄| 日韩成人在线看| 在线一区免费观看| 97欧美在线视频| 国产乱码精品一区二区三区四区 | 国产96在线亚洲| 中文字幕一区二区三区四区久久| 成人台湾亚洲精品一区二区| 日韩高清二区| 日韩一区二区三区四区五区| 在线日韩av| 久久激情婷婷| 日韩欧美二区| 日韩电影在线视频| 精品国产欧美日韩一区二区三区| 亚洲欧洲专区| 日本在线不卡视频| 亚洲毛片网站| 日韩中出av| 亚洲精品四区| 亚洲精品美女| 日韩在线电影| 亚洲综合中文| 国产午夜一区| 国产精品一区二区三区av麻| 日韩和欧美一区二区三区| 青青草国产成人99久久|