打字母游戏
来源:互联网 发布:英语网络外教 编辑:程序博客网 时间:2024/04/27 20:10
* 打字游戏,通过线程改变纵坐标大小,通过键盘监听
* 来实现对纵坐标最大的字母进行消除,打对得10分,
* 错误扣100分
以下是效果截图:
以下是动态效果视频:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class WordGame extends JFrame{
WordGame(){
this.setSize(300,400);
int width=(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth();
int height=(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight();
this.setLocation((width-300)/2,(height-400)/2);
//this.setUndecorated(true);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[]){
WordGame wg=new WordGame();
MyWordGame mwg=new MyWordGame();
mwg.setBackground(Color.orange);
wg.add(mwg);
wg.addKeyListener(mwg);
mwg.addKeyListener(mwg);
Thread t=new Thread(mwg);
t.start();
wg.show();
}
}
class MyWordGame extends Panel implements Runnable,KeyListener{
int x[]=new int[10];
int y[]=new int[10];
char c[]=new char[10];
int sum=1000;
MyWordGame(){
for(int i=0;i<10;i++){
x[i]=(int)(Math.random()*290);
y[i]=(int)(Math.random()*40);
c[i]=(char)(Math.random()*26+97);
}
}
public void paint(Graphics g){
for(int i=0;i<10;i++){
g.setColor(Color.white);
g.fillOval(x[i]-5, y[i]-15, 20, 20);
g.setColor(Color.blue);
g.drawString(""+c[i], x[i], y[i]);
}
g.setColor(Color.red);
g.drawString("您当前的成绩是:"+sum, 100, 20);
}
public void run() {
// TODO Auto-generated method stub
while(true){
for(int i=0;i<10;i++){
y[i]++;
//字母越界判定
if(y[i]>400){
sum-=100;
x[i]=(int)(Math.random()*290);
y[i]=0;
c[i]=(char)(Math.random()*26+97);
}
}
try {
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
repaint();
}
}
public void keyPressed(KeyEvent arg0) {
// TODO Auto-generated method stub
//不能在类下面定义,因为每按一次就得初始化一次
int tempY=-1;
int index=-1;
for(int i=0;i<10;i++){
//获取纵坐标最大的那个字母
if(arg0.getKeyChar()==c[i]){
if(tempY<y[i]){
tempY=y[i];
index=i;
}
}
}
//表示输入错误,减去100
if(index==-1){
sum-=100;
}else{//输入正确,去掉最下面的那个字母,加十分
sum+=10;
x[index]=(int)(Math.random()*290);
y[index]=0;
c[index]=(char)(Math.random()*26+97);
}
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
}
- 打字母游戏
- c++打字母游戏
- 打字母游戏
- 打字母游戏
- 打字母游戏
- 打字母游戏2
- 打字母游戏3
- 打字母游戏+贴图技术
- 黑马学习---------------------android打字母游戏
- [JAVA]简单的打字母游戏
- Poedu_C语言_20160925_打字母游戏
- 一个打字母游戏 写的很乱
- Java图形界面实战案例——实现打字母游戏
- Po学校Mark老师教的打字母游戏
- C#编写一个打字母游戏,详细代码。。。。。
- 字母游戏
- 字母游戏
- 字母游戏
- 通过鼠标拖拽来画矩形(练习6)
- 中国足球,这场比赛你赢了,但是我看出你已经输得麻木了!
- 豆瓣的Url结构方式一览
- 小资料集锦
- 球撞随机出现的墙反弹
- 打字母游戏
- 都是我的错5
- cordova项目创建
- 用ArrayList存储HashSet中的随机数并排序、查找
- 用IO流对文件进行复制操作
- 打印目录及文件
- 都是我的错6
- 《卡特教练》观后感
- 都是我的错7