一个极其简陋的贪吃蛇,就不从新建项目一一赘述了,将完全:

1、首先说一下设想:

  

背景框,四边围墙,碰撞死亡,

初始状态,一个蛇头一个蛇身,WSAD控制上下左右,

随机出现食物,蛇头吃掉食物后,增长,食物的随机生成要避开蛇头蛇身

2、移动

协程控制,蛇身用列表存储,每次蛇头向前移动一格,第一节蛇身移动到蛇头位置,后面一次移动到上一节蛇身位置(此处要倒序移动,就是最后一节(蛇尾)先动)。

private IEnumerator Move()
{for (int i = bodys.Count; i > 1; i--){bodys[i].position = bodys[i - 1].position;}bodys[0].transform.position = head.position;head.Translate(direction * sizeGride);isRotating = false;yield return new WaitForSeconds(1f/ speed);StartCoroutine(Move());
}

3、转向

改变下一次蛇头移动的方向,只能转90度,此处要注意,不可直接进行两次转向,所以以一个bool值限定了一下。

private void Rotate()
{if (isRotating)return;if (Input.GetKeyDown(KeyCode.W) && direction.x != 0){SetDirection(Vector3.up);}else if (Input.GetKeyDown(KeyCode.S) && direction.x != 0){SetDirection(-Vector3.up);}else if (Input.GetKeyDown(KeyCode.A) && direction.y != 0){SetDirection(-Vector3.right);}else if (Input.GetKeyDown(KeyCode.D) && direction.y != 0){SetDirection(Vector3.right);}
}
private void SetDirection(Vector3 dir)
{isRotating = true;direction = dir;
}

4、食物生成

采用坐标地图,生成食物时,避免生成在蛇身上

/// <summary>
/// 生成食物
/// </summary>
public void NewFood()
{food = Instantiate(Resources.Load<Transform>("Food"), transform.parent);food.name = "Food";pointsSnake.Clear();pointsSnake.Add(head.position);for (int i = 0; i < bodys.Count; i++){pointsSnake.Add(bodys[i].position);}List<Vector2> pointsCanNewFood = points.Except(pointsSnake).ToList();System.Random rd = new System.Random();int index = rd.Next(pointsCanNewFood.Count);food.position = pointsCanNewFood[index];
}

5、蛇身生长

/// <summary>
/// 蛇生长
/// </summary>
public void AddBody()
{Transform newBody = Instantiate(bodys[1], transform);newBody.name = "Body";newBody.position = oldPosition;bodys.Add(newBody);
}

目前死亡判断还有问题。

