logo资料库

JS消灭星星功能文档.docx

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
消灭星星
消灭星星 1、生成 10*10 个星星,可随机生成 2、添加点击事件,检测用户点击效果 3、消除星星 递归遍历寻找上下左右位置颜色相同的星星 4、刷新:向下、向左移动 在消除一部分星星之后,位于上方、右方的星星分别需要向下方和左方移动 5、算分机制 消除分数=消除星星个数的平方*5。 6、游戏执行顺序 7、判断游戏是否结束:判断是否有相邻的、颜色相同的星星
游戏逻辑实现 1. 创建星星的自定义函数:Star() 属性:star 的 div 对象,alive:标记是否死亡(默认为 false) 属性的设置:div.name = “star” 为了检测点击, 对 left,top 的设定:setLeft(),setTop()和获取:getLeft(),getTop() Alive 的 setAlive()和 getAlive() 设置星星的类型:标记当前星星的类型:0:blue,1:green,2:purple,3:r ed,4:yellow,便于第 4 步的查询操作 方法:dead()销毁星星对象
2. 创建 10*10 个星星,并使用二维数组存储,位置信息如下: 在数组中对应的下标如下:按列存储,每一列是一个一维数组(便于移动)
3. 添加监听事件 Document.onclick = function(event){ Var target = event.target // 获取点击到的对象 div If(target.name == “star”){ var l = parseInt(target.style.left); // 获取点击的对象的 left 值 var t = parseInt(target.style.top); // 获取点击对象的 top 值 // 根据获取到的位置信息,根据第 2 步的位置信息,换算下标值, 找到数组中对应的元素 // 拿到数组元素(星星对象)之后,进行第 4 步操作 } } 4. 查询操作 以当前星星为中心,向四周(相邻的上下左右四个位置)查询颜色相同的星 星,如果查找到就将其 alive 标记为 true(标记为死亡状态,以便第 5 步的删除操 作执行)。 如果找到一个颜色相同的星星再以该星星为中心,向四周查询,重复当前操 作,直至没有相同的位置。 注意:1).再查找过程中要判断下标值是否越界 2).如果遇到被标记为 alive=f alse 的星星,说明已经被查找过,不需要再次标记查询 5. 删除操作 遍历数组,查找其中 alive 为 true 的元素,将其销毁并从数组中移除 6. 更新操作 移动数组,更新第 5 步操作中受影响的其他星星的位置,按照第 2 步重置其 位置信息。 7. 遍历整个数组,判断每个星星是否有相邻颜色相同的星星,如果有,游 戏继续,如果所有相邻的星星的颜色都不想同,则游戏结束
分享到:
收藏