导航:首页 > 教学大全 > 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