本文实例为大家分享了java实现打字游戏小程序的具体代码,供大家参考,具体内容如下

一、设计思路

1.创建一个窗体

2.在窗体上放置一个面板,用paint方法画出英文字母,随机放置字母位置,并随时间自动下落

3.设置得分扣分机制

4.在面板上添加键盘监听器,输入正确得分,输入错误则扣分

ps:面板和监听器用一个类实现(这样简单方便)

二、具体实现

MyPanel.java

import java.awt.Color;

import java.awt.Font;

import java.awt.Graphics;

import java.awt.Panel;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener; /** * 继承Panel类,Panel是Java中的面板类。基本上要操作窗体都会继承此类 * */

public class MyPanel extends Panel implements KeyListener{

int x[] = new int[10];//储存随机字母x轴

int y[] = new int[10];//储存随机字母y轴

char c[] = new char[10];//储存随机字母

int integral =1000;//初始1000积分

Color p[] =new Color[10];//用来存储颜色

public MyPanel() {

for (int i = 0; i < 10; i++) {

x[i]=(int)(Math.random()*300);//0-300

y[i]=(int)(Math.random()*50);//0-50

c[i]=(char)(Math.random()*26+97);//随机字母

p[i]=getRandColorCode();//获取十六进制的颜色代码.例如 "#6E36B4"

}

} /** * 复写Panel类的paint方法 */

public void paint(Graphics g) {

if (integral>0) {//如果成绩>0,才能进来

for (int i = 0; i < 10; i++) {//十个英文字母

g.setColor(p[i]);//设置元素颜色

g.setFont(new Font("TimesRoman", Font.PLAIN, 20)); //设置字体,大小 //1.出现的元素,2.元素的x轴,3.元素的y轴

g.drawString(new

Character(c[i]).toString().toUpperCase(),x[i],y[i]);//画出面板上的字母图像

}

//显示积分在屏幕上

g.setColor(Color.red);

g.setFont(new Font("TimesRoman", Font.PLAIN, 20));

g.drawString("你的成绩是:"+integral, 10, 30);

donghua();

}else {//成绩<0,游戏结束

g.setColor(Color.red);

g.setFont(new Font("TimesRoman", Font.PLAIN, 30));

g.drawString("GAME OVER", 50, 170);

}

}

public void donghua() {

for (int i = 0; i < 10; i++) {//对十个字母一直检测,如果没有超过面板就纵坐标+1,若超过了从顶部就重新生成字母

y[i]++;//字母的y轴 加1,既往下移动1个位置

if (y[i]>370) {//窗体边框占有一部分像素,所以设置370即可

y[i]=0;//设置该字母的纵坐标为0

x[i]=(int)(Math.random()*300);

c[i]=(char)(Math.random()*26+97);

integral-=100;//积分-100

}

try {

Thread.sleep(5);//暂停5毫秒,控制字母下落的速度,

}

catch (InterruptedException e) {}

repaint();//重新绘制画面

}

} //键盘监听器

public void keyPressed(KeyEvent e) {

char keyC = e.getKeyChar();

int stat=-1;//存储最下面字母的值

int nowIndex=-1;//存储最下面字母的下标

for (int i = 0; i < 10; i++) {//找出所有匹配字母处于最下面的字母

if (keyC==c[i]) {

if (y[i]>stat) {//第一次进来时,必定大于,

stat=y[i];//记录坐标值

nowIndex=i;//记录字母的下标

}

}

}

if (nowIndex!=-1) {//如果!=-1,证明输入正确,nowIndex为最下面的字母的下标,重新生成。积分+100

y[nowIndex]=0;

x[nowIndex]=(int)(Math.random()*300);

c[nowIndex]=(char)(Math.random()*26+97);

integral+=100;//积分+100

}else {//如果==-1,证明输错了。积分-100

integral-=100;//积分-100

}

}

/** * 获取十六进制的颜色代码.例如 "#6E36B4" , * @return String */

public static Color getRandColorCode(){

int r,b,g;

r=(int)(Math.random()*250);

b=(int)(Math.random()*250);

g=(int)(Math.random()*250);

Color c =new Color(r, b, g);

return c; }

public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub }

public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub }}

MyTyping.java

import java.awt.Frame;

import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import javax.swing.WindowConstants;

public class MyTyping {

/** 思路:

1.一个窗体

2.在窗体绘制元素(随机出现的字母)

3.加入键盘事件

4.加入计数器(分数)

5.匹配键盘录入字母和屏幕上的字母

一致:消除,并且从最上面重新生成.积分+

不一致:不消除,积分-

没录入:不消除,积分-

6.积分<0,游戏结束 */

public static void main(String[] args) {

JFrame f=new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点击x关闭退出程序

f.setLocationRelativeTo(null);//窗体置中

f.setSize(300, 400);//设置窗体大小

MyPanel p = new MyPanel();

f.add(p);//将面板放入窗体中

f.addKeyListener(p);//注册键盘事件

p.addKeyListener(p);//注册键盘事件

f.setVisible(true);//显示窗体

}

三、运行截图

更多有趣的经典小游戏实现专题,分享给大家:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java打字小游戏_java实现打字游戏小程序相关推荐

