黑马程序员技术交流社区
标题:
java画图系列 最后做个总结吧
[打印本页]
作者:
justinwww
时间:
2016-1-20 23:11
标题:
java画图系列 最后做个总结吧
有了之前的 让小球运动 撞墙反弹 鼠标控制 键盘控制 小球 我们可以做一个小程序 也相当于一个小游戏相信大家都玩过街头霸王那个游戏机,里面有个打字母的游戏 就是天上飘下来相应的字母 我们等还没落到地 按键盘 即可消除获的相应的分数
其实原理很简单 在之前的基础上加入一个积分即可
首先让小球 随机生成 里面放入 随机生成的字母 然后以一定的速度 y++ 往下落 然后判断 还没碰到最下边的时候 监听键盘 如果和小球里面的字母一样即可消除
有了之前的基础 贴上关键的代码吧
for (int i = 0; i < 10; i++) {//循环生成 x y 坐标 以及 相应的字母
x[i] = (int)(Math.random()*300) ;
y[i] = (int)(Math.random()*300) ;
c[i] = (char)(Math.random()*26+97) ;
}
for(int i = 0 ; i < 10 ; i ++){//循环画出 xy坐标 画出 10个 字母
g.drawString(new Character(c[i]).toString(), x[i] , y[i]) ;
}
判断是否下落到底部 然后减分
for (int i = 0; i < 10; i++) {
y[i] ++ ;
if(y[i]>400){
y[i] = 0 ;
x[i] = (int)(Math.random()*300) ;
c[i] = (char)(Math.random()*26+97) ;
score -= 100 ;
}
判断是否 和键盘 给定的字母一样 这里涉及到一个 如果点击后 给定一个状态 这样就不会 重复消失
char keyC = arg0.getKeyChar() ;
int nowY = -1 ;
int nowIndex = -1 ;
for(int i = 0 ; i < 10 ; i ++){
if(keyC==c[i]){
if(y[i]>nowY){
nowY = y[i] ;
nowIndex = i ;
}
}
}
if(nowIndex!=-1){
y[nowIndex] = 0 ;
x[nowIndex] = (int)(Math.random()*300) ;
c[nowIndex] = (char)(Math.random()*26+97) ;
score += 10 ;
}else {
score -= 100 ;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2