Unity小游戏(二)——贪吃蛇相关推荐

  1. cocos creator开发微信小游戏(五)贪吃蛇大作战

    目录 小游戏介绍 小游戏cocos creator场景图 小游戏部分JS代码 开发中碰到的问题 工程及说明 小游戏介绍 贪吃蛇小游戏:贪吃蛇试玩(首次加载比较慢),类似贪吃蛇大作战的小游戏.当玩家的蛇 ...

  2. 超级详细的注释C语言简单实现童年小游戏:贪吃蛇

    引言: 记得小时候还没有现在超级高端的智能手机,当时的诺基亚类型的老人机是我的最爱,而里面的贪吃蛇小游戏我总是能玩很久,所以今天就用C语言简单实现一下贪吃蛇这一个小游戏吧. 一. 准备工作: 1.VS ...

  3. Scratch图形化编程之简单小游戏(贪吃蛇)

    目录 一.前言介绍 二.对象及其背景 三.面向对象的模块程序 3.1 贪吃蛇头 3.2 贪吃蛇身 3.3 Apple 四.成果展示 一.前言介绍 运用Scratch图像编程化编程,制作了一个能够通过按 ...

  4. C语言 小游戏之贪吃蛇

    还记得非常久曾经听群里人说做贪吃蛇什么的,那时候大一刚学了C语言,认为非常难,根本没什么思路. 前不久群里有些人又在谈论C语言贪吃蛇的事了,看着他们在做,我也打算做一个出来. 如今大三,经过了这一年半 ...

  5. 基于RT-Thread实现的小游戏(贪吃蛇、俄罗斯方块)

    前言:本实现基于stm32芯片,移植RT_Thread Nano系统源码,实现两个小游戏(贪吃蛇/俄罗斯方块).本实验提供完整的IAR工程源码并且有很多注释,是一个不错的参考例程.关键知识点:OLED ...

  6. JavaScript+ Canvas开发趣味小游戏《贪吃蛇》

    一.效果展示 二.<贪吃蛇>基本实现思路 蛇头部分+蛇身体部分:采用对象形式来存储坐标,并将每个坐标对象放到一个snake数组中,方便使用.设置每个方格宽度30px,高度30px,画布高度 ...

  7. 贪吃蛇html网页小游戏,网页贪吃蛇HTML5小游戏制作

    贪吃蛇是以前我们经常在手机里玩的一个小游戏,现在要是把它搬到网页上也会让人更回味.这是一款非常有趣的HTML5响应式网页贪吃蛇小游戏.在游戏中你可以使用键盘的上下左右来控制蛇的运动方向.现在要列出的是 ...

  8. Python小游戏:贪吃蛇——turtle的使用

    突然想把去年写的小游戏练习整合一下,写一个简单的教学文章吧. 该篇主要讲解利用python中turtle包制作小游戏,不涉及pygame的使用,仅用pycharm就可实现 0.理清游戏思路 要实现的效 ...

  9. python写的贪吃蛇小游戏_Python贪吃蛇小游戏

    贪吃蛇 1. 导入游戏库 # 1.导入库 import pgzrun import random 2.游戏初始化 # 2.初始化 # 窗口大小 WIDTH = 600 HEIGHT = 480 # 贪 ...

  10. C#简单小游戏之贪吃蛇

    贪吃蛇的创建 1:声明地图 通过声明一个40x40的地图 把边界都表示为墙  为55 private int[,] Map = new int[40, 40];//地图 我把0作为当前位置为空,可以行 ...

最新文章

  1. golang不编译.html,golang之条件编译
  2. IEEE:2021年的机遇、挑战以及关键的科技趋势
  3. 利用 RDA5807的RSSI测量RF强度
  4. [python]自问自答:python -m参数? (转)
  5. POJ1195Mobile phones
  6. 全世界的狗都没有“生殖隔离” | 今日趣图
  7. 【渝粤教育】电大中专会计电算化 (2)作业 题库
  8. Nginx(三):反向代理
  9. c3p0连接池的配置和简单使用
  10. Js实现文字水平滚动
  11. win10固态硬盘分区 整数_固态硬盘怎么重装win10系统?Win10固态硬盘重装系统教程...
  12. jqueryui引用出错(base is not a constructor,widget no found)
  13. AWSome Day 2019 线上云技术课堂(2)
  14. 基础知识点|命令执行漏洞相关总结
  15. QT 之QPainter画点
  16. 【爆笑】句经典流行俏皮语【爆笑】[
  17. EXCEL 子母饼图
  18. 基于微信小程序的免费小说阅读平台小程序的设计与实现 毕业设计 毕设源码(1)小程序功能
  19. 团队任务3每日立会(2018-10-26)
  20. 正则表达式获取图片地址及超链接

热门文章

  1. mac 好玩的软件推荐
  2. 无处不在的算法---《算法神探》读后感
  3. 接口自动化测试平台Lego ------ 美团接口自动化测试超全实践【3000字长文】
  4. 2023年黑马程序员Java学习路线图
  5. Spring Cloud 微服务项目操作实战流程(完结)
  6. 把大象装冰箱,需要分几步?- - -迅雷产品经理笔试、面试回顾
  7. .ServletException: Circular view path [index]: would dispatch back to the curren这是springboot
  8. 死锁的四个必要条件和解决办法
  9. SSM中监听器调用service层空指针异常
  10. 大厂没有方法论(下)