import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Yard extends Frame{
//作者:ckf
public static int HANG=30;
public static int LIE=30;
public static int BIAN=15;//修改时考虑边框,上30
public static int KaiShiHang=60/BIAN;
Image offScreen=null;
Snake MySnake=new Snake(10,10,Dir.D,this);
Egg egg=new Egg();
void start(){
setSize(LIE*BIAN,HANG*BIAN);
setLocation(200, 200);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setResizable(false);
setVisible(true);
addKeyListener(new KeyMonitor());
new Thread(new PaintThread()).start();
}
public void update(Graphics g) {
if(null==offScreen){offScreen=this.createImage(LIE*BIAN,HANG*BIAN);
}
Graphics OSg=offScreen.getGraphics();
paint(OSg);
g.drawImage(offScreen, 0, 0, null);
}
public void paint(Graphics g) {
Color c=g.getColor();
g.setColor(Color.white);
g.fillRect(0, 0, LIE*BIAN, HANG*BIAN);
g.setColor(Color.blue);
g.drawString("已经吃了"+egg.n+"个",20, (KaiShiHang-1)*BIAN );
switch(egg.n){
case 0:break;
case 1:g.drawString("头衔:学员",110, (KaiShiHang-1)*BIAN );break;
case 2:g.drawString("头衔:新兵",110, (KaiShiHang-1)*BIAN );break;
case 3:g.drawString("头衔:列兵",110, (KaiShiHang-1)*BIAN );break;
case 4:g.drawString("头衔:上等兵",110, (KaiShiHang-1)*BIAN );break;
case 5:g.drawString("头衔:一级士官(初级士官)",110, (KaiShiHang-1)*BIAN );break;
case 6:g.drawString("头衔:二级士官(初级士官)",110, (KaiShiHang-1)*BIAN );break;
case 7:g.drawString("头衔:三级士官(中等士官)",110, (KaiShiHang-1)*BIAN );break;
case 8:g.drawString("头衔:四级士官(中等士官)",110, (KaiShiHang-1)*BIAN );break;
case 9:g.drawString("头衔:五级士官(高等士官)",110, (KaiShiHang-1)*BIAN );break;
case 10:g.drawString("头衔:六级士官(高等士官)",110, (KaiShiHang-1)*BIAN );break;
case 11:g.drawString("头衔:少尉",110, (KaiShiHang-1)*BIAN );break;
case 12:g.drawString("头衔:中尉",110, (KaiShiHang-1)*BIAN );break;
case 13:g.drawString("头衔:上尉",110, (KaiShiHang-1)*BIAN );break;
case 14:g.drawString("头衔:少校",110, (KaiShiHang-1)*BIAN );break;
case 15:g.drawString("头衔:中校",110, (KaiShiHang-1)*BIAN );break;
case 16:g.drawString("头衔:上校",110, (KaiShiHang-1)*BIAN );break;
case 17:g.drawString("头衔:大校",110, (KaiShiHang-1)*BIAN );break;
case 18:g.drawString("头衔:少将",110, (KaiShiHang-1)*BIAN );break;
case 19:g.drawString("头衔:中将",110, (KaiShiHang-1)*BIAN );break;
case 20:g.drawString("头衔:上将",110, (KaiShiHang-1)*BIAN );break;
case 21:g.drawString("头衔:大元帅",110, (KaiShiHang-1)*BIAN );break;
default :g.drawString("头衔:大元帅",110, (KaiShiHang-1)*BIAN );break;
}
if(false==this.MySnake.life)
g.drawString("GAME OVER!",(int)(LIE/4*3)*BIAN, (KaiShiHang-1)*BIAN );
g.setColor(Color.DARK_GRAY);
for (int i=KaiShiHang;i<HANG;i++){
g.drawLine(0,BIAN*i,LIE*BIAN, BIAN*i);
}
for (int i=1;i<LIE;i++){
g.drawLine(BIAN*i,KaiShiHang*BIAN, BIAN*i,LIE*BIAN);
}
MySnake.draw(g);
egg.draw(g);
g.setColor(c);
}
public class PaintThread implements Runnable{
public void run() {
int min=200;
while(true){
repaint();
try {
if ((min=180-egg.n*10)>20){
Thread.sleep(min);}else{Thread.sleep(20);}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class KeyMonitor extends KeyAdapter{
public void keyPressed(KeyEvent e) {
MySnake.KeyPressed(e);
}
}
public static void main(String[] args) {
new Yard().start();
}
}
java军衔版,贪吃蛇!(含源代码)
需积分: 0 112 浏览量
2009-06-18
22:05:56
上传
评论
收藏 11KB RAR 举报
yiyickf
- 粉丝: 2
- 资源: 7
最新资源
- 基于C51带字库LCD12864(ST7920)的keil工程源码,只支持8位并口通讯(不支持串口),可显示中文.zip
- 基于SI4463射频模块433MD-SMA无线模块软硬件技术资料及(SI4463)IC技术资料文档.zip
- (GPS+北斗+GSM)HLK-GS2503模块软硬件开发资料包硬件参考设计(原理图PCB)+技术文档资料.zip
- 基于BERT+Biaffine结构的关系抽取模型源码+文档说明.zip
- 利用c语言编写的冒泡排序代码
- 基于Ansoft-HFSS知识总结hfss中文教程HFSS培训教材等技术资料合集(50个).zip
- 基于Python+OpenCV的材料缺陷检测程序项目源码课程设计.zip
- 基于c语言实现的二叉树代码
- pip利用清华镜像源下载matplotlib代码
- Python的pyqt5写的图书管理系统期末大作业源码带文档设计.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