導航:首頁 > 教學大全 > java貪吃蛇教學視頻教程

java貪吃蛇教學視頻教程

發布時間:2020-12-26 11:29:40

『壹』 尚學堂科技_馬士兵_JAVA視頻教程-貪吃蛇 有資源的給個,或有QQ傳也行,QQ471281778

應該能找到吧,電驢上有啊,你想要?等會給你呵。。

『貳』 系統、完整的Javaweb教學視頻,希望自帶詳細項目,最好是百度雲盤的。

學好jave其實來不難源,整理的一份不錯的視頻教程:
https://pan..com/s/1IE5gpmwJfIMJRZwOMxgFZQ

『叄』 java基礎全套視頻教程

現在網路這么發達,很多質量好而且免費的Java視頻可以下載,例如:騰訊課堂、網路傳課等平台搜動力節點,就會有很多java視頻了。

『肆』 跟著慕課網自學了java的基礎,然後找了個做貪吃蛇的視頻,發現裡面有很多系統給我們寫好的類

查api手冊最快。沒有教程是一個類一個類教你的。

『伍』 誰有用Myeclipse開發圖形化java程序的教學視頻,比如貪吃蛇等,

我做的有這個項目!貪食蛇的話 其實比較簡單 你只要有個時序圖就可以了!無非就一個蛇、一個食物、和一個平台。比較簡單!

『陸』 有沒有java貪吃蛇視頻教程

你到傳播智客JAVA學院,那裡有一個挺不錯

『柒』 哪哪裡有java開發俄羅斯方塊、貪吃蛇之類的游戲大全視頻教學

您好,提問者:
地址內:容http://dl.vmall.com/c0xcwyahcr

