有时候你会在HTML5游戏中多次重复使用对象,并且他们会保持不变。所以,把它们放在一个库中以方便重用是有道理的。这正是你要做的。看看frogLib。 js:
// frogLib。 js //青蛙游戏函数对象Fly(){tFly = new Sprite(scene,“fly。png”,20,20); tFly。 setSpeed(10); tFly。 wriggle = function(){//用一些随机量改变方向newDir =(Math。random()* 90) - 45;这个。 (); //结束wriggle return tFly;} //结束Fly函数Frog(){tFrog = new Sprite(scene,“frog。png”,50,50); tFrog。 maxSpeed = 10; tFrog。 minSpeed = -3; tFrog。 (0)setSpeed; tFrog。 setAngle(0); tFrog。 checkKeys = function(){if(keysDown [K_LEFT]){this。 changeAngleBy(-5);} //结束if(keysDown [K_RIGHT]){this。 changeAngleBy(5);} //结束if(keysDown [K_UP]){this。 changeSpeedBy(1);如果(this。speed> this。maxSpeed){this。 setSpeed(this.maxSpeed);} // end if if // end if if(keysDown [K_DOWN]){this。 changeSpeedBy(-1);如果(this。speed这是一个有趣的文档。它只包含两个类的定义。它被使用,因为其他几个程序将使用这两个类。
<! --1 - >使用库本身就是简单的。这是frogFly。将这两个元素放在一个游戏中的html文件:
frogFly。 html src =“frogLib。js”> var scene; var青蛙; var fly; var叶子;函数init(){scene = new Scene();现场。 SETBG( “绿色”);青蛙=新青蛙(); fly = new Fly(); leaves = new Sprite(scene,“leaves.png”,640,480);树叶。 (0)setSpeed;现场。 start();} //结束init函数update(){scene。明确();青蛙。 checkKeys();飞。蠕动();树叶。更新();青蛙。更新();飞。 update();} // end update();这个程序并没有引入太多的新功能。它只是按照以下步骤实现库中定义的元素:
导入froglib。 js库。
frogLib文件只是一个JavaScript文件。以与导入simpleGame相同的方式导入它。 js文件,带有单独的标签。
创建精灵。叶子精灵只是一个普通的精灵。建立青蛙和飞行,就像你之前做的一样,尽管它们被定义在另一个文件中。 (如果青蛙或苍蝇没有被创建,请确保您正确导入了库。)
管理更改。update()函数负责控制游戏。这是您管理所有各种精灵行为的地方:告诉青蛙寻找击键(使用青蛙.checkKeys()方法),并告诉苍蝇蠕动(使用fly.wiggle()方法)。 画出精灵。一旦你处理了所有导致精灵改变的东西,在屏幕上绘制精灵。通过调用update()方法绘制每个精灵。精灵是按顺序绘制的,所以任何你想要在背景中都应该绘制的东西之前,将显示在前面。 (青蛙会出现在背景的顶部,所以青蛙应该在每个屏幕的背景更新之后画出。)