c# - 苹果在蛇里面产卵
问题描述
我对团结很陌生,我做了一个蛇游戏。然而,苹果有时会在蛇体内产卵。我假设这需要一个 if 语句,例如 if CreateRandomApple = TailNode 然后再试一次,但我不确定如何编写代码。这是我的蛇和苹果代码。
void PlacePlayer()
{
playerObj = new GameObject("Player");
SpriteRenderer playerRender = playerObj.AddComponent<SpriteRenderer>();
playerSprite = CreateSprite(playerColor);
playerRender.sprite = (playerSprite);
playerRender.sortingOrder = 1;
playerNode = GetNode(3, 3);
PlacePlayerObject(playerObj, playerNode.worldPosition);
playerObj.transform.localScale = Vector3.one * 1.2f;
tailParent = new GameObject("tailParent");
}
void CreateApple()
{
appleObj = new GameObject("Apple");
SpriteRenderer appleRenderer = appleObj.AddComponent<SpriteRenderer>();
appleRenderer.sprite = CreateSprite(appleColor);
appleRenderer.sortingOrder = 1;
RandomlyPlacedApple();
}
#endregion
#region Update
void MoveTail()
{
Node prevNode = null;
for (int i = 0; i < tail.Count; i++)
{
SpecialNode p = tail[i];
availbleNodes.Add(p.node);
if (i == 0)
{
prevNode = p.node;
p.node = playerNode;
}
else
{
Node prev = p.node;
p.node = prevNode;
prevNode = prev;
}
availbleNodes.Remove(p.node);
PlacePlayerObject(p.obj, p.node.worldPosition);
}
}
#endregion
#region Utilities
bool isTailNode(Node n)
{
for (int i = 0; i < tail.Count; i++)
{
if(tail[i].node == n)
{
return true;
}
}
return false;
}
void PlacePlayerObject(GameObject obj, Vector3 pos)
{
pos += Vector3.one * .5f;
obj.transform.position = pos;
}
void RandomlyPlacedApple()
{
int ran = Random.Range(0, availbleNodes.Count);
Node n = availbleNodes[ran];
PlacePlayerObject(appleObj, n.worldPosition);
appleNode = n;
}
Node GetNode(int x, int y)
{
if (x < 0 || x > MaxWidth - 1 || y < 0 || y > MaxHeight - 1)
return null;
return grid[x, y];
}
SpecialNode CreateTailNode(int x, int y)
{
SpecialNode s = new SpecialNode();
s.node = GetNode(x, y);
s.obj = new GameObject();
s.obj.transform.parent = tailParent.transform;
s.obj.transform.position = s.node.worldPosition;
s.obj.transform.localScale = Vector3.one * .95f;
SpriteRenderer r = s.obj.AddComponent<SpriteRenderer>();
r.sprite = (playerSprite);
r.sortingOrder = 1;
return s;
}
#endregion
}`
这是脚本的简化版本。谢谢
解决方案
检查它是否在ez里面
if(apple.location == snake.location){ changeAppleLocation() }
推荐阅读
- python - 为什么我不能用 python 中的字典值做数学运算?
- sql - SQL Server 中的主键重复
- java - 为什么 Math.Pow(x,y) 使用 double 而不是 long?
- php - 无法将 Visual Studio 代码连接到 PHP
- c++ - Windows:隐式链接位于不同文件夹中的 DLL
- angular - 从异步函数更新 Angular 视图
- tensorflow - TensorflowJS:如何在 TFJS 中重置预训练模型的输入/输出形状
- python - 更新 tkinter 接口上的当前值
- java - 来自主查询的构造函数中的多个子查询会中断 Hibernate 转换
- laravel - 未定义变量:user.blade.php 中的类别