『捌』 JAVA貪吃蛇課程怎麼處理食物的隨機性

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
public class InterFace extends JFrame {
/**
* WIDTH:寬
* HEIGHT:高
* SLEEPTIME:可以看作蛇運動的速度
* L = 1,R = 2, U = 3, D = 4 左右上下代碼
*/
public static final int WIDTH = 800, HEIGHT = 600, SLEEPTIME = 200, L = 1,R = 2, U = 3, D = 4;
BufferedImage offersetImage= new BufferedImage(WIDTH, HEIGHT,BufferedImage.TYPE_3BYTE_BGR);;
Rectangle rect = new Rectangle(20, 40, 15 * 50, 15 * 35);
Snake snake;
Node node;
public InterFace() {
//創建"蛇"對象
snake = new Snake(this);
//創建"食物"對象
createNode();
this.setBounds(100, 100, WIDTH, HEIGHT);
//添加鍵盤監聽器
this.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent arg0) {
System.out.println(arg0.getKeyCode());
switch (arg0.getKeyCode()) {
//映射上下左右4個鍵位
case KeyEvent.VK_LEFT:
snake.dir = L;
break;
case KeyEvent.VK_RIGHT:
snake.dir = R;
break;
case KeyEvent.VK_UP:
snake.dir = U;
break;
case KeyEvent.VK_DOWN:
snake.dir = D;
}
}
});
this.setTitle("貪吃蛇 0.1 By : Easy");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
//啟動線程,開始執行
new Thread(new ThreadUpadte()).start();
}
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) offersetImage.getGraphics();
g2d.setColor(Color.white);
g2d.fillRect(0, 0, WIDTH, HEIGHT);
g2d.setColor(Color.black);
g2d.drawRect(rect.x, rect.y, rect.width, rect.height);
//如果蛇碰撞(吃)到食物,則創建新食物
if (snake.hit(node)) {
createNode();
}
snake.draw(g2d);
node.draw(g2d);
g.drawImage(offersetImage, 0, 0, null);
}
class ThreadUpadte implements Runnable {
public void run() {
//無限重繪畫面
while (true) {
try {
Thread.sleep(SLEEPTIME);
repaint(); //
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
/**
* 創建食物
*/
public void createNode() {
//隨機食物的出現位置
int x = (int) (Math.random() * 650) + 50,y = (int) (Math.random() * 500) + 50;
Color color = Color.blue;
node = new Node(x, y, color);
}
public static void main(String args[]) {
new InterFace();
}
}
/**
* 節點類(包括食物和蛇的身軀組成節點)
*/
class Node {
int x, y, width = 15, height = 15;
Color color;
public Node(int x, int y, Color color) {
this(x, y);
this.color = color;
}
public Node(int x, int y) {
this.x = x;
this.y = y;
this.color = color.black;
}
public void draw(Graphics2D g2d) {
g2d.setColor(color);
g2d.drawRect(x, y, width, height);
}
public Rectangle getRect() {
return new Rectangle(x, y, width, height);
}
}
/**
* 蛇
*/
class Snake {
public List<Node> nodes = new ArrayList<Node>();
InterFace interFace;
int dir=InterFace.R;
public Snake(InterFace interFace) {
this.interFace = interFace;
nodes.add(new Node(20 + 150, 40 + 150));
addNode();
}
/**
* 是否碰撞到食物
* @return true 是 false 否
*/
public boolean hit(Node node) {
//遍歷整個蛇體是否與食物碰撞
for (int i = 0; i < nodes.size(); i++) {
if (nodes.get(i).getRect().intersects(node.getRect())) {
addNode();
return true;
}
}
return false;
}
public void draw(Graphics2D g2d) {
for (int i = 0; i < nodes.size(); i++) {
nodes.get(i).draw(g2d);
}
move();
}
public void move() {
nodes.remove((nodes.size() - 1));
addNode();
}
public synchronized void addNode() {
Node nodeTempNode = nodes.get(0);
//如果方向
switch (dir) {
case InterFace.L:
//判斷是否會撞牆
if (nodeTempNode.x <= 20) {
nodeTempNode = new Node(20 + 15 * 50, nodeTempNode.y);
}
nodes.add(0, new Node(nodeTempNode.x - nodeTempNode.width,
nodeTempNode.y));
break;
case InterFace.R:
//判斷是否會撞牆
if (nodeTempNode.x >= 20 + 15 * 50 - nodeTempNode.width) {
nodeTempNode = new Node(20 - nodeTempNode.width, nodeTempNode.y);
}
nodes.add(0, new Node(nodeTempNode.x + nodeTempNode.width,
nodeTempNode.y));
break;
case InterFace.U:
//判斷是否會撞牆
if (nodeTempNode.y <= 40) {
nodeTempNode = new Node(nodeTempNode.x, 40 + 15 * 35);
}
nodes.add(0, new Node(nodeTempNode.x, nodeTempNode.y - nodeTempNode.height));
break;
case InterFace.D:
//判斷是否會撞牆
if (nodeTempNode.y >= 40 + 15 * 35 - nodeTempNode.height) {
nodeTempNode = new Node(nodeTempNode.x,40 - nodeTempNode.height);
}
nodes.add(0, new Node(nodeTempNode.x, nodeTempNode.y + nodeTempNode.height));
break;
}
}
}

『玖』 java貪吃蛇是怎麼做出來的

/**
* MVC模式中得Viewer,只負責對數據的顯示,而不用理會游戲的控制邏輯
*/
class SnakeView implements Observer {
SnakeControl control = null; //實例話一個SnakeControl對象是control ..SnakeControl在jdk中不存在可能是第3方的或者是自己編寫的一個類吧
SnakeModel model = null;//如上

JFrame mainFrame; //創建一個面板類jframe
Canvas paintCanvas;
/**
*Canvas 組件表示屏幕上一個空白矩形區域,應用程序可以在該區域內繪圖,或者可以從該區域捕獲用戶的輸入事件。
*應用程序必須為 Canvas 類創建子類,以獲得有用的功能(如創建自定義組件)。必須重寫 paint 方法,以便在 canvas 上執行自定義圖形。
*/
JLabel labelScore;//....不說了吧..

public static final int canvasWidth = 200; //常量寬度200
public static final int canvasHeight = 300;//常量高300

public static final int nodeWidth = 10;//常量寬度10
public static final int nodeHeight = 10;//常量高度10

public SnakeView(SnakeModel model, SnakeControl control) {
this.model = model;
this.control = control;

mainFrame = new JFrame("GreedSnake");//創建jframe 標題是GreedSnake

Container cp = mainFrame.getContentPane(); //得到jfram的容器

labelScore = new JLabel("Score:"); //創建jlabel 標簽內容是"Score:"
cp.add(labelScore, BorderLayout.NORTH);/將jlabel添加到jfram的容器中去

paintCanvas = new Canvas(); //創建新繪圖區
paintCanvas.setSize(canvasWidth + 1, canvasHeight + 1); //設置繪圖區大小
paintCanvas.addKeyListener(control);//添加鍵盤監聽器control
cp.add(paintCanvas, BorderLayout.CENTER);//將繪圖區添加到jfram容器中去.布局是BorderLayout的CENTER位置.就是東西南北中的中間

JPanel panelButtom = new JPanel();//創建一個panel
panelButtom.setLayout(new BorderLayout());//設置布局是BorderLayout
JLabel labelHelp;//標簽的創建和添加開始了.......new了3遍就是實例化了3個都加到了panle的中間 ,標簽的內容都是""中間的
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);//把這個panel添加到jframe的容器裡面去

mainFrame.addKeyListener(control);//為jframe添加鍵盤監聽器
mainFrame.pack();//調整此窗口的大小,以適合其子組件的首選大小和布局。如果該窗口和/或其所有者仍不可顯示,則兩者在計算首選大小之前變得可顯示。在計算首選大小之後,將會驗證該 Window。
mainFrame.setResizable(false);//設置此 frame 是否可由用戶調整大小。false就是不能
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//點擊又上角的就是關閉
mainFrame.setVisible(true);//設置jfram為能看到
}

void repaint() {
Graphics g = paintCanvas.getGraphics();//Graphics詳細看jdk文檔..我就知道是一個所有圖形上下文的抽象基類..這里應該是那個畫圖面板

g.setColor(Color.WHITE);//設置這個顏色
g.fillRect(0, 0, canvasWidth, canvasHeight);//畫一個矩形在x,y處畫一個寬是200,高是300的矩形,

g.setColor(Color.BLACK);//顏色是黑的
LinkedList na = model.nodeArray;//LinkedList 類 List 介面的鏈接列表實現就是一個集合對象了,因為不知道SnakeModel具體是一個什麼類這里就當作這個類能得到一個集合
Iterator it = na.iterator();//得到迭代器去迭代這個集合
while (it.hasNext()) {//開始用while迭代
Node n = (Node) it.next();//得到一個集合中元素.是一個Node....這里的Node不知道是什麼對象..有待於研究
drawNode(g, n);//調用另外方法
}

g.setColor(Color.RED);//設置顏色是紅的
Node n = model.food;//得到一個新node..看來Node這里應該是一個坐標..這里的坐標就是蛇吃的那個東西
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: " + model.score;
labelScore.setText(s);
}

public void update(Observable o, Object arg) {//這個就是Observer監聽類必須實現的方法..這里是去調用repaint()方法..repaint方法就是不斷去改變畫圖版裡面的內容的
repaint();
}
}
參考資料:以下是貪吃蛇java程序一部分,我需要下面程序代碼的詳細註解...

閱讀全文

與java貪吃蛇教學視頻教程相關的資料

熱點內容
有趣的水語言教案反思 瀏覽:926
蘇教版高中語文pdf 瀏覽:49
幼兒觀察能力教案反思 瀏覽:927
托班音樂教案紅燈籠教學反思 瀏覽:232
怎樣讓學生愛上語文課培訓心得 瀏覽:404
山西統考2017語文試卷 瀏覽:805
三年級下冊語文半期考試jian參考答案 瀏覽:455
舞蹈課教學計劃表模板 瀏覽:682
2013小學體育教學工作計劃 瀏覽:393
快速波爾卡音樂教案 瀏覽:430
初高中語文語法 瀏覽:942
縣域課堂教學改革 瀏覽:349
何其芳秋天的教學設計 瀏覽:832
故事教學法在小學語文教學中的教學策略研究 瀏覽:795
朝陽區20152016期末語文 瀏覽:521
天勤教育教學點 瀏覽:534
語文九全課時特訓答案 瀏覽:679
戶外活動教案跑 瀏覽:977
2016重慶語文中考答案 瀏覽:885
大班音樂活動小白船教案及反思 瀏覽:216