版权声明:

  • 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客"(微信号:unitymaker)
  • 您可以自由转载,但必须加入完整的版权声明!

是男人就下一百层

一、游戏介绍

是男人就下100层这是一个很受欢迎的小游戏。设计者所取的游戏名称以及它特有的挑战性令几乎所有的男同胞们都一如既往的去暴机,这个游戏同样也吸引了广大的女性,相当有挑战性。

  • 中文名 是男人就下100层
  • 原版名称 man down
  • 游戏类型 休闲游戏

使用方向键左右控制小人,要防止被托上去挤死,防止掉下去摔死以及防止踩到陷阱。

二、场景搭建

  • 导入游戏资源,确保Sprites文件夹里的资源的Texture Type为Sprite

  • 打开Sprite Mode的Sprite Editor,对图片进行切割,点击Apply进行保存。

  • 将云彩(cloud、darkcloud)、背景图(game background)拖进场景,其中背景图为背景(Background),其他作为前景(Foreground)。

三、主角设置

1.拖入主角

将主角拖入场景之中并将其命名为Player,将主角Player设置在Foreground前景层。

2.主角动画

打开动画控制器,创建主角的动画walk动画和Idel动画。把主角图片拖到时间轴上其中walk动画每0.01秒一张。Idel动画只需要拖一张。

3.主角移动的实现

  • 给主角添加刚体(Rigidbody 2D)、添加碰撞器(box Collider 2D)

  • 给主角添加脚本Player。给角色设置一个最大速度maxSpeed。设置一个力量force。保存Rigidbody 2D

    通过Horizontal取得水平上的按键0=什么也没按。1=右键。2=左键.

    public float MaxSpeed = 4;
    public float Force = 4;
    public Rigidbody2D mybody;
     void PlayerMove()
    {
    var x = Input.GetAxis("Horizontal"); var xforce = 0.0f; if(x > 0)
    {
    xforce = Force*x;
    myAnimator.SetBool("walk", true);
    this.gameObject.transform.localScale = new Vector3(1, 1, 1);
    }
    else if(x < 0)
    {
    xforce = Force*x;
    myAnimator.SetBool("walk", true);
    this.gameObject.transform.localScale = new Vector3(-1, 1, 1);
    }
    else
    {
    xforce = 0;
    myAnimator.SetBool("walk", false);
    } var xspeed = mybody.velocity.x;
    if(Mathf.Abs(xspeed) >= MaxSpeed) {
    if(xforce * xspeed > 0) {
    xforce = 0;
    }
    } mybody.AddForce(new Vector2(xforce, 0));
    }

四、云彩设置

1.将云彩拖入场景

将云彩拖入场景之中并将其命名为cloud和darkcloud将云彩cloud和darkcloud设置在Background背景层。

2.设置云彩的生成

给云彩添加碰撞体Box Collider 2D,添加脚本CloudSpawn,建立cloud预制体和主角预制体player_0。将预制体Cloud和player_0拖入,Cloud 、player中。确保min x、max x、Distance Y、LastCloud Y的值。

 void CreateClouds()
{
var worldSize = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width, Screen.height, 0)); var worldSize2 = Camera.main.ScreenToWorldPoint(new Vector3(0, 0, 0)); minX = worldSize2.x + 1f;
maxX = worldSize.x - 1f; lastCloudY = 0;
for (var i = 0; i < clouds.Count; i++)
{
var cloud = clouds [i];
Vector3 pos;
float x = 0;
if (controlCloud == 0)
{
x = Random.Range(0, maxX);
controlCloud = 1;
}
else if (controlCloud == 1)
{
x = Random.Range(minX, 0);
controlCloud = 2;
}
else if (controlCloud == 2)
{
x = Random.Range(1, maxX);
controlCloud = 3;
}
else if (controlCloud == 3)
{
x = Random.Range(minX, -1);
controlCloud = 0;
}
pos = new Vector3(x, lastCloudY, 0);
cloud.transform.localPosition = pos; lastCloudY -= distanceY; } }

3.设置云彩的特殊功能

设置游戏角色player碰到darkCloud就会死亡

五、设置背景的滚动

游戏背景需要不断滚动,先把游戏背景图片再复制两份再把复制的背景拼接好注意不要留缝隙,再给图片添加碰撞体(Box Collider 2D)和脚本BG Scaler

void Start () {
SpriteRenderer sp = this.gameObject.GetComponent<SpriteRenderer>();
float width = sp.bounds.size.x; float swidth = Screen.width;
float sheight = Screen.height;
Debug.Log(swidth+" : "+sheight); float sz = Camera.main.orthographicSize;
float sc = sheight/swidth; float cameraHeight = sz*2;
float cameraWidth = cameraHeight/(sc); float spriteScale = cameraWidth/width;
this.transform.localScale = new Vector3(spriteScale, 2, 0);
}

五、角色死亡

