2D游戏案例:(平台下落类)Solo Fall
编译环境:Unity2020
作者:代码骑士
邮箱:1696297834@qq.com
最后修改时间:2022/2/26
一、游戏程序演示
二、游戏玩法
按下ad键控制角色移动,躲避障碍物攻击同时避免角色掉落平台,坚持时间长者获胜。
三、制作步骤
1、准备素材
unity素材商店下载资源pixel Ad - Asset Store (unity.com)https://assetstore.unity.com/?q=pixel%20Ad&orderBy=1 搜索:Pixel Adventrue
选择这个素材并下载。
点击在unity中打开将素材包内容全部导入。
2、开始制作:
(1)游戏背景
Hierarchy右键选择3Dobject选择Quad,重命名background,调整quad和相机大小到合适尺寸。
Assets文件夹右键创建Material,命名BackGround,
点击下拉菜单,选择Unlit选择Textture ,
点击select添加图片
将做好的材质挂给BackGround
目前视角
创建脚本 backgroundMovement
using UnityEngine;public class backgroundMovement : MonoBehaviour
{Material material;//定义材质变量Vector2 movement;//定义二维向量public Vector2 speed;//二维向量的速度void Start(){material = GetComponent<Renderer>().material;//获取渲染组件里面的材质模块}void Update(){movement -= speed * Time.deltaTime;//设置每帧移动速度if(movement.y<-1.5){movement.x = 0;movement.y = 0.85f;//循环}material.mainTextureOffset = movement;//位移差值等于速度}
}
因为材质只有X和Y,所以用Vector2控制位置。
在X与Y方向增加速度即可。
点击播放,画面就开始移动了。
(2)设置最上方的陷阱
在资源文件夹里找Traps选择spikes。
调整像素大小为16点击应用。将其中一个图片拖入Hierarchy,position里面的Z调为-1(使他到背景前面)下一行的z调为180,使他翻转。
ctrl+D复制一排
创建空物体取名SpikeTop,将所有尖刺装进去
给整体加上物理组件
勾选is Trigger
(3)创建平台
选择一张素材拉进hierarchy,同时添加物理组件。
制作动画
设置平台消失标记
平台移动脚本 PlatFormMove
using UnityEngine;public class PlatFormMove : MonoBehaviour
{Vector3 movement;//transform是3D组件所以用Vector3GameObject topline;//获取标志物public float speed;//定义平台上升速度void Start(){movement.y = speed;topline = GameObject.Find("TopLine");}void Update(){MovePlantForm();}void MovePlantForm(){transform.position += movement * Time.deltaTime;//平台上升if (transform.position.y >= topline.transform.position.y)//如果到达标记位就消失Destroy(gameObject);}
}
挂给创建的平台,使他向上移动
创建另一个物体:旋转平台
添加组件
Hinge joint 1=2D:以中心点旋转
同样的方式可以多加几个。
(4)添加角色
添加物理组件
判断角色是否接触到平台
创建子物体,编写代码PlayerController
using UnityEngine;public class PlayerContrler : MonoBehaviour
{Rigidbody2D rb;float xVelocity;public float speed;public bool isOnGround;public float checkRadius;public LayerMask platform;public GameObject groundCheck;bool playerDead;bool jump;void Start(){rb = GetComponent<Rigidbody2D>();//获取物理组件anim = GetComponent<Animator>();//获取动画组件jump = true;}void Update(){isOnGround = Physics2D.OverlapCircle(groundCheck.transform.position, checkRadius, platform);if (isOnGround) jump = true;Movement();}void Movement(){xVelocity = Input.GetAxisRaw("Horizontal");if (Input.GetKey("w")&&jump == true){if(isOnGround){rb.velocity = new Vector2(rb.velocity.x, 10f);jump = false;}}rb.velocity = new Vector2(xVelocity * speed, rb.velocity.y);if (xVelocity != 0)transform.localScale = new Vector3(xVelocity, 1, 1);}private void OnDrawGizmosSelected(){Gizmos.color = Color.red;Gizmos.DrawWireSphere(groundCheck.transform.position, checkRadius);}}
2D游戏案例:(平台下落类)Solo Fall相关推荐
- 2D游戏案例:Ruby‘s Adventure
程序文件打包: 链接:https://pan.baidu.com/s/1wyV_4k45eXhzrrq0_CVfQw 提取码:olhi 目录 第一步:导入素材 第二步:编写第一个脚本 第三步:绘制游 ...
- 创意h5游戏案例:记忆类H5手机游戏评测
翻牌记忆类游戏模式深受广大玩家的喜爱,TOM游戏在年末之际为大家带来了一款翻牌记忆类的游戏,此作品也极有可能成为今年H5游戏经典的代表作之一,如果你在游戏过程中有更加深层次的对于该款游戏的经验心得,欢 ...
- 2D游戏案例:《诗梦游记》
参加计算机设计大赛团队做了一个月的游戏,我负责游戏策划和主体框架及除美工和数据库连接外的所有代码的编写和小功能实现,以下是我对该项目进行的总结. 目录 一.游戏流程图 场景编号: 二.分块剖析 1. ...
- 2D游戏案例:爱死亡与罗伯特
目录 导入素材 创建像机 角色代码修改 场景搭建 第一关是悬浮球 第二关:摇摆秋千 第三关:大摆锤 第四关:死亡风车 第五关:心悸梅花桩 第六关:断桥 第七关:天梯 其他的功能代码 游戏重新开始代 ...
- 2D游戏案例:Unity答题系统(MySQL版)
目录 1.将准备好的题目存储在数据库中: 2.连接与查询 (1)建立连接与查询全部表数据代码: (2)获取当前题目总数代码: (3)插入新题目代码 (4) 删除指定题目代码 (5)修改指定题目代码 ...
- 2d游戏和 3d游戏的区别
2D游戏和3D游戏的主要区别 一.总结 一句话总结:2D中的单位就是贴图,3D中的单位还有高 1. 3D 和 2D 游戏的区别主要体现在呈现画面和文件体积上: 2. 借助 3D 引擎可以提升 2D 游 ...
- 2D游戏和3D游戏的主要区别
游戏的体现形式最主要是 2D 和 3D.最近比较流行的 AR/VR 等,都是属于 3D 类的体现形式. 最初的游戏,2D 是绝对的主流.虽然现如今 3D 游戏大行其道,但是 2D 游戏还是 ...
- 网页及移动平台2D游戏开发探索
最近入手了一台Nexsus S,发现在移动平台上3D游戏的体验比较差,还是2D细腻的画面表现力更好,也更适合休闲游戏的开发,于是搜索了一下2D游戏开发环境: 1. 可以跨PC,IOS,Android的 ...
- java打字游戏和解析_java类与对象案例之打字游戏
类与对象案例-童年回忆之打字游戏 一.玩家类 二.等级类 三.游戏类 四.等级地图 五.测试类 这次要做的案例是一个打字游戏的案例,相信大家小时候都玩过金山打字通的警察抓小偷和飞机大战,这次的案例是类 ...
- Qt 2D游戏引擎QtGameEngine使用入门案例
Qt Game Engine (QGE) 是一个用 C++ 编写的2D游戏引擎,构建在 Qt 框架之上.它提供了一个非常简单有趣的使用界面,用于从自上而下或有角度(例如等轴测)的角度创建您自己的 2d ...
最新文章
- 刚安装的python如何使用-Python requests的安装与简单运用
- Go的net/http
- Spark数据倾斜的完美解决
- 谈谈你对IOC的理解
- 三菱plc选型手册_模拟量是什么?PLC和模拟量是如何转换的?
- zabbix监控suse linux,SuSE 系统之部署 Zabbix 监控服务
- 关于sizeof在不同平台下的值
- php网站评论模块怎么写,模块内容评论循环
- Spring boot(4) web开发(2) 请求处理、响应处理、模板引擎
- 中国语言文学研究是c吗c,中国语言文学研究杂志
- 备份校验两不误,MySQL自动备份还原校验设计详解
- 有监督学习 无监督学习
- TFS环境搭建--MSSQL2008安装
- iOS APP中第三方APP调用自己的APP,打开文件
- for ihs linux_在IBM的IHS上编译PHP(redhat 5.5 64位的环境)
- Java异常框架设计
- Web前端开发工程师常用技术网站整理
- 物联网产品中选择服务器的重要性
- 公司安全邮箱格式地址怎么写?安全邮件系统
- Linux架设代理服务器