有大神可以帮我用java做一个简单的打字游戏吗?急求啊,作为毕业项目用,求好心人帮忙,万分感谢 15

可以帮我做一个简单的打字吗?只要游戏开始,进入主菜单,可以选择难度,选择后进去开始游戏,键盘输入正确得分加1,错误不扣分,一定时间内没有进入下一关就i失败,此时提示游戏结... 可以帮我做一个简单的打字吗? 只要游戏开始,进入主菜单,可以选择难度,选择后进去开始游戏,键盘输入正确得分加1,错误不扣分,一定时间内没有进入下一关就i失败,此时提示游戏结束,关数提高速度也加快,不要背景音乐,毕业项目用,可以把代码尽量详细的给我注释吗?我真的看不懂,急求,分数不多,我实在没有分数,真的急求,谢谢了 展开
 我来答
miniappPD4Cv2tsMgi1g
2013-04-20 · TA获得超过211个赞
知道小有建树答主
回答量:322
采纳率:0%
帮助的人:98.1万
展开全部
import java.awt.Color;import java.awt.Font;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.*;

import javax.swing.*;
public class AzGrame extends JFrame{

/** * @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
AzGrame a=new AzGrame();
}

public AzGrame(){

/**
*
this.setEnabled(false);窗口定死,不可移动,不可关闭,不可大小化.
this.setFocusableWindowState(false);窗口边匡透明
*/

MyPant mp=new MyPant();
new Thread(mp).start();
this.add(mp);
this.addKeyListener(mp);
this.setResizable(false);//设置窗口大小不可改变
int width=Toolkit.getDefaultToolkit().getScreenSize().width;//得到屏草幕的宽度
int height=Toolkit.getDefaultToolkit().getScreenSize().height;//得到屏幕的高度
this.setLocation(width/2-500, height/2-300);//设置窗口初始位置.
this.setSize(500,300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}

class MyPant extends JPanel implements KeyListener,Runnable{

int who;
String str[]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X",
"Y","Z"};

boolean b=true;

int x=0,y=0,slep=100,guan=1,fen=0;//定义,字母x y坐标,下降的速度slep,第几关guan,分数fen

public MyPant(){

}

public void paint(Graphics g){
super.paint(g);
g.setFont(new Font("宋体",Font.BOLD,20));
g.fillRect(0, 0, this.getWidth()-100, this.getHeight());
g.drawString("第"+guan+"关", this.getWidth()-90, 30);//显示关数.
g.drawString("你得了"+fen, this.getWidth()-90, 70);//显示分数
g.setColor(Color.magenta);

this.drawABC(x, y, g,who);

}

public void drawABC(int x,int y,Graphics g,int who){

g.drawString(str[who], x, y);

}

@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub 按下

if(e.getKeyText(e.getKeyCode()).equals(str[who])){
//上if(y>0)y--;
System.out.println(e.getKeyText(e.getKeyCode()));
fen++;
b=false;

}
this.repaint();

}

@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub 松开

}

@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub 一个键被输出

}

@Override public void run() {

// TODO Auto-generated method stub

int isfen=0;//这个变量用来计算,每关总共应该得到多少,不管你对或不对都算,用于判断你的得分够不够过关.

//先判断,你的分数是否大于应有得分减掉20,也就是你有20次出错的机会,
if(fen>isfen-20){
//总共有多少关,我这里设置10关.,
for(int i=0;i<10;i++){

slep=slep-(i*10);//加快速度 每关加快10毫秒

//这层循环,让字母产随机产生.第一关为150个字母,后面每关减少10个.
for(int j=0;j<(150-(i*10));j++){

who=(int)(Math.random()*26);//随机产生一个数,用来判断显示出哪个字母.也就是做为str[who]的下标用.
x=(int)(Math.random()*350);//让字母的X坐标随机产和,在0到350之间,画面中字母的降落点就会不一样
b=true;//这个boolean用来限制 线程的.true就出字线.false就是你按的键对了,或者,字母跑出边界了.
y=0;//将y复位,字母才会从上面下来,不复位就不从上面下来,直接就在下面看不到了.

while(b){
try {
Thread.sleep(slep);

} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

if(y<this.getHeight()){
y++;
}else {
b=false;
}

this.repaint();
}
}
}
}else{
this.repaint();

}
}

}

}
更多追问追答
追问
你这个是自己写的吗?   可以把游戏运行起来吗?  你的代码里有的我好像没有教过呢
追答
可以运行.  看到你的问题,写的.  有些功能,要你自己去实现.比如,计算失误,.我上面做了注释的,你看下然后 加点内容就可以实现了,几行代码的事情
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式