任务四十七:王牌特工 准备工作(二)
面向人群:
有一定JavaScript基础
难度:

重要说明

百度前端技术学院的课程任务是由百度前端工程师专为对前端不同掌握程度的同学设计。我们尽力保证课程内容的质量以及学习难度的合理性,但即使如此,真正决定课程效果的,还是你的每一次思考和实践。

课程多数题目的解决方案都不是唯一的,这和我们在实际工作中的情况也是一致的。因此,我们的要求不仅仅是实现设计稿的效果,更是要多去思考不同的解决方案,评估不同方案的优劣,然后使用在该场景下最优雅的方式去实现。那些最终没有被我们采纳的方案,同样也可以帮助我们学到很多知识。所以,我们列出的参考资料未必是实现需求所必须的。有的时候,实现题目的要求很简单,甚至参考资料里就有,但是背后的思考和亲手去实践却是任务最关键的一部分。在学习这些资料时,要多思考,多提问,多质疑。相信通过和小伙伴们的交流,能让你的学习事半功倍。

任务目的

  • 熟悉 HTML5 技术在游戏开发领域的应用
  • 学习游戏核心玩法的设计,并在此基础上合理地管理和添加功能
  • 熟练使用 JavaScript 解决一般性的算法问题
  • 掌握游戏性能优化的一些方法
  • 为第四阶段的游戏任务做准备

任务描述

  • 基于任务46
  • 在活动区域内设置若干守卫(敌人):每个守卫都有一个以自己为圆心的圆形视觉范围,该视觉范围不可穿过墙壁
  • 如下图,若特工落入某个守卫的视觉范围内,该守卫会向特工方向连续发射子弹,发射之间有较短的时间间隔
  • 特工被守卫子弹击中,关卡以失败而结束
  • 特工脱离某个守卫的视觉范围,该守卫会停止射击
  • 特工也可以射击守卫,如图,玩家点击屏幕上任意一个守卫,若特工与该守卫之间没有墙的阻隔,特工会向该守卫方向发射子弹(而非移动至守卫处)
  • 守卫被特工子弹击中,该守卫从区域中消失
  • 子弹均不可穿墙
  • 对于频繁创建和销毁的子弹对象,可选择合适的回收机制进行内存优化,比如对象池技术

任务注意事项

  • 请注意代码风格的整齐、优雅
  • 代码中含有必要的注释
  • 可选择用 Canvas(推荐)或 DOM 或两者结合的方式实现
  • 可以使用 HTML5 游戏引擎
  • 能够适应不同分辨率的手机
  • 保证游戏关卡是可通的
  • 保证游戏在移动端的流畅性
  • 为增强游戏可玩性,守卫的视觉范围可对玩家不可见
  • 可以合理使用第三方框架、类库

任务协作建议

  • 如果是各自工作,可以按以下方式:

    • 团队集中讨论,明确题目要求,保证队伍各自对题目要求认知一致
    • 各自完成任务实践
    • 交叉互相Review其他人的代码,建议每个人至少看一个同组队友的代码
    • 相互讨论,最后合成一份组内最佳代码进行提交
  • 如果是分工工作(推荐),可以按以下模块切分
    • 特工相关功能
    • 守卫相关功能
    • 碰撞检测
    • 子弹回收机制

在线学习参考资料

  • MDN Canvas
  • HTML5 游戏引擎列表
  • JavaScript Object Pool
  • Galaxian Style HTML5 Game (该教程包含碰撞检测、回收机制等相关技术)

