Articles of 蛇

为什么我的蛇不改变方向?

当我按下箭头键,我的蛇不改变方向。 有什么问题? 这是我的代码: namespace Zmijice { class Program { static void Main(string[] args) { bool ra = true; int UpDown = 10; int LeftRight = 14; string player = "X"; bool igra = true; int a = 20; int b = 20; string[,] zm = new string[a, b]; for (int i = 0; i < […]

蛇游戏 – 蛇碰撞

所以我正在做一个蛇游戏作为我的游戏开发研究的第一学期的最终作业。 我们必须用C#在Visual Studio 2015中编写它。我使用.NET 3.5框架。 所以基本上我的蛇的工作原理如下: 我做了一个vector2列表来存储蛇的部分。 它明显地只与头部开始。 当与食物发生碰撞时,我将一个vector2添加到列表中。 我在绘画函数中绘制了一个矩形,并让它接管了上一个蛇形部分的最后一个位置。 这就是我的蛇的工作方式,以及当你吃这些食物时蛇的寿命。 虽然我遇到了蛇碰撞本身的麻烦。 这是我想出来的代码来检查蛇是否与自身碰撞: for (int i = 1; i < Snake.Count; i++) { if (Snake[0].X > Snake[i].X + (i * 64) || (Snake[0].X + (i * 64)) < Snake[i].X || Snake[0].Y > (Snake[i].Y + (i * 64)) || (Snake[0].Y + (i * 64)) < Snake[i].Y) […]

在处理中制作的蛇游戏

我一直在研究这个蛇游戏几天,我有基础知识,但我想知道如果有人能帮我找出尾巴。 我需要它遵循身体,就像它在原来的游戏中一样。 我已经阅读了很多真正有帮助的论坛,但是由于我对代码和处理语言还不熟悉,所以我想要一个更具体的想法来告诉我如何去做尾部工作。 这是我迄今为止: PImage snake; PImage arrow1; PImage arrow2; PImage arrow3; PImage arrow4; PFont font; boolean state = false; int snakeSize = 1; int maxLength = 25; int x [] = new int [maxLength]; int y [] = new int [maxLength]; int j; int foodX = (round(random(49)+1*10)); int foodY = (round(random(49)+1*10)); int speed = […]

精灵如何每秒在自己身下产生更多的精灵?

我正在做一个蛇游戏,并且很难让这条蛇变得更长,当我运行这个程序的时候,我只有蛇头吃苹果。 但是我希望蛇头(30×30)每秒钟在他自己身下产生身体部位(20×20)。 我可以做到这一点后,蛇头必须画四个身体部位,计算机必须“删除”最旧的身体部位,才能产生新的身体部位。 这是一个2D游戏,蛇可以弯曲,而不是90度转弯。 我希望你们都明白。

如何使蛇的运动平滑而不是像滑行蛇一样的网格?

我试图find正确的公式来模仿滑动的蛇的平滑的非网格运动。 我可以手动去保存每个点的“头部”运动,并在它的身体部位之间做一些插值,但是这是非常容易出错的。 另外我发现这个: http : //www.emanueleferonato.com/2014/06/10/html5-string-avoider-game-made-with-phaser/ 这不是在我的情况下工作,但显示类似的东西 这是一张图片来expression我想要做的事情: 任何想法如何做到这一点?

遇到构造函数和deque类的问题

我最近一直在试图通过实现数据封装和抽象来制作我以前的经典蛇游戏的重制版本。 我也决定取代我那可怕的select,把蛇的尾巴坐标和更合理的select。 由于我是初学者,而且我也不知道发生了什么事情(如果我知道自己在做什么 ,我会担心的) ,如果能帮助我了解我的使用情况有什么问题,我怎么能解决它。 从我可以收集的信息来看,我认为这与构造函数的使用不当有关,但我仍然没有完全理解构造函数的概念,以便能够正确debugging它。 SnakePart.h #ifndef SNAKEPART_H_ #define SNAKEPART_H_ #include <deque> class SnakePart { public: void advance(int x, int y, bool loose_tail = true); }; extern std::deque<SnakePart> parts; #endif /* SNAKEPART_H_ */ SnakePart.cpp #include "SnakePart.h" void SnakePart::advance(int x, int y, bool loose_tail) { std::deque<SnakePart> parts; parts.emplace_front(x, y); if(loose_tail) parts.pop_back(); }

如何创建一个像oldschool蛇游戏的网格运动?

我在比赛中遇到了两个问题, 我不知道如何使我的游戏对象(蛇头)在网格中移动出于某种原因,我不知道它在屏幕上自由移动。 尾巴不断在脑袋上面实例化不在后面…我尝试了很多东西,没有工作,没有find答案在论坛上帮助我。 现在我回到开始,看看有人能帮助我。 这是我用来生成网格的代码。 如果有人能帮我一些代码,我很感激。 public class LevelManagerTest : MonoBehaviour { public GameObject tile; [SerializeField] private Transform gridParent; [SerializeField] public Transform[,] Grid; private GameObject[,] grid = new GameObject[12, 7]; public float TileSize { get { return tile.GetComponent<SpriteRenderer>().sprite.bounds.size.x; } } void Start() { CreateLevel(); } private void CreateLevel() { Vector3 worldStart = Camera.main.ScreenToWorldPoint(new Vector3(0, Screen.height)); […]

在monogame中的蛇运动

Noobie在这里…我已经开始学习monogame的开发,目前正在做一个简单的蛇游戏。 我在蛇的运动上遇到了麻烦,我想我可以做出基于瓦片的运动,但最终决定每当头部改变方向时创建转折点,将它们插入列表中,并在最后一个本体单元通过时删除一个点它。 获取键盘input并创建转折点的方法: protected override void Update(GameTime gameTime) { if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape)) Exit(); player.update(); if (Keyboard.GetState().IsKeyDown(Keys.Up) || Keyboard.GetState().IsKeyDown(Keys.Down)) { if (Keyboard.GetState().IsKeyDown(Keys.Up)) player.direction.Y = -3f; else player.direction.Y = 3f; player.direction.X = 0; /** * Creating a turnPoint that will save the change in movement * and where it occured. * **/ player.turnPoint.Add(new Player.turningPoint(player.position, […]

如何find一条AI蛇的安全path?

我一直在做一个游戏,玩家可以与蛇ai竞争,获得最多的苹果。 我使用的当前path查找技术(A * Pathfinding)工作正常。 但是我正在努力寻找一种有效的方法来确保AI蛇不会为了导致它陷入困境的目标。 考虑到蛇可以传送,并且在任何给定的时间在地图上可能有最多4个苹果。 我正在创建的决策树看起来有点像这样: 如果目标的path是安全的:去苹果! 否则检查下一个苹果,直到find安全的path或所有的苹果被检查。 如果没有任何一个苹果的path是安全的,包括可能的远程传送所产生的path,那么find到达尾部的最远path,并继续追尾,直到达到目标的安全path变得可用。 如果找不到尾巴的path:直到死亡! 问题是,要find一条快速有效的方法来确定path是否安全真的很困难! 我的问题是:考虑到你不能从这个区域走回同样的path,什么是确定封闭区域的path是否安全的好方法?