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

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

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

瀏覽:186日期: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久久,三上悠亚国产精品一区二区三区
四虎影视精品| 欧美日韩视频免费观看| 日韩国产欧美在线播放| 久久精品国产亚洲一区二区三区| 黄色aa久久| 日本欧美一区二区| 国产精品久久乐| 午夜欧美在线| 国产精品香蕉| 亚洲欧美久久久| 精品久久久久中文字幕小说| 欧洲激情综合| 久久影院资源站| 在线精品福利| 欧美91视频| 日韩伦理一区| 日本不卡高清| 99日韩精品| 天堂日韩电影| 亚洲永久av| 久久中文字幕导航| 午夜国产精品视频免费体验区| 麻豆精品国产91久久久久久| 亚洲久久一区| 久久最新视频| 黄色成人91| 伊人久久大香线蕉av不卡| 国产一区二区三区四区五区| 久久国产精品免费一区二区三区| 另类激情亚洲| 欧美专区一区二区三区| 蜜桃成人av| 欧美a级片一区| 国产中文一区| 亚洲午夜91| 不卡中文字幕| 欧美日韩视频免费观看| 日韩欧美一区二区三区在线观看 | 欧美一级二级三级视频| 亚洲欧美日韩国产一区| 精品中文字幕一区二区三区av| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 日韩啪啪电影网| 日韩在线二区| 亚洲午夜在线| 亚洲黑丝一区二区| 在线观看免费一区二区| 91久久中文| 日本中文字幕视频一区| 欧美在线首页| 91一区二区三区四区| 久久视频一区| 亚洲日本欧美| 麻豆国产91在线播放| 久久激情网站| 蜜臀久久99精品久久久画质超高清| 日本免费在线视频不卡一不卡二| 久久伊人久久| 日韩视频免费| 欧美天堂一区| 中文字幕在线视频久| 99视频一区| 精品久久97| 久久亚洲风情| 深夜福利视频一区二区| 免费久久精品视频| 精品一区二区三区中文字幕视频| 欧美日韩第一| 久久中文字幕一区二区三区| 一区免费在线| 日本一区二区免费高清| 蜜桃久久久久久| 日韩大片在线| 国产欧美另类| 性色一区二区| 国产成人久久精品麻豆二区| 日韩中文字幕区一区有砖一区| 精品中文在线| 日韩国产欧美在线视频| 欧美福利专区| 日韩在线不卡| 美女毛片一区二区三区四区最新中文字幕亚洲| 久久久亚洲一区| 91欧美在线| 欧美精品1区| 日韩区一区二| 亚洲精品三级| 久久xxxx| 午夜国产精品视频| 99精品视频在线| 精品国产乱码久久久| 91成人在线| 亚洲精品欧洲| 视频一区二区国产| 欧美va亚洲va日韩∨a综合色| 国产99在线| 岛国av免费在线观看| 国产中文欧美日韩在线| 国产精品成人3p一区二区三区| 视频一区日韩| 日韩精品一区二区三区中文| 在线观看亚洲精品福利片| 三级一区在线视频先锋| 综合一区二区三区| 亚洲精品婷婷| 日韩精品免费视频人成| 日本麻豆一区二区三区视频| 欧美一区二区三区久久精品| 国产欧美一区二区色老头| 青青草91久久久久久久久| 欧美在线不卡| 九九九精品视频| 亚洲成av在线| 99在线|亚洲一区二区| 先锋影音国产一区| 欧美日韩99| 在线亚洲人成| 亚洲激情偷拍| 日本天堂一区| 日韩精品中文字幕第1页| 群体交乱之放荡娇妻一区二区| 在线日韩一区| 欧美日一区二区三区在线观看国产免| 国产精品综合色区在线观看| 国产精品欧美在线观看| 高清av不卡| 亚洲精品国模| 成人午夜网址| 伊人久久大香伊蕉在人线观看热v| 日本欧美在线| 999国产精品| 国产日韩欧美| 欧美va天堂在线| 国产精品17p| 国产精品婷婷| 国产精品亚洲一区二区在线观看| 成人在线免费观看网站| 男女精品网站| 国产理论在线| 日韩激情综合| 日韩精品首页| 国产福利一区二区精品秒拍 | 青青国产精品| 欧美日韩一二三四| 国产精品美女午夜爽爽| 久久精品动漫| 欧美国产专区| 午夜精品影视国产一区在线麻豆| 色婷婷色综合| 国产调教精品| 综合干狼人综合首页| 久久天堂av| 久久精品国产免费| 日韩激情中文字幕| 中文精品视频| 久久久久久美女精品| 久久久久久久久成人| 中文字幕日韩亚洲| 不卡一区2区| 激情六月综合| 精品理论电影在线| 欧美一级久久| 欧美片网站免费| 欧美专区一区二区三区| 精品中文一区| 午夜日本精品| 亚洲激情久久| 亚洲免费激情| 免费国产自线拍一欧美视频| 91久久久精品国产| 五月天综合网站| 欧美日韩国产传媒| 伊人影院久久| 91精品国产自产在线丝袜啪| 亚洲va久久久噜噜噜久久| 免费久久99精品国产自在现线| 免费久久久久久久久| 国产麻豆综合| 午夜亚洲福利| 国产精品sss在线观看av| 麻豆国产欧美日韩综合精品二区| 国产高清精品二区| 蜜臀国产一区| 免费视频亚洲| 亚洲色图网站| 国产精品久久久久久模特| 精品三级国产| 久久人人99| 亚洲永久精品唐人导航网址| 日韩二区在线观看| 久久精品资源| 欧美一区二区三区激情视频 | 欧美日韩国产一区精品一区| 亚洲欧美视频| 国产精品激情电影| 久久精品动漫| 91综合久久爱com| 97精品一区二区| 视频一区视频二区在线观看| 国产精品a级|