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

时间: 2024-12-11 01:16:22

swing简单的打字游戏源码的相关文章

java实现 swing模仿金山打字 案例源码

java实现 swing模仿金山打字 案例源码,更多Java技术就去Java教程网.http://java.662p.com 代码: <font size="3">import Java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.io.File; import java.io.IO

简单:石头剪刀布游戏源码

import java.util.*;public class guess {     public static void main(String[] args){      Scanner in=new Scanner(System.in);      int a=0;      int b=0;      int c=0;      int i=0;//声明三个变量 a b c,用来接收 输赢平的次数,声明变量 i 用户循环,循环里面声明,循环外无法使用.      System.out.

IOS游戏源码下载之简易版雷电(2.2.3版本)源码完整下载和简单开发教程

 头回写教程这玩意,真不知道要写些什么,所以主要就是共享下我的代码,和一些重要功能的讲解吧,各位如果有啥不懂的可以回帖提问哟. 其实这个demo(为何叫demo呢,因为我真不敢称这个为游戏呀)是我初学cocos2d-x两周的时候写的,所以可能写的不是很好(好吧,其实现在写的东西也不好),当初主要还是靠着度娘和TestCpp学的,所以在此还是要强调一下TestCpp的重要性,要好好把它看一遍哟,以后你想实现什么功能就可以去翻看了. 好了,言归正传,还是介绍下我写的这个demo了,在此先华丽丽的

【史上最全】微信朋友圈游戏源码下载

源码介绍:  所有源码都是html5开发,可以跨平台,无论谷歌安卓还是苹果ios都可以流畅运行,游戏可以根据自己的情况添加链接,可以分享到微信圈后跳转的你的游戏平台页.个别游戏可以设置指定次数提示添加微信账号回复指定内容获得答案.保证游戏可运行性,不像某些不良卖家价格很高买来的根本没几个能用或者很多凑数游戏. 一个简单的营利模式: 通过手机作为入口,分享某某游戏的得分到朋友圈,朋友圈内的病毒式传播速度超过你想象.然后你可以自己加入关注微信代码.百度移动广告代码.淘客代码.等等吧,可以发挥的空间非

安卓版猜拳游戏源码

安卓版猜拳游戏源码,该文件中带有安装测试包的,这个游戏源码比较简单的,现在有两个代码,一个自定义VIEW的,一个就是普通的imageView图片,游戏非常适合一些新手的使用和学习. <ignore_js_op> <ignore_js_op> <ignore_js_op>  详细说明:http://android.662p.com/thread-4914-1-1.html 安卓版猜拳游戏源码,布布扣,bubuko.com

疯狂冰淇淋(CrazyCream)游戏源码完整版

疯狂冰淇淋(CrazyCream)游戏源码完整版,该游戏目前已经上线了一些IOS应用市场了,而且该游戏也已经有安卓版本了,游戏的源码比较源码完整的,功能也很强大的,是一款非常难得的ios休闲游戏源码的,详细请看说明.游戏说明:您是个冰激凌控吗?那么就要注意别流口水了,因为我们将为您带来的完美冰激凌装点游戏会让您为之疯狂.这是一款全新的益智游戏,设计风格可爱,可以挑战的关卡超过 100 个.用令人垂涎的配料装点冰激凌,同时还能培养您的创造力.功能:100 多个美味的关卡,还会提供更多挑战!漂亮的

android猜猜红桃A游戏源码

一个简单的猜扑克游戏,很适合初学者,点击TextView扑克由反面变为正面,未点击的TextView有透明效果,点击再玩一次按钮,运行洗牌程序undefined <ignore_js_op><ignore_js_op> 详细说明:http://android.662p.com/thread-876-1-1.html android猜猜红桃A游戏源码,布布扣,bubuko.com

Android俄罗斯方块游戏源码

Android俄罗斯方块游戏源码,Android经典游戏源码,不容错误,代码详细,适合想要搞游戏开发的人进行学习,直接可以跑,源码有超详细的注释. 玩着俄罗斯方块的的时候有背景歌曲.[最好使用真机测试,不然可能会报错] 简单代码如下,注释可谓详尽至极啊:        Handler m_handler = null;//负责接收消息        Timer timer = null;//负责发送消息        Data data = null;//存放游戏的数据,即二维数组,并负责二维数

Win8五子棋游戏源码

技术特点:在web版的silverlight的五子棋的基础上,进行了简单的改动,就OK了, 体现了微软的技术真的强大. 功能介绍:能够进行人与人的对战,与人机对战 实现五子棋基本功能,可以选择对战模式 人与人 .人与电脑.双击棋盘下棋.开发环境为:Visual Studio 2012 <ignore_js_op> <ignore_js_op> 详细说明:http://wp.662p.com/thread-8139-1-1.html Win8五子棋游戏源码