资源简介
俄罗斯方块具体设计(Java描述)
带详细文档说明
带详细文档说明
代码片段和文件信息
/*
*12.24日完成了蛇撞到自己的检测.修改方法是在蛇的初始化的时候用双循环来置FALSE;
* 在重写代码的时候我借鉴了别人的思路:将整个游戏的界面定义为一个布尔型的二维数组.
* 用一个linkedList来储存蛇.当蛇移动的时候在蛇的头部增加一个节点然后删除最后一个节点.
* 因为只是做练习所以没做游戏界面比如菜单栏计分栏什么的.另外还有一个问题,就是当两次点击回车时,蛇的移动速度会变快
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class Game {
public static void main(String args[]) {
Gameframe frame = new Gameframe();
frame.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.show();
JOptionPane.showMessageDialog(null “上下左右控制蛇的方向\n回车开始S暂停“);
}
}
class Gameframe extends Jframe {
public Gameframe() {
setSize(294 482);
settitle(“贪吃蛇DEMO“);
this.setLocation(360 100);
Container c = getContentPane();
GamePanel panel = new GamePanel();
c.add(panel BorderLayout.CENTER);
}
}
class GamePanel extends JPanel implements KeyListener {
static int panelWidth = 294;
static int panelHeight = 450;
int rectX = 15;
int rectY = 15;
Snake snake;
Node n;
public GamePanel() {
snake = new Snake(this panelWidth / rectX panelHeight / rectY);
setBackground(Color.WHITE);
setSize(panelWidth panelHeight);
setFocusable(true);
addKeyListener(this);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
linkedList list = snake.snakeList;
Iterator it = list.iterator();
g2.setColor(Color.black);
while (it.hasNext()) {
n = (Node) it.next();
drawNode(g2 n);
}
g2.setColor(Color.ORANGE);
Node f = snake.food;
drawNode(g2 f);
snake.drawMap(g2);// 绘制地图
}
public void keyPressed(KeyEvent e) {
int keycode = e.getKeyCode();
if (keycode == KeyEvent.VK_ENTER) {
begin();
} else if (keycode == KeyEvent.VK_UP) {
snake.changeDirection(Snake.up);
} else if (keycode == KeyEvent.VK_DOWN) {
snake.changeDirection(Snake.down);
} else if (keycode == KeyEvent.VK_LEFT) {
snake.changeDirection(Snake.left);
} else if (keycode == KeyEvent.VK_RIGHT) {
snake.changeDirection(Snake.right);
} else if (keycode == KeyEvent.VK_S) {
Snake.run = false;
}
}
public void keyReleased(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
public void drawNode(Graphics2D g Node n) {
g.fillRect(n.x * rectX n.y * rectY rectX - 2 rectY - 2);
}
public void begin() {
Snake.run = true;
SnakeThread thread = new SnakeThread(snake);
thread.start();
}
}
class Node {
int x;
int y;
public Node(int x int y) {
this.x = x;
this.y = y;
}
}
class SnakeThread extends Thread {
Snake snake;
public SnakeThread(Snake s) {
snake = s;
}
public void run() {
Snake.run = true;
while (Snake.run) {
try {
snake.move();
sleep(200);
} catch (InterruptedException e) {
}
}
Snake.run = false;
}
}
class Snake {
GamePanel panel;
Node food;
boolean[][] all;
public sta
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 32560 2006-03-13 21:49 俄罗斯方块具体设计\ErsBlocksGame.jar
文件 5511 2008-03-21 22:18 俄罗斯方块具体设计\GreedySnake.java
文件 2338 2006-03-13 21:20 俄罗斯方块具体设计\source code\AboutDialog.java
文件 2031 2006-03-13 21:20 俄罗斯方块具体设计\source code\Aboutinfo.java
文件 8590 2006-03-13 21:21 俄罗斯方块具体设计\source code\ControlPanel.java
文件 6687 2006-03-13 21:25 俄罗斯方块具体设计\source code\ErsBlock.java
文件 16400 2006-03-13 21:23 俄罗斯方块具体设计\source code\ErsBlocksGame.java
文件 1716 2006-03-13 21:23 俄罗斯方块具体设计\source code\ErsBox.java
文件 4685 2006-03-13 21:22 俄罗斯方块具体设计\source code\GameCanvas.java
文件 68096 2007-05-05 11:44 俄罗斯方块具体设计\文档.doc
目录 0 2008-10-17 17:43 俄罗斯方块具体设计\source code
目录 0 2008-04-14 11:34 俄罗斯方块具体设计
----------- --------- ---------- ----- ----
148614 12
- 上一篇:用JAVA做的通讯录(精简版)
- 下一篇:java实现POS系统源码
相关资源
- java实现POS系统源码
- 用JAVA做的通讯录(精简版)
- java数据库版学生成绩管理系统
- 基于java聊天室(gui)
- Java版聊天程序(UDP TCP 多线程)
-
java操作xm
l文件的一个简单代码 - 简单qq聊天(Java socket实现)
- java多人五子棋源码
- java多线程编程 在主线程main中创建两
- JAVA计算器实验报告与源码
- 人事信息管理系统 java课程设计
- 学生信息管理系统 JAVA课程设计
- 自己用java写的计算器源代码(代码注
- 棋盘覆盖---JAVA版
- 语音识别 sphinx4 JAVA 教程
- 用Java实现TCP通信
- java SQLServer做的员工管理系统
- JAVA坦克大战游戏源代码
- 用Java编写的扫雷游戏源代码
- 采用TCP SOCKET技术编写C/S模式的java聊天
- 《java程序设计》书附源代码
- Java程序设计考试试卷和答案(共4套)
- java做的人事档案管理系统
- java 局域网数据包嗅探
- Java 透明按钮 Java透明按钮
- Java写的递归下降分析程序
- 北大青鸟accp5.0java第四章理论加上机作
- java用spring struts hibernate做的学生成绩
- jsp mysql tomcat学生信息管理系统
- 科研管理系统 java swing mysql
评论
共有 条评论