  1. java fly bird小游戏_java swing实现的小游戏flybird源码附带视频配置修改教程

    大家好,今天给大家演示一下由Java swing实现的一款小游戏flybird,该游戏操作比较简单,点击鼠标确保小鸟不要触碰到柱子即可,该游戏可运行在Java环境下,jdk版本不限,下面我们来看看如何 ...

  2. java数字猜大小游戏_java实现猜数字小游戏

    java实现猜数字游戏 随机给定一个数字,猜大小直到正确 package com.swift; import java.util.Random; import java.util.Scanner; p ...

  3. java生命小游戏_Java修炼——飞机生存小游戏

    在学习了java入门的课程之后,自己动手跟着老师写的一个小游戏,用的是Frame.总共有七个类. 1.飞机游戏的主窗口(MyGameFrame)继承Frame. package com.bjsxt.p ...

  4. java做小窗体_java实现简单窗体小游戏----球球大作战

    java实现简单窗体小游戏----球球大作战 需求分析 1.分析小球的属性: ​坐标.大小.颜色.方向.速度 2.抽象类:Ball ​设计类:BallMain-创建窗体 ​BallJPanel-画小球 ...

  5. java入门第六天课程_Java基础学习第六天 小游戏

    /** * 游戏开始 * @author LENOVO * */ public class Game_Start { public static void main(String[] args) { ...

  6. java与3d建模_java和3d游戏建模哪个?有没有3d建模转java或java转3的建模大佬给我指点一下...

    大三了,对于以后就业,学习方向有点迷茫,有没有3d建模转java或java转3的建模大佬给我指点一下,非常感谢.计算机专业的,学校主学的java,由于前几年没好好学,现在什么都不会,现在知道学习了,暑 ...

  7. java扫雷源代码思路_java实现扫雷游戏

    初学Java,写了一个扫雷代码来锻炼一下自己的代码能力. 一.代码思路 代码思路很重要,如果事先就想好了代码思路,那么写这一个代码肯定是事半功倍,比在哪里瞎打要强不知道多少. 经过思考,觉得可以创建一 ...

  8. java赛马游戏_Java多线程赛马游戏

    [实例简介] 自己用java写的一个赛马的小游戏,用到了多线程和java swing ,分享给大家! [实例截图] [核心代码] cu0vk0 └── 赛马 └── smGame ├── bin │  ...

  9. java猜数字游戏_java猜数字游戏

    java猜数字游戏要求:1.在100-999中输入任意数字,有10次猜的机会,期间会被告知猜大了.猜小了.猜对了.当10次机会用完,游戏结束.2.任意时候按S可开始或重新开始,按Q可退出.我... j ...

最新文章

  1. java中怎样避免方法被重写
  2. C#中Split用法 转
  3. 下载 | 新版Java开发手册有哪些亮点?
  4. 过滤器filter,监听器listener
  5. DOM中Property与Attribute的区别
  6. bzoj4602 [Sdoi2016]齿轮 边权并查集
  7. JSP 获取访问者真正的IP地址
  8. 数据的实操与测试|附代码(全了)
  9. 用python自动化玩游戏封号吗_用 Python 自动化办公能做到哪些有趣或有用的事情?...
  10. python爬虫判断cookie过期_当爬虫遇到cookie失效,怎样处理?
  11. TensorFlow 辨异 —— tf.placeholder 与 tf.Variable
  12. HDU 1556 Color the ball 线段树
  13. 将RP文件导出为HTML文件
  14. 新成员入群监控自动发送邮件效果如何实现?
  15. 2022年黑客书籍推荐
  16. At least one JAR was scanned for TLDs yet contained no TLDs.
  17. Scons入门指南 使用教程 笔记
  18. Idea 中出现:运行 Test 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行。
  19. Android 与 Chrome OS 中针对大屏幕设备的更新
  20. 高质量 ppt 免费下载网站

热门文章

  1. Win10 没有激活,如何改变任务栏位置
  2. numpy.arctan, math.atan, math.atan2的区别
  3. HDU2066---------Dijkstra算法代码
  4. can't find compiler executable in your configured search path's for GUN GCC Complier的应对办法
  5. django实现证件照换底色后端和小程序(第三周学习记录)
  6. python汇率转换代码_python 实现一个图形界面的汇率计算器
  7. Cheat Enginee(CE)的详细使用指南~包含下载安装教程以及核心功能讲解
  8. 设计一个长方形类。成员变量包括:长度和宽度,成员函数除包括计算周长和计算面积外, 还包括用set方法来设置长方形的长度和宽度,以及用get的方法来获得长方形的长度和宽度 最后,编写一个测试程序来测试所
  9. pitfall fields
  10. 在Linux系统中安装JDK