版权声明:

  • 本文原创发布于博客园"优梦创客"的博客空间(网址: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)。

七、扩展方向

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

转载于:https://www.cnblogs.com/raymondking123/p/8424652.html

Unity经典游戏教程之:是男人就下100层相关推荐

  1. Unity经典游戏教程之:松鼠大作战2

    版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址: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. OpenGL2D小游戏——是男人就下100层

    2019独角兽企业重金招聘Python工程师标准>>> 是男人就下100层想必大家一定都玩过,在这里给大家简单介绍一下游戏规则. 游戏规则: 游戏人物从屏幕上方按一定速率下落,同时台 ...

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

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

  8. 是男人就下100层【第五层】——换肤版2048游戏

    ---------------------------------------------------------------------------------------------------- ...

  9. 是男人就下100层【第五层】——2048游戏从源代码到公布市场

    上一篇<是男人就下100层[第五层]--换肤版2048游戏>中阳光小强对2048游戏用自己的方式进行了实现,并分享了核心源码,这一篇阳光小强打算将该项目的全部源码公开并结合这个实例在这篇文 ...

最新文章

  1. java中线程切换的开销
  2. Selenium最全超时等待问题的处理方案
  3. 自学Zabbix3.0版本以上资产清单inventory
  4. how mang libraries do we have: 139
  5. 求4个数字组成的不重复三位数,Python简洁解法
  6. django-行对向的反向查找
  7. linux终端打开文本编辑器,linux - Linux打开默认终端文本编辑器 - 堆栈内存溢出
  8. 改造二叉树 (长乐一中模拟赛day2T1)
  9. lastLogon和lastLogonTimestamp的区别
  10. 透过“简书钻”来探究简书的商业模式转变
  11. DOCKER基础技术:LINUX CGROUP
  12. 浅谈下对volatile的理解
  13. Flash CS4从入门到精通
  14. 为什么蓝鸽的听力下载完还是听不了_听力训练方法干货-说说我与雅思听力的那些事情...
  15. Boost常用库介绍
  16. 怎样才能走上架构师岗位
  17. android局域网设备查看器,局域网查看工具(LanSee)
  18. 数值优化学习十八——SQP
  19. 《网络攻防》第二周作业
  20. 区块链是什么,如何去理解?

热门文章

  1. element table 组件内容换行方案
  2. 201771010112罗松《面向对象程序设计(java)》第三周学习总结
  3. 关于python的单线程和多线程
  4. C#中数据库事务、存储过程基本用法
  5. 【转】Linux如何在系统启动时自动加载模块
  6. asp.net FileUpload上传文件夹并检测所有子文件
  7. linux命令之seq
  8. kafka监控工具kafkaOffsetMoniter的使用
  9. 物理路径与虚拟路径 及Web Server
  10. 将Android源码集成到Eclipse中的方法