初学java 尝试写一个贪吃蛇小游戏,怎么让“蛇”不停的动起来 现在是按一个键动一下

作者&投稿:殳咽 (若有异议请与网页底部的电邮联系)
本人用java写贪吃蛇。。。如何实现蛇的自动移动,老师说是线程,但是我的java不太好,希望能说详细点~

new Thread(new Runnable() {
public synchronized void run() {
while(true){
// 写你的每次移动方向和距离算法

try{
// 死循环内 没隔100毫秒运行一次。
Thread.sleep(100);
}catch(Exception e){}
}
}
}).start();

在注释里写你的算法就行了

蛇前进,就是根据蛇运动的方向,在前面添加一个head:addToHead();
,再把尾巴去掉deleteFromTail();
public void addToTail() {
Node node = null;
switch(tail.dir) {
case L :
node = new Node(tail.row, tail.col + 1, tail.dir);
break;
case U :
node = new Node(tail.row + 1, tail.col, tail.dir);
break;
case R :
node = new Node(tail.row, tail.col - 1, tail.dir);
break;
case D :
node = new Node(tail.row - 1, tail.col, tail.dir);
break;
}
tail.next = node;
node.prev = tail;
tail = node;
size ++;
}

public void addToHead() {
Node node = null;
switch(head.dir) {
case L :
node = new Node(head.row, head.col - 1, head.dir);
break;
case U :
node = new Node(head.row - 1, head.col, head.dir);
break;
case R :
node = new Node(head.row, head.col + 1, head.dir);
break;
case D :
node = new Node(head.row + 1, head.col, head.dir);
break;
}
node.next = head;
head.prev = node;
head = node;
size ++;
}

添加循环,跳出循环的条件设置为按了其他方向的按键或撞墙

代码没粘全啊,开头应该给出一个默认运动方向,线程里应该调用direction()函数。你看看这个吧:http://wenku.baidu.com/view/2093560c90c69ec3d5bb753d.html#39124-qzone-1-25161-f00cdc7f4857236c67481f200187bab5

while(true){

}


富民县15782817708: 初学java 尝试写一个贪吃蛇小游戏,怎么让“蛇”不停的动起来 现在是按一个键动一下 -
拔阙怡然: 代码没粘全啊,开头应该给出一个默认运动方向,线程里应该调用direction()函数.你看看这个吧:http://wenku.baidu.com/view/2093560c90c69ec3d5bb753d.html#39124-qzone-1-25161-f00cdc7f4857236c67481f200187bab5

富民县15782817708: 我想求一个Java编写的贪吃蛇游戏,要有注释和流程图最好 -
拔阙怡然: 用MVC方式实现的贪吃蛇游戏,共有4个类.运行GreedSnake运行即可.主要是观察者模式的使用,我已经添加了很多注释了.1、/* * 程序名称:贪食蛇 * 原作者...

富民县15782817708: java如何写贪吃蛇游戏界面 -
拔阙怡然: 这是一个最基本的界面,下面又不会的地方去查API import java.awt.*; import javax.swing.*; public class View { JFrame frame; Container c; JLabel backgound; JButton start; JLabel help; public void first(){ frame=new JFrame("我的贪吃蛇"); ...

富民县15782817708: 怎么用Java做贪吃蛇的游戏软件呢? -
拔阙怡然: 您好,原理:把蛇身体的每一块看成一个对象(对象存储该块的坐标和相关信息),作为节点存储在线性链表中,再设置一个变量标志蛇的方向(通过按键可以改变).一般人都是让每一个节点等于他指向的下一个节点,并让头节点改变位置来...

富民县15782817708: java编写一个贪吃蛇需要用到哪些知识 -
拔阙怡然: 用到层和数组就可以完成 用层做食物和蛇,数组则做那个蛇的活动范围即可

富民县15782817708: 求一个(贪吃蛇)的JAVA小程序,要完整的,可运行的,最好是有文档的!!! -
拔阙怡然: 看看吧,停不错的.import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.*;//Main Class public class GreedSnake extends KeyAdapter{ JFrame mainFrame; Canvas paintCanvas; JLabel labelScore;//计分牌 SnakeModel ...

富民县15782817708: 用java写贪吃蛇游戏需要学到什么程度 -
拔阙怡然: 楼主没有看到蛇移动的本质,蛇虽然是分成很多块,但他们还是一个整体,每一块的移动都和上一块有关,所以不需要对每一块都进行判断.原理:把蛇身体的每一块看成一个对象(对象存储该块的坐标和相关信息),作为节点存储在线性链表...

富民县15782817708: 贪食蛇 java 简单代码 -
拔阙怡然: 很简单啊 首先就是要有一个数组,用于保存蛇身体的信息.每吃一个东西,数组长度增加一个.读取方向键,控制蛇的方向.在循环里,不断更新数组的位置信息.把新的位置涂上色,把最后一个改成背景色 没太想好怎么说.

富民县15782817708: 贪吃蛇 java代码
拔阙怡然: import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.util.*;public class SnakeGame extends JFrame implements KeyListener{private int stat=1,direction=0,bodylen=6,headx=7,heady=8,tailx=1,taily=8,tail,foodx,foody,food;//初始...

富民县15782817708: Java 编写 贪吃蛇游戏的 大体思路是什么? -
拔阙怡然: 要代码和jar包我这有,思路我就大概讲一下:首先是要在画布上画上一个块,这就是蛇头,但是蛇是会变长的,所以需要用一个东西来存蛇,那就可以用数组、ArrayList、LinkedList、等等(我比较喜欢用LinkedList),这里虽然说的是蛇,其实...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网