任务四十七:王牌特工 准备工作(二)相关推荐

  1. Shell脚本学习-阶段二十七-命令解释二

    文章目录-命令解释二 前言 emacs jed joe nano================ pico sed=================== vi,vim============ mtyp ...

  2. 卷三十七 汉纪二十九

    其中"敬大臣"很重要,大臣得不到你的尊重,他怎么领导小臣,主持工作呢?对大臣要礼敬,体貌恩数,都要加隆. 君使臣以礼,敬大臣,体恤小臣,这是很重要的修养和领导力.我们很多企业家也做 ...

  3. SMS主站点配置详细图解:Sms2003系列之二

    SMS主站点配置 在上一篇文章中,我们介绍了如何进行SMS2003+SP2的部署.本文中,我们将介绍如何进行SMS主站点的配置.在SMS中,站点(site)定义并包含了所有SMS管理的对象.当我们第一 ...

  4. Hadoop环境搭建教学(二)完全分布式集群搭建;

    Hadoop环境搭建教学(一)运行环境,集群规划介绍: 文章目录 安装三台 CentOS 7系统 一.X-Shell的准备工作 二.基本工具安装 三.关闭防火墙 四.修改Host文件 五.3.4.4 ...

  5. 进击的二维码 | ArcBlock 课堂预告

    ArcBlock Technical Learning Series 第十七期 进击的二维码 本周三,1 月 30 日下午 1:30 时 (美国太平洋时间 29日下午 21:30 时),由 ArcBl ...

  6. Python模拟二维码登录百度

    模拟二维码登录百度 写在前面 准备工作 二维码地址 登录状态 获取gid 登录参数 代码部分 二维码展示 获取cookie 完整代码 写在后面 写在前面 前段时间写了利用BDUSS到达百度首页,这一次 ...

  7. 第十二章:使用C语言(Python语言)操作Sqlserver2019数据库

    目录 一.连接数据库的准备工作 二.使用 ODBC 连接数据库 1. ODBC 数据源简介 2. 配置 ODBC 数据库源 3. 连接数据库函数 4. C 语言通过 ODBC 操作数据库 三.非 OD ...

  8. 《最高人民法院 最高人民检察院 公安部关于办理电信网络诈骗等刑事案件适用法律若干问题的意见(二)》

    法发[2021]22号 最高人民法院  最高人民检察院  公安部 关于办理电信网络诈骗等刑事案件适用法律若干问题的意见(二) 为进一步依法严厉惩治电信网络诈骗犯罪,对其上下游关联犯罪实行全链条.全方位 ...

  9. stm32基于TouchGFX的GUI开发(十):Touchgfx图片资源存储在外部Flash教程(SPI和QSPI方法二)

    前言 本文是在上一篇文章的基础上继续介绍第二种将Touchgfx的图片文件存到外部Flash的方法.采用的是.FLM下载算法.直接在keil内添加算法然后像普通下载程序那样下载. 提示:以下是本篇文章 ...

最新文章

  1. 构造函数和析构函数的调用过程
  2. tableau可视化数据分析60讲(九)-tableau数值计算字符串计算(重点知识)
  3. shell date
  4. Tomcat虚拟目录
  5. hdu 4472 Count(递推即dp)
  6. 星辰大海:华为用“鲲鹏+昇腾”计算双擎再出发
  7. Java入门到大神你需要掌握这些技术
  8. 基于JAVA+SpringBoot+Mybatis+MYSQL的校园招聘管理系统
  9. AI 如何应用于油气勘探?
  10. 解决ajax中文乱码问题
  11. 使用UIImageView实现加载GIF图片
  12. Python 批量修改PDF文件名
  13. (Oracle入门篇2)Oracle新增表字段,修改表字段,删除表字段
  14. python笛卡尔坐标系_THREE笛卡尔右手坐标系详解
  15. K均值 - 案例实现(python)
  16. 2017-2018 ACM-ICPC, Asia Daejeon Regional Contest
  17. 一步步教你搭建Android开发环境(有图有真相)--“自吹自擂:史上最详细、最啰嗦、最新的搭建教程”
  18. DIY自平衡车意外失去左腿后,小哥爆改假肢玩出了花,稚晖君:技术到内心都硬核...
  19. SQLyog数据库导出数据 避免科学记数法
  20. ucenter应用通信过程

热门文章

  1. guava 集合上 三
  2. Android TV 开发 (1)
  3. Docker系列教程15-Docker容器网络
  4. select学习小demo--实现网页换肤
  5. 1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
  6. Linux shell逐行读取文件的方法
  7. Android签名证书
  8. 问题九:C++中::是干嘛用的(域解析操作符)
  9. 大数据给企业带来的好处有哪些
  10. 数据分析数据挖掘(三)