【Unity游戏开发笔记】手游-涂鸦弹跳开发分析
涂鸦弹跳游戏截图
游戏类型:2D跳跃类
游戏风格:简朴
游戏技术分析:
1、实现玩家弹跳功能
利用2D刚体直接添加一个向上的Impluse冲击力即可,加力之前将刚体velocity速度设置为0
2、游戏物体分析
2.1、Tile落脚点方块
分为六种:普通(绿色)、强力弹簧(红色)、坏的(灰色)、只能弹一次的(黄色)、左右移动的(蓝色)、上下移动的(蓝色)。
当玩家刚体y轴速度为负数时(即下落状态),触碰到Tile则会触发相应的事件,如:红色的会让玩家弹得更高,灰色的不会让玩家弹,而是自己会掉落,掉落逻辑是给Tile的刚体添加重力,玩家死亡时也会掉落处理方法一样。
2.2、道具
道具仅有飞行器(2种类型),飞行器可以让玩家向上飞,即直接用Translate方法向上移动即可,玩家飞行时是不会受到重力影响的!
2.3、怪物
怪物的处理基本是有左右移动的 或者不会动的,需要设置移动速度、移动范围,碰到玩家后游戏结束,被子弹打中后会怪物死亡。
3、利用资源池缓存以上物体,因为会经常使用。
资源池是使用了队列Queue来进行缓存的,实现非常简单,就只是为每种物体创建一个队列进行缓存,在游戏开始时实例化一堆物体,放入队列,当需要拿的时候从相应队列取出,PS:回收回去的时候记得要恢复默认状态。
4、各种物体实例化的位置和比率问题
4.1、Tile物体是随机生成位置的,其类型也是随机的,是通过一个类为每种Tile设置权值weight,而生成哪种Tile是根据其weight临界点与从[0~总权值]范围随机出的数进行比较得知,举例如:绿色(50),红色(30),黄色(20),灰色(10),蓝色(10) 那么总权值就是50+30+20+10+10=120, 随机数在[0,120]之间,而其绿色临界点是50,红色是80,黄色100,灰色110,蓝色120,只要随机数小于等于临界点,就生成哪种Tile,注意判断顺序是从小到大的临界点判断的,例如:随机数是40,那么在第一个判断40<=50就满足条件了,如果是80,那么在第二个判断才满足条件。
4.2、怪物先考虑要不要生成,其次是生成什么类型怪物是直接平均随机的,即若有3种怪物就是1/3几率。
4.3、道具如飞行器仅有一个,考虑的问题是要生成 还是不要生成,首先是考虑生成不生成,其次是考虑生成什么类型 也是平均几率随机。
5、摄像机跟随玩家功能
按照我目前理解是,当玩家头顶上的空物体(即目标物体target)大于屏幕中心点位置后,摄像机会逐渐向 摄像机位置+(屏幕中心点指向目标物体target)的位置进行靠拢。(有点混乱,一般是摄像机保持与玩家初始的向量偏移,即时时跟随玩家,玩家怎么动,摄像机就怎么动!而这种是只有当玩家头顶的空物体超过屏幕中心点后,摄像机才会向上偏移,注意摄像机不会向下跑的了!!!)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class FollowTarget : MonoBehaviour {public Transform target;Vector3 velocity = Vector3.zero;float dampTime = 0.5f;private void Update(){if (target){Vector3 pos = Camera.main.WorldToViewportPoint(target.position);//目标位置与视口中心点位置的向量Vector3 delta = target.position - Camera.main.ViewportToWorldPoint(new Vector3(0.5f, 0.5f, pos.z));Vector3 destination = transform.position + delta;//摄像机x轴不移动destination.x = 0;//当delta为正向值时,即目标位置大于中心点位置时,该条件成立if(destination.y > transform.position.y){//缓慢地改变位置朝着目标位置移动transform.position = Vector3.SmoothDamp(transform.position, destination, ref velocity, dampTime);}}}
}
【Unity游戏开发笔记】手游-涂鸦弹跳开发分析相关推荐
- 视频教程-H5入门-系列手机游戏开发-过河-手游开发
H5入门-系列手机游戏开发-过河 20年软件项目开发管理经验 工信部人才交流中心特聘专家讲师 日本U-CAN在线教育特聘主任讲师 国家十二·五规划软件工程教材作者(书:清华大学出版社出版) 中国软件行 ...
- 视频教程-红孩儿网狐Cocos经典棋牌开发教程-手游开发
红孩儿网狐Cocos经典棋牌开发教程 中国早期游戏程序员,2003年起从事游戏程序开发,负责开发过多款游戏项目,曾担任大型端游<无限世界>自研引擎技术负责人,2012年起关注Cocos引擎 ...
- Unity 游戏黑暗之光笔记第五章 背包系统的实现
Unity 游戏黑暗之光笔记 第五章 背包系统的实现 详细过程参考,笔者一直有BUG--导致后面的很多内容没法写全 1.开发功能按钮 注意Anchors的位置,可以让图标在窗口变化时保持相对位置不会变 ...
- Unity 游戏黑暗之光笔记第一章 完善场景
Unity 游戏黑暗之光笔记 第一章 完善场景 1. 导入资地形.地貌资源,新建场景,导入地形.地貌prefab 2. 设置相机与视野匹配 选中主摄像机,点选菜单栏中GameObject > A ...
- Unity 游戏黑暗之光笔记第四章 任务系统的实现
Unity 游戏黑暗之光笔记 第四章 任务系统的实现 具体步骤可以看RPG游戏<黑暗之光>流程介绍与代码分析之(四) 注意要点 在把鼠标放在任务面板上点击时,为了让角色不移动,在Playe ...
- 【放置江湖】弱联网手游,网络协议分析修改。每天签到可获得35元宝
[放置江湖]弱联网手游,网络协议分析修改教程. 每天签到可获得35元宝,开启方法,WLAN ->已连接的wifi (>)小图标 -> 代{过}{滤}理 ->代{过}{滤}理自动 ...
- ATECC508A芯片开发笔记(二):开发准备之 CryptoAuthLib 库简介与移植
目录 ATECC508A芯片开发笔记(二):开发准备之 CryptoAuthLib 库简介与移植 Atmel两个官方lib介绍 一.CryptoAuthLib简介 Lib中最主要的三种对象类型: 二. ...
- 硬件开发笔记(六): 硬件开发基本流程,制作一个USB转RS232的模块(五):创建USB封装库并关联原理图元器件
`该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/125369228 红胖子网络科技博文大全:开发技术集合( ...
- 硬件开发笔记(八): 硬件开发基本流程,制作一个USB转RS232的模块(七):创建基础DIP元器件(晶振)封装并关联原理图元器件
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/125370284 红胖子网络科技博文大全:开发技术集合( ...
最新文章
- create-react-app 2.0中使用antd(eject)
- Terraform 是什么?
- 30幅非常漂亮的微距摄影作品欣赏
- 大型高并发高负载网站的系统架构(转)
- hashmap boost
- Spring+Mybatis多数据源配置(二)——databaseIdProvider的使用
- linux中_在 Linux 桌面中开始使用 Lumina | Linux 中国
- fabric.js 不同类型 不同控件_策略模式支持不同类型的消息队列
- html页面性能优化两则
- 大数据只做三件事,对用户的理解、对信息的理解、对关系的理解
- Java编译出现不可映射字符
- 追光的人beta冲刺总结
- 刷题集--贪吃的九头龙
- 狗是人类最忠诚的伙伴,当狗遇到不同的人会有不同的反应,下面要求编写一个案例模拟狗遇到不同的人时的反应。
- 数值分析(7)-非线性方程求根
- ERROR 1010 (HY000): Error dropping database (can't rmdir './library', errno:
- 快速上手Django(二) Django 根据模型(models)生成更新数据库表make migrations
- mac 爱普生打印机驱动_爱普生l201打印机驱动下载Mac版-爱普生L201驱动Mac版下载 V8.7.5-PC6苹果网...
- linux(centos7)内核升级
- 关机整蛊小程序(c语言实现)