import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;
public class Snow {
public static void main(String[] args) {
JFrame w=new JFrame();
w.setSize(1024,768);
MyPanel mp=new MyPanel();
w.add(mp);
w.addKeyListener(mp);
mp.addKeyListener(mp);
Thread t=new Thread(mp); //切记一定要加mp,坑死了
t.start();
w.setVisible(true);
}
}
class MyPanel extends Panel implements Runnable,KeyListener{
//int i=0;
int x[]=new int[10];
int y[]=new int[10];
char c[]=new char[10];
int score=1000;
@Override
public void keyPressed(KeyEvent arg0) {
char KeyC=arg0.getKeyChar();
int nowY=-1;
int nowIndex=-1; //nowIndex也要赋值为-1
for(int i=0;i<10;i++){
if(KeyC==c[i]){
if(nowY<y[i]){
nowY=y[i];
nowIndex=i;
}
}
}
if(nowIndex!=-1){ //注意是 nowIndex不是nowY
y[nowIndex]=0;
x[nowIndex]=(int)(Math.random()*1024);
c[nowIndex]=(char)(Math.random()*26+97);
score+=10;
}
else{
score=score-100;
}
}
@Override
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public MyPanel(){
for( int i=0;i<10;i++){
//
x[i]=(int)(Math.random()*1024);
y[i]=(int)(Math.random()*768);
c[i]=(char)(Math.random()*26+97);
}
}
public void paint(Graphics g){
for(int i=0;i<10;i++){
g.drawString(new Character(c[i]).toString(),x[i],y[i]);
g.drawString("分数是:"+score,30,30);
}
}
public void run() {
while(true){
try{
for(int i=0;i<10;i++){
y[i]++;
if(y[i]>768){
y[i]=0;
x[i]=(int)(Math.random()*768);
c[i]=new Character(c[i]);
score-=100;//记得补上这个不然一直没输入字母调到底下去还是不扣100分
}
}
Thread.sleep(30);
}catch(Exception e){}
super.repaint();
}
// TODO Auto-generated method stub
}
}
但是漏出去还是没有-100