目录:
- 您的游戏的弹丸基础
- 导弹。 html var game; var car;变种导弹函数Car(){tCar = new Sprite(game,“car。png”,50,30); TCAR。 (3)setSpeed; TCAR。 setAngle(135); TCAR。 checkKeys = function(){if(keysDown [K_LEFT]){this。 turnBy(-5);} if(keysDown [K_RIGHT]){this。 turnBy(5);} if(keysDown [K_SPACE]){导弹。 fire();}} // end checkKeys return tCar;} //结束车辆def函数Missile(){tMissile = new Sprite(game,“.png”,30,20);
汽车经销商对于在您的旅程中安装武器非常敏感,但这也是人们成为游戏程序员的原因。所以你可以添加导弹到你的HTML5游戏对象。如果你想在你的小型面包车上使用导弹,那么你将拥有导弹(至少在虚拟面包车中)。很多视频游戏都涉及到拍摄,这是一个非常简单的添加效果。
<! --1 - >您的游戏的弹丸基础
导弹,子弹和其他射弹相当容易使用。这里有一些想法要记住:
-
弹丸是一个精灵。 为弹丸做一个新的精灵。你可以把它做成一个简单的点,或者绘制一个完整的导弹。
-
为导弹制作一个自定义的精灵。 导弹将需要一些方法,所以你不妨做一个自定义的精灵。
-
导弹在离开屏幕时死亡。 获得这种行为的最简单方法是将导弹的boundAction设置为DIE。
-
添加一个 fire() 方法。当发射导弹时,火()方法将被激活。 反复使用同一枚导弹。旧的导弹永远不会死亡。当用户再次拍摄时,它们只是隐藏起来并重新使用。当导弹击中某物时,隐藏导弹。这将使其看不见,不会碰撞。
-
导弹。 html var game; var car;变种导弹函数Car(){tCar = new Sprite(game,“car。png”,50,30); TCAR。 (3)setSpeed; TCAR。 setAngle(135); TCAR。 checkKeys = function(){if(keysDown [K_LEFT]){this。 turnBy(-5);} if(keysDown [K_RIGHT]){this。 turnBy(5);} if(keysDown [K_SPACE]){导弹。 fire();}} // end checkKeys return tCar;} //结束车辆def函数Missile(){tMissile = new Sprite(game,“.png”,30,20);
tMissile。隐藏();
tMissile。 fire = function(){ 这个。显示(); tMissile。 setSpeed(15); 此。 setBoundAction(DIE); 此。 setPosition(car。x,car。y); 此。 setAngle(car。getImgAngle()); 此。 setImage(“导弹.png”); 此。 setSpeed(15); } // end fire return tMissile;} //结束导弹def函数init(){game = new Scene();汽车=新车(); 导弹=新的导弹(); 游戏。 start();} //结束init函数update(){游戏。明确();汽车。 checkKeys();汽车。更新(); 导弹。更新(); } //结束更新 炮弹有很多建造的乐趣,并不是很难,如下所示: 建立一个正常的精灵来发射炮弹。这并不是绝对必要的,但是通常会用枪发射子弹,从弓上发射箭头,并且从任何车辆发射核子香蕉火箭。弹丸将是它自己的精灵。弹丸就像一个普通的精灵一样工作,但它会被动态创建和销毁。
添加一个触发器来发射导弹。由于汽车将发射导弹,因此触发代码是在汽车的checkKeys方法中。
-
将导弹设置为默认隐藏。
导弹总是在附近,但在不需要的时候隐藏在舞台后面。如果你调用一个精灵的hide()方法,这个精灵将仍然在内存中,但它不会被绘制,也不会触发任何冲突。为导弹创建一个fire()方法。
-
导弹正坐在等待启动。 fire()方法将导弹投入使用。
使弹丸可见。 show()方法与hide()相反。它会导致精灵可见并触发冲突。
-
给导弹一个快速的初始速度。如你所知,导弹通常很快。
当导弹击中边缘时隐藏导弹。
-
导弹击中屏幕边缘时,需要隐藏。设定导弹对DIE的束缚作用将使这种行为自动化。
如果导弹击中了其他东西,就隐藏导弹。
-
这个简单的例子没有任何其他物体,但是如果导弹与其他物体发生碰撞,则调用它的hide()方法来模拟导弹在接触时被破坏。
当你有普通的导弹行为工作,你可以尝试一些有趣的变化:
-
为导弹增加重力。
如果是侧卷轴,则为导弹增加引力,以产生类似蠕虫的效果。
-
将其他物理添加到导弹。
你可以让导弹像任何其他精灵一样拖动。做一个聪明的导弹。
-
使用angleTo方法来确定导弹和目标之间的角度,并在每一帧上将导弹转向目标。这将模拟一个永不会错过的智能导弹。 (一个很大的力量,但是如果你有太多的话,这会让游戏变得太简单了。)
做一个不那么聪明的导弹。如果敌方向玩家发射导弹,你不希望它那么聪明。首先,让导弹速度足够慢,以至于可以超越。其次,放置能够摧毁导弹的障碍。第三,让导弹在一段时间内变得智能一次,以便每5或10帧检查一次目标的位置。