<>1.课程大纲
* if语句的基本用法
* 判断真假
* ==表示是否相等
<>2.1 if语句
* if语句:用来做条件判断。
* if语句的语法结构,如下所示: if(①){ ② }
*
if关键字后面有一对小括号,小括号后面是一对大括号,①处放置判断条件,②处放置的是条件成立后执行的代码。
*
执行流程:当①处的判断条件为真( true )时,执行②处大括号里的代码;当①处的判断条件为假( false )时,不执行②处大括号里的代码,if语句结束。
*
使用if语句,判断是否为true。如果isFit为true,则执行if大括号里的语句,代码如下
var isFit = true; if(isFit){ alert("输出为True"); }
* 执行结果
* 如果答案正确,分数加1 声明变量 score表示分数,声明变量 answer表示答案,如果答案正确分数加1,使用if语句判断分数是否加1,代码如下:
var score =10; var answer = true; if(answer){ score = score + 1; } alert("分数" +
score);
* 代码执行结果如下
* 从上述代码可以看出,变量可以作为if语句的判断条件
<>2.2 表达式判断真假
* 声明两个变量a、b并分别赋值,请看下列代码: var a = 10; var b = 20;
* (大于)>、(小于)<的作用:比较两个数的大小
* a<b相当于10<20结果为true
* a>b相当于10>20结果为false
* (大于等于)>=、(小于等于)<=的作用:一个数是否大于等于另一个数/一个数是否小于等于一个数。a >=
b相当于a>b或者a==b,其中有一个表达式为真,a>=b的结果为true,如果两个表达式都为假,a>=b的结果为 false。
* a<=b相当于a<b或者a==b,其中有一个表达式为真,a>=b的结果为true,如果两个表达式都为假,a>=b的结果为false。
* == 号运算符作用:用于判断,判断两个数(变量、表达式)是否相等。a == b相当于10 == 20,其结果为false
* != 运算符的作用:用于判断,判断两个数(变量、表达式)是否不相等。a!=b相当于10!=20,结果为true。
* 用if语句判断变量是否等于100.
代码如下 var n = 100; if(n == 100){ alert("变量的n的值为100"); }
* 执行结果
* 用if语句判断两个变量是否相等,需要先声明两个变量,代码如下 var i = 8; var j = 10; if(i == j){ alert(
"变量i和j相等"); }
* if语句里的代码不会被执行,因为i与j的值不相等,判断条件为假。
<>2.3 背景连续移动(一)
* 飞机大战专题课程一(以后会发)实现了背景移动,但是,背景不是连续移动的,背景图片向下移动之后,上面就没有背景图片了,代码如下: var x1 = 0;
var y1 = 0; var x = 200; var y = 0; setInterval(function(){ ①ctx.drawImage(
background,x1,y1); ②y1 = y1 + 1; ③ctx.drawImage(enemy,x,y); ④y = y + 3; },10)
*
以上代码实现了让背景和飞机向下移动,①处让背景每隔10亳秒重新绘制一次,②处是每隔10亳秒背景向下移动1像素,③处让飞机图片每隔10亳秒重新绘制一次,④处是每隔10亳秒飞机向下移动3像素.
* 请看下图,背景图片的高度是852,通过两张背景图片坐标y值的变化,可以使两张背景图片连续交替出现,从而达到背景连续移动的效果
*
根据上述图示两张图片同步移动,当y1的值増加到852时,y2的值从-852増加到0,这时为了保证图片可以连续移动,若y1的值大于852,要给y1重新赋值为-852;同样的道理,当y2的值为852时,y1的值从-852增加到0,若y2的值大于852时,要给y2重新赋值为-852,如此循环往复便可实现背景图片连续移动的效果。
<>2.4 实际操作
* 需要使用语句来对y1值和y2值做判断,还需要声明变量 height,并赋值为背景图片的高度852.具体代码如下 var x1 = 0; var y1 =
0; var x = 0; var y = 0; var height = 852; var x2 = 0; var y2 = -height;
setInterval(function(){ ctx.drawImage(background,x1,y1); y1 = y1 + 1; ctx.
drawImage(background,x2,y2); y2 = y2 + 1; ①if(y2>height){ y2 = -height; } ②if(y1
>height){ y1 = -height; } ctx.drawImage(enemy,x,y); y = y + 3; },10)
* 分别绘制两张连续的背景让两张背景交替循环,①、②当图片坐标超出852时,让坐标重新回到-852位置,循环往复,便实现背景一直移动的效果。