微信小游戏开发教程-2D游戏原理讲解

原理

为了更加形象的描述,这里先上一张图:

  1. 背景

    a. 首先,我们看到背景好像是一张无限长的图片在向下移动。实际则不然,这是一张顶部和底部刚好重叠的图片。这是一种节省资源讨巧的做法,然后绘制的时候同时绘制两张刚好拼接在一起,下面我们画一张图来形象的说明。

    b. 我们看到这张图片是首尾可以拼接到一起的一张图片,然后两张图拼一起一起是下面这样:

    c. 下面红色的框代表屏幕显示的区域,就飞机大战的情况我们将背景图的初始状态设置如下:

    d. 然后让图片逐渐往下移,我们看到中途的状态是这样:

    e. 最后移动到最顶部的时候重置到最初的状态,这样就实现了背景图的无限循环。这是2D游戏中常用的背景图技巧。

  2. 物体移动

    游戏中敌人的移动和子弹的移动还有玩家自身机体的移动我们统一称为物体的移动。

    先来看敌人和子弹的移动,这实际上就是一张图片在屏幕上竖直方向上移动。然后不断刷新位置,人眼看到就像是在移动一样。

  3. 边缘检测

    玩家操控的机体我们要控制它在屏幕内,超出屏幕外就会很奇怪,所以这里要做以下边缘检测,当玩家移动到屏幕外时限制到屏幕边缘无法往边缘外移动。

  4. 碰撞检测

    游戏中我们看到,子弹打中敌人的时候就代表了消灭敌人,什么情况下才是打中了敌人呢?当子弹和敌人机体碰撞的时候即代表打中了敌人。如何判断子弹打中了敌人?这里我们用一种较为简单的方法判断,旨在说明碰撞检测原理。

    我们假设敌人飞机在屏幕上是一个放快,子弹也是一个方块。这两个方块在屏幕上都有绝对坐标,当这两个方块的区域有重合的时候即发生了碰撞。这样碰撞检测就很容易做,即判断两个矩形的区域是否重合即可。以上就是所谓的碰撞检测。

微信小游戏开发教程-2D游戏原理讲解相关推荐

  1. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  2. 视频教程-微信小程序开发教程(第1篇)-微信开发

    微信小程序开发教程(第1篇) 微信企业号星级会员.10多年软件从业经历,国家级软件项目负责人,主要从事软件研发.软件企业员工技能培训.已经取得计算机技术与软件资格考试(软考)--"信息系统项 ...

  3. 微信小程序开发教程:项目六媒体组件 课后习题

    <微信小程序开发教程>主编/黄寿孟 易芳 陶延涛 湖南大学出版社 目录 一.单选题 二.多选题 三.判断题 四.填空题 五.简答题 请简单列举音频接口API创建的InnerAudioCon ...

  4. 微信小程序开发分销制度济南_花店微信小程序开发教程

    如何将自己的鲜花商品快速配送出去,避免鲜花过期浪费,是很多传统花店商家的难题.不过随着微信小程序的出现,这一难题也渐渐得到了解决.花店商家可以通过自己的小程序商城,打通线上渠道,可以加大推广.扩大销量 ...

  5. 微信小程序开发教程第七章:微信小程序编辑名片页面开发

    前面我们更新了六篇的微信小程序开发教程,现在更新第七章:微信小程序编辑名片页面开发,(第一二章:微信小程序开发教程,第三四章:微信小程序项目结构以及配置&微信小程序首页面开发,第五章:微信小程 ...

  6. 微信小程序开发教程第八章:微信小程序分组开发与左滑功能实现

    接着上面微信小程序开发教程第八章:微信小程序分组开发与左滑功能实现.(第一二章:微信小程序开发教程,第三四章:微信小程序项目结构以及配置&微信小程序首页面开发,第五章:微信小程序名片夹详情页开 ...

  7. 小程序开发用什么编程语言_微信小程序开发教程是什么?费用多少?

    微信小程序如今已经非常常见,渗透到了我们日常生活的方方面面,包括生活服务.出行.点餐.电商购物.企业展示--商家可以开发适合自己行业的小程序,以吸引线上用户,同时提高自身服务运营效率.不过这些不同种类 ...

  8. 微信小程序开发语言(微信小程序开发教程)详细步骤

    微信小程序开发语言 开发微信小程序用什么语言 1.微信小程序开发所需要的语言比较特别,首先介绍一下需要使用到的文件类型大致分为:WXML(WeiXin Mark Language 微信标记语言).WX ...

  9. 零基础入门,花生壳骨灰级微信小程序开发教程

    微信小程序早已成为企业运营必不可少的一部分,对于小程序的开发需求也只增不减,而一个小程序在使用过程中是否流畅,也关系者用户体验度. 微信小程序的优势和特点: 一.不占内存 现在很多人都会遇到手机内存不 ...

最新文章

  1. JDK源码研究Jstack,JMap,threaddump,dumpheap的原理
  2. Stream Processing:滑动窗口的聚集(aggregation)操作的优化算法讲解
  3. 宝塔apache mysql_商淘多商户商城系统部署之宝塔面板(Nginx/Apache+MySQL+PHP7.1)
  4. Python 常用函数 configparser模块
  5. 牛!Python 全栈必备的 150 个实战案例,一次性获得!
  6. spring 多数据源 总结
  7. new jQuery.common
  8. mysql日常工作中批量插入效率问题
  9. SSM框架:MyBatis
  10. EpiDope:用于线性B细胞表位预测的深度神经网络
  11. 使用Python进行数独求解(一)
  12. 申请亚马逊AWS一年免费服务器
  13. 如何去掉字符串中第一个和最后一个字符 比如是;
  14. 【Selenium IDE】下载安装Chrome和Firefox插件IDE
  15. java群发邮件_JAVA邮件群发 - Java-Android-jwebee - BlogJava
  16. 龙格库塔(runge-kutta,RK)法求解微分方程
  17. 如何重键盘输入“勾”“打勾””√“这个符号
  18. Elasticsearch集群的脑裂问题
  19. Multisim开启高频电路仿真(1)高频小信号放大器
  20. IEO大溃败进行时 |链捕手

热门文章

  1. 另一个小程序 返回的支付结果如何得到_手把手教你测微信小程序
  2. Oracle ASM 翻译系列第十二弹:ASM Internal amdu - ASM Metadata Dump Utility
  3. 百度ueditor 拖文件或world 里面复制粘贴图片到编辑中 上传到第三方问题
  4. Yahoo为啥赚不到钱
  5. oracle 学习小结11
  6. 号外:Mapinfo被Pitney Bowes公司收购
  7. 对于css的简化属性
  8. 记录Datagrid使用的一些事项
  9. SpringBoot系列: Web应用鉴权思路
  10. node.js+express,实现RESTful API