logo资料库

js飞机大战文档.docx

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
飞机大战游戏需求文档
飞机大战游戏需求文档 游戏玩法介绍:玩家控制一架英雄机,可以发射子弹 , 屏幕上方下落敌机和炸药包 打到奖励的炸药包, 可以双发子弹 , 也可能获得生命 1 条. 打到小飞机可以加 5 分奖励. 被小 飞机或炸药包碰到减生命 1 条, 生命为 0 , 游戏结束. 游戏过程 启动游戏 -英雄起始生命 3 条, 游戏分数 0 分 开始游戏 -界面中,任意位置点击鼠标,开始游戏 暂停游戏 移出屏幕游戏暂停 , 移回 屏幕游戏继续 游戏结束 生命值为 0 游戏结束,当游戏处于结束状态, 任意点击可初始化数据,游戏重新开始 游戏主程序 ShootGame :游戏状态:Begin,Started,Pause,Over | ---- 英雄机 Hero 状态:Moving,Dead | ---- 敌机 Airplane 状态:Moving,Dead | ---- 子弹 Bullet 状态:Moving,Dead | ---- 炸药包 Bee 状态:Moving,Dead 实现思路: 1. 打开页面,背景开始走动; 2. 点击开始,飞机开始不断发射子弹,敌人随机出现在上方; 3. 当敌人碰到子弹,敌人消失; 4. 当敌人(敌机和炸弹)和飞机相遇,飞机死亡,结束游戏; 界面实现: 菜单界面:“飞机大战”Logo, “开始游戏”按钮,“玩法介绍”按钮 统一规定:screenWidth = window.innerWidth 屏幕宽度 背景图片-位置:bg_left:(screenWidth-bg_width)/2,bg_Top: 50 背景图片大小:bg_width = 480*0.7, bg_height = 850*0.7 英雄飞机的大小:plane_w = 102*0.7, plane_h = 126*0.7 英雄飞机可飞行的范围:left(bg_left,bg_Top + bg_width - plane_w) Top(bg.offsetTop, bg.offsetTop + bg_height - plane_h ) 把所有用到多次的数据都用变量存储起来,以方便后期的修改和调整 数据处理: 获取已经创建好的 div 的宽高 div.style.width div.style.height =>_px; 使用 parseInt()转换,即可获取该 div 的宽度 =>_px; 使用 parseInt()转换,即可获取该 div 的高度
=>_px; 使用 parseInt()转换,即可获取该 div 的宽度 =>_px; 使用 parseInt()转换,即可获取该 div 的高度 获取已经创建好的 div 的位置 1.div.style.left div.style.top 2.div.offsetLeft div.offsetTop 注意:offsetLeft 和 offsetTop 只能获取,不能重新赋值 所以在改变 div 的 left,top 值的时候只能去修改 div.style.left 和 div.style.top 的值 => 可直接获取 div 的 left 值 =>可直接获取 div 的 top 值 键盘操作: 菜单界面: 1. 点击“开始游戏”进入游戏界面 2. 点击“游戏玩法”显示玩法介绍图 游戏主界面: 1. 鼠标点击任意位置开始游戏,或者键盘任意键被按下开始游戏,或者进入游戏页面直 接开始游戏 2. 游戏界面,可通过“WASD”或者上下左右键操控飞机飞行 游戏简介界面:游戏规则介绍,点击“玩法介绍”按钮,将 Logo 替换成操作指南图片
游戏主界面:分数显示,英雄飞机生命值显示,以及各种对象的显示 游戏暂停界面: 切换游戏状态,所以物体静止,英雄飞机动画继续播放 游戏结束界面:分数显示,重新开始
显示分数和“重新开始按钮” 游戏对象: 1. 英雄飞机: 飞机的状态:飞行(移动),攻击(发射子弹),死亡(爆炸)---> 游戏结束 2. 子弹 生成,移动,击中敌机(爆炸),(飞出边界)消失 3. 敌机: 三种类型敌机: 小敌机:生成,移动,死亡(爆炸),(飞出边界)消失 中型敌机:生成,移动,死亡(爆炸),(飞出边界)消失 大型敌机:生成,移动,死亡(爆炸),(飞出边界)消失 生命值:1 生命值:4 生命值:7 4. 炸弹:生成,移动,(飞出边界)消失,爆炸-->表示击中英雄飞机 游戏对象具体设计: 1. 生成的所有对象都是 div , 便于计算两个对象是否发生碰撞(原理:判读是否在一个平 面内) 2. 每个对象都由一张图片表示 3. 属性:width , height, left, top, Hp(血量), 4. 对象的功能(方法): 根据不同的对象,设定不同的功能函数: 移动--Move(): 坐标系中图形位置的移动, 都是通过改变 left, top 的值做到的
如: 横向移动: -left 左移 +left 右移 如:纵向移动: -top 上移 +top 下移 攻击--Attack():-飞机攻击--生成子弹 动画切换--Animation():各种飞机飞行时的动态效果 死亡/爆炸--Death/Boom(): 当对象被击中的时候,触发爆炸效果,然后消失 对象死亡的时候出现爆炸效果并消失 消失--Dispear():消除游戏对象:对象超出边界消失,对象死亡显示爆炸效果后消失 公用函数: 碰撞--HitCheck():判断两个物体是否发生碰撞 生成 Div--CreateDiv(): 根据参数,生成相应的 div
分享到:
收藏