Unity小游戏(二)——贪吃蛇
一个极其简陋的贪吃蛇,就不从新建项目一一赘述了,将完全:
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小游戏(二)——贪吃蛇相关推荐
- cocos creator开发微信小游戏(五)贪吃蛇大作战
目录 小游戏介绍 小游戏cocos creator场景图 小游戏部分JS代码 开发中碰到的问题 工程及说明 小游戏介绍 贪吃蛇小游戏:贪吃蛇试玩(首次加载比较慢),类似贪吃蛇大作战的小游戏.当玩家的蛇 ...
- 超级详细的注释C语言简单实现童年小游戏:贪吃蛇
引言: 记得小时候还没有现在超级高端的智能手机,当时的诺基亚类型的老人机是我的最爱,而里面的贪吃蛇小游戏我总是能玩很久,所以今天就用C语言简单实现一下贪吃蛇这一个小游戏吧. 一. 准备工作: 1.VS ...
- Scratch图形化编程之简单小游戏(贪吃蛇)
目录 一.前言介绍 二.对象及其背景 三.面向对象的模块程序 3.1 贪吃蛇头 3.2 贪吃蛇身 3.3 Apple 四.成果展示 一.前言介绍 运用Scratch图像编程化编程,制作了一个能够通过按 ...
- C语言 小游戏之贪吃蛇
还记得非常久曾经听群里人说做贪吃蛇什么的,那时候大一刚学了C语言,认为非常难,根本没什么思路. 前不久群里有些人又在谈论C语言贪吃蛇的事了,看着他们在做,我也打算做一个出来. 如今大三,经过了这一年半 ...
- 基于RT-Thread实现的小游戏(贪吃蛇、俄罗斯方块)
前言:本实现基于stm32芯片,移植RT_Thread Nano系统源码,实现两个小游戏(贪吃蛇/俄罗斯方块).本实验提供完整的IAR工程源码并且有很多注释,是一个不错的参考例程.关键知识点:OLED ...
- JavaScript+ Canvas开发趣味小游戏《贪吃蛇》
一.效果展示 二.<贪吃蛇>基本实现思路 蛇头部分+蛇身体部分:采用对象形式来存储坐标,并将每个坐标对象放到一个snake数组中,方便使用.设置每个方格宽度30px,高度30px,画布高度 ...
- 贪吃蛇html网页小游戏,网页贪吃蛇HTML5小游戏制作
贪吃蛇是以前我们经常在手机里玩的一个小游戏,现在要是把它搬到网页上也会让人更回味.这是一款非常有趣的HTML5响应式网页贪吃蛇小游戏.在游戏中你可以使用键盘的上下左右来控制蛇的运动方向.现在要列出的是 ...
- Python小游戏:贪吃蛇——turtle的使用
突然想把去年写的小游戏练习整合一下,写一个简单的教学文章吧. 该篇主要讲解利用python中turtle包制作小游戏,不涉及pygame的使用,仅用pycharm就可实现 0.理清游戏思路 要实现的效 ...
- python写的贪吃蛇小游戏_Python贪吃蛇小游戏
贪吃蛇 1. 导入游戏库 # 1.导入库 import pgzrun import random 2.游戏初始化 # 2.初始化 # 窗口大小 WIDTH = 600 HEIGHT = 480 # 贪 ...
- C#简单小游戏之贪吃蛇
贪吃蛇的创建 1:声明地图 通过声明一个40x40的地图 把边界都表示为墙 为55 private int[,] Map = new int[40, 40];//地图 我把0作为当前位置为空,可以行 ...
最新文章
- golang不编译.html,golang之条件编译
- IEEE:2021年的机遇、挑战以及关键的科技趋势
- 利用 RDA5807的RSSI测量RF强度
- [python]自问自答:python -m参数? (转)
- POJ1195Mobile phones
- 全世界的狗都没有“生殖隔离” | 今日趣图
- 【渝粤教育】电大中专会计电算化 (2)作业 题库
- Nginx(三):反向代理
- c3p0连接池的配置和简单使用
- Js实现文字水平滚动
- win10固态硬盘分区 整数_固态硬盘怎么重装win10系统?Win10固态硬盘重装系统教程...
- jqueryui引用出错(base is not a constructor,widget no found)
- AWSome Day 2019 线上云技术课堂(2)
- 基础知识点|命令执行漏洞相关总结
- QT 之QPainter画点
- 【爆笑】句经典流行俏皮语【爆笑】[
- EXCEL 子母饼图
- 基于微信小程序的免费小说阅读平台小程序的设计与实现 毕业设计 毕设源码(1)小程序功能
- 团队任务3每日立会(2018-10-26)
- 正则表达式获取图片地址及超链接
热门文章
- mac 好玩的软件推荐
- 无处不在的算法---《算法神探》读后感
- 接口自动化测试平台Lego ------ 美团接口自动化测试超全实践【3000字长文】
- 2023年黑马程序员Java学习路线图
- Spring Cloud 微服务项目操作实战流程(完结)
- 把大象装冰箱,需要分几步?- - -迅雷产品经理笔试、面试回顾
- .ServletException: Circular view path [index]: would dispatch back to the curren这是springboot
- 死锁的四个必要条件和解决办法
- SSM中监听器调用service层空指针异常
- 大厂没有方法论(下)