• swing简单的打字游戏源码


    代码如下

    import java.awt.*;
    import java.awt.event.*;
    public class Main{
            public static Frame f =new Frame();
            public static void main(String[] agrs){
                    f.setSize(500, 400);
                    f.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width-f.getSize().width)/2, (Toolkit.getDefaultToolkit().getScreenSize().height-f.getSize().height)/2);
                    f.setTitle("swing简单的打字游戏");
                    f.setBackground(Color.black);
                    Mypanel mp =new Mypanel();
                    f.add(mp);
                    Thread t =new Thread(mp);
                    t.start();
                    f.addKeyListener(mp);
                    mp.addKeyListener(mp);
                    mp.addMouseListener(mp);
                    
                    f.setVisible(true);
                    f.addWindowListener(new WindowAdapter(){
                            public void windowClosing(WindowEvent e){
                                    System.exit(0);
                            }
                    });
            }
    }
    class Mypanel extends Panel implements Runnable,KeyListener,MouseListener{
            private static final long serialVersionUID = 1L;
            int x[]=new int[20];
            int y[]=new int[20];
            char c[]=new char[20];
            
            int score=1000;
            int level=1;
            boolean flag=true;
            
            public Mypanel(){
                    for(int i=0;i<20;i++){
                            x[i]=(int)(Math.random()*1020);
                            y[i]=(int)(Math.random()*768)-700;
                            c[i]=(char)(Math.random()*26+65);
                    }
            }
            public void paint(Graphics g){
                    g.setColor(Color.BLUE);
                    g.setFont(new Font("宋体",Font.BOLD,30));
    
                    if(flag==false){
                    g.setColor(Color.GREEN);
                    g.setFont(new Font("隶书",Font.BOLD,50));
                    g.drawString("Over",Main.f.getSize().width/2,Main.f.getSize().height/2);
                    }
                    for(int i=0;i<20;i++){
                            g.drawString(c[i]+"",x[i],y[i]);
                    }
            g.drawString("得分:"+score,20,50);
                
                    g.drawString("等级:"+level,850,50);
                    
                     
            }
            public void run(){
                    while(flag){
                            for(int i=0;i<20;i++){
                                    y[i]++;
                            if(y[i]>768){
                                    y[i]=0;
                                    x[i]=(int)(Math.random()*(Main.f.getSize().width));
                                    c[i]=(char)(Math.random()*26+65);
                                    score-=100;
                                    if(score<=0){
                                            score=0; 
                                            flag=false;
                                            c=new char[20];
                                    }
                            }
                            }
                            
                            try {
                                    Thread.sleep(20-3*level);
                            } catch (InterruptedException e) {
                                    e.printStackTrace();
                            }
                            this.repaint();
                    }
            }
    
            public void mouseClicked(MouseEvent e) {
                    System.out.println(e.getX());
                    System.out.println(e.getY());
            }
    
            public void keyPressed(KeyEvent e) {
                    int maxY=-1000;
                    int index=-1;
                    
                    if(e.getKeyCode()>=e.VK_A&&e.getKeyCode()<=e.VK_Z){
                            for(int i=0;i<20;i++){
                                    if(e.getKeyCode()==c[i]){
                                            if(y[i]>maxY){
                                                    maxY=y[i];
                                                    index=i;
                                            }
                                    }
                            }
                            if(index!=-1){
                                    y[index]=0;
                                    x[index]=(int)(Math.random()*(Main.f.getSize().width));
                                    c[index]=(char)(Math.random()*26+65);
                                          score +=50;
                                          if((score-500)/500>level){
                                                  level++;
                                          }
                            }
                            else{
                                    score-=100;
                                    if(score<=0){
                                            score=0;
                                            flag=false;
                                            c=new char[20];
                                    }
                                    repaint();
                            }
                    }
            }
    
            public void keyReleased(KeyEvent arg0) {
                    
            }
    
            public void keyTyped(KeyEvent arg0) {
                    
            }
    
            public void mouseEntered(MouseEvent arg0) {
                    
            }
    
            public void mouseExited(MouseEvent arg0) {
                    
            }
            public void mousePressed(MouseEvent arg0) {
                    
            }
            public void mouseReleased(MouseEvent arg0) {
                    
            }
    }
    

      效果图
    <ignore_js_op> 

    详细说明:http://java.662p.com/thread-3684-1-1.html

  • 相关阅读:
    char *s 和char s[]的区别
    Loadrunner时间函数、用时间生成订单编号例子
    loadrunner获取毫秒及字符串替换实现
    关联的特殊应用
    LR中的时间戳函数web_save_timestamp_param
    使用 If-Then-Else 逻辑进行分支
    ArcGIS中国工具3.2新功能
    运行模型,COM错误,解决问题步骤
    arcgis python 更新日期为随机数
    使用LAS数据集创建DEM和DSM
  • 原文地址:https://www.cnblogs.com/liniuzen/p/4107846.html
Copyright © 2020-2023  润新知