设置游戏角色player碰到darkcloud就死亡和碰到游戏上下bound死亡。

    if (other.gameObject.tag == "darkCloud")
{ var cs = Camera.main.GetComponent<CameraScript> ();
cs.enabled = false;
transform.localPosition = new Vector3 (1000, 1000, 0);
//GameController.Instance.ShowGameOver (score, CoinCount); AudioSource.PlayClipAtPoint(dealSound, transform.position); LifeCount--; GameManager.Instance.CheckGameState (LifeCount, CoinCount, score);
} else if (other.gameObject.tag == "bound")
{
var cs = Camera.main.GetComponent<CameraScript>();
cs.enabled = false;
transform.localPosition = new Vector3(1000, 1000, 0);
//GameController.Instance.ShowGameOver(score, CoinCount); AudioSource.PlayClipAtPoint(dealSound, transform.position); LifeCount--; GameManager.Instance.CheckGameState(LifeCount, CoinCount, score);
}

六、背景音乐

先新建一个空节点命名为Music,在文件夹中找到音乐天空之城将其拉入Music选择循环播放(Loop),适当选择音量(Volime)。

七、扩展方向

  • 增加血量扣血
  • 增加道具吃道具加分
  • 添加敌人
  • 当层数越来越多时候速度越来越快

Unity经典游戏教程之:是男人就下100层的更多相关文章

  1. Unity经典游戏教程之:雪人兄弟

    版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...

  2. Unity经典游戏教程之:贪吃蛇

    版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...

  3. Unity经典游戏教程之:冒险岛

    版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...

  4. Unity经典游戏教程之:合金弹头

    版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...

  5. Unity经典游戏教程之:弓之骑士

    版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...

  6. HTML5游戏开发_是男人就下100层

    项目流程 市场调研(可行性分析)--> 可行性报告书  需求分析师.客户经理 需求分析--> 需求说明书  项目经理.需求分析师 概要设计--> 概要设计说明书(ER图, UML)  ...

  7. 超多经典 canvas 实例,动态离子背景、移动炫彩小球、贪吃蛇、坦克大战、是男人就下100层、心形文字等等等

    超多经典 canvas 实例 普及:<canvas> 元素用于在网页上绘制图形.这是一个图形容器,您可以控制其每一像素,必须使用脚本来绘制图形. 注意:IE 8 以及更早的版本不支持 &l ...

  8. 是男人就下100层【第四层】——Crazy贪吃蛇(2)

    在上一篇<是男人就下100层[第四层]--Crazy贪吃蛇(1)>中我们让贪吃蛇移动了起来,接下来我们来实现让贪吃蛇能够绕着手机屏幕边线移动而且能够改变方向 一.加入状态并改动代码 首先我 ...

  9. 是男人就下100层【第四层】——Crazy贪吃蛇(3)

    上一篇<是男人就下100层[第四层]--Crazy贪吃蛇(2)>实现了贪吃蛇绕着屏幕四周移动,这一篇我们来完成贪吃蛇的所有功能. 一.随机产生苹果 private void addAppl ...

随机推荐

  1. spring-boot-plus后台快速开发框架1.0.0.RELEASE发布了

    spring-boot-plus spring-boot-plus是一套集成spring boot常用开发组件的后台快速开发框架 官网地址:springboot.plus GITHUB:https:/ ...

  2. 每天学点node系列-http

    任何可以使用JavaScript来编写的应用,最终会由JavaScript编写.--Atwood's Law http模块概览 http模块主要用于创建http server服务,并且 支持更多特性 ...

  3. 新手如何学python?

    在学习Python前,你应该规划好自己的学习方向,毕竟Python的方向比较多,比如: web开发 爬虫 自动化开发(运维,测试).脚本开发 大数据(数据挖掘,数据分析) 人工智能.机器学习 选择好自 ...

  4. ES集群监控 之 Cerebro 0.8.3 安装及简单使用

    注意权限,不建议使用root,同es集群的启动用户相同即可 1. 下载 & 解压 # 下载 wget https://github.com/lmenezes/cerebro/releases/ ...

  5. 并发编程-concurrent指南-回环栅栏CyclicBarrier

    字面意思回环栅栏,通过它可以实现让一组线程等待至某个状态之后再全部同时执行. java.util.concurrent.CyclicBarrier 类是一种同步机制,它能够对处理一些算法的线程实现同步 ...

  6. HDU 3338:Kakuro Extension(脑洞大开的网络流)

    http://acm.hdu.edu.cn/showproblem.php?pid=3338 题意:在一个n*m的地图里面,有黑方块和白方块,黑方块可能是“XXXXXXX”或者“YYY/YYY”,这里 ...

  7. RabbitMQ windows 安装后 此时不应有 \RabbitMQ。

    在安装过程中,如果细心实际上在安装的细节显示starting Service后就已经提示这个问题,实际上就是没有注册到RabbitMQ这个服务. 在研究了很久之后才发现原来是安装路径的问题,原先是安装 ...

  8. 关于pcl索引的使用

    最近开始动手做实验,之前写了一个小实验利用到了PCL库中的索引: 现在在写利用PCL中的RegionGrowing类来分割生成面片,无论是迭代生成还是进行提取都需要用到pcl库中定义的索引, 虽然搞的 ...

  9. Java面试总结(一)

    1.equals和==和hashcode “==”是运算符,比较两个变量的值是否相等   equals是Object类的方法.比较两个对象是否相等   hashcode是Object类的方法,返回一个 ...

  10. Bzoj1972: [Sdoi2010]猪国杀 题解(大模拟+耐心+细心)

    猪国杀 - 可读版本 https://mubu.com/doc/2707815814591da4 题目可真长,读题都要一个小时. 这道题很多人都说不可做,耗时间,代码量大,于是,本着不做死就不会死的精 ...