本节我们将通过编程让小鸟再按下空格键时飞起来,通过按空格键的频率来控制小鸟的飞行高度。
一:判断空格键是否按下
编辑Flappy bird的代码,在该class里再添加一个spacePressed()方法,返回空格键是否按下:
public boolean spacePressed(){
boolean pressed = false;
if(Greenfoot.isKeyDown("space")){
pressed = true;
}
return pressed;
}
二、修改act()方法,如果空格键按下,小鸟飞起来
在该方法的第一行添加如下程序,如果空格键按下,那么修改变量的值为-3,这个数字越小,小鸟会飞的越高。(因为在greenfoot中,世界的最上边缘y坐标是0,往下y坐标不断增加,所以将y减小就会向上移动)
//如果按下空格,y坐标减小,实现向上飞
if(spacePressed()){
g=-3;//数字越小飞的越高
}
程序截图如下:
修改完成后,在运行程序看一下,是不是按下空格键小鸟就飞起来了,不过我们会发现一个bug,如果一直按着空格键不放,小鸟就一直往上飞,而不是按一下它往上飞一下。接下来我们要进一步修改程序,完善功能。
三、增加一个变量,来判断空格键是否是一直按下状态
private boolean haspressed = false;
修改spacePressed()方法,如果空格键按下,将haspressed设置为true,若一直未松开按键,那么下一次该方法将不再返回true。
public boolean spacePressed(){
boolean pressed = false;
if(Greenfoot.isKeyDown("space")){
if(!haspressed){//如果一直没有松开空格键,不再返回true
pressed = true;
}
haspressed = true; //已经按下了空格键
}else{
haspressed = false;
}
return pressed;
}
经过这样的修改之后,如果一直按着空格键效果跟按下一次是一样的,大家试试看。
本站内容未经许可,禁止任何网站及个人进行转载。