摘要: 这一篇是关于设置蛇的属性的,接上一篇(五)。设置蛇的速度,很简单,只要不是负数就行了。void SNK_SetSnakeSpeed(Snake *snake, int speed){ if (snake != 0) snake->speed = SDL_abs(speed);}设置蛇的方向... 阅读全文
posted @ 2015-01-30 18:09 pizcai 阅读(616) 评论(0) 推荐(1) 编辑
摘要: 因为已经写了食物的实现,所以我不知道到底是该先写世界的实现还是蛇的实现。因为世界就是一个窗口,可以立刻在世界中看到食物的样子,对于大多数人来说,如果写完代码立刻就能看到效果,那就再好不过了。可是,我最后还是选择了先写蛇的实现这篇笔记。如果先写世界的实现,我就无法按照现在的思路完完整整的写下去,因... 阅读全文
posted @ 2015-01-30 17:46 pizcai 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 由于食物是贪吃蛇游戏中最简单的一部分,而且和其他部分关联性不强,基本上是一个独立的部分,所以我打算先实现它。我的想法是食物必须在世界中才能被创造出来,也就是说,先有世界再有食物,所以我得先判断世界是否存在,存在的话才可以创建食物。Food * SNK_CreateFood(World *worl... 阅读全文
posted @ 2015-01-30 15:48 pizcai 阅读(819) 评论(0) 推荐(0) 编辑
摘要: 蛇是这个游戏的主角,要实现的功能也是最复杂的一个。因为蛇不止有属性,还有行为。它会动,还会吃东西,还会长大!而且还会死!这是很要命的。我一向看不懂复杂的代码,也写不出复杂的代码。所以对于蛇,我很纠结,如何才能简单的实现它。 毫无质疑的一点是,食物具有的属性,蛇也具有。蛇必须存在于世界中,有大小... 阅读全文
posted @ 2015-01-30 15:03 pizcai 阅读(757) 评论(0) 推荐(0) 编辑
摘要: 游戏中的食物没有那么多复杂属性,特别是贪吃蛇游戏中,我把食物看待的很简单: 1. 它必须属于世界,才能出现在世界。不可能一个不属于世界的食物,出现在世界中;但是可能存在着一个食物,它属于世界,但是却没有出现在世界中(即食物的颜色和世界的颜色相同,因此看不见食物)。这就像鬼一样,它可能存在于这个... 阅读全文
posted @ 2015-01-30 13:59 pizcai 阅读(894) 评论(0) 推荐(0) 编辑
摘要: 每个游戏都有一个很明确的目的或者说游戏主题,贪吃蛇的目的很明确:蛇找到并吃掉食物。只有目的是很无聊的,算不上一个好游戏。所以设计者增加了创意:1. 吃掉食物后蛇会增长;2. 吃掉食物后分数会增加。有些还可以增加速度,增加障碍物等,不过我不打算实现这些,我的目的也很明确,实现创意1和2。 仔... 阅读全文
posted @ 2015-01-29 14:58 pizcai 阅读(580) 评论(0) 推荐(2) 编辑
摘要: 这一系列笔记的代码都是在Ubuntu 14.04下编码并测试的,原因无他,因为我笔记本电脑只装了一个Ubuntu系统,其中唯一使用的第三方库SDL也是开源并且跨平台的。所以即使你用的是Windows或Mac,也能运行所有的代码。1. 安装SDL库及其扩展Ubuntu:sudo apt-get i... 阅读全文
posted @ 2015-01-29 13:40 pizcai 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 记得学习C语言的时候,看着别人能写各种各样的小游戏和小软件,甚是羡慕。而自己,虽然说语法都会,但是真正上手写个几百行的代码,就显得力不从心。曾经一度很是郁闷,看过一些书,大都处于教语法的层面,有些涉及到软件设计,但是对于几百行代码都驾驭不了的我,看了也是等于白看,完全领悟不到设计中蕴含的哲学和精... 阅读全文
posted @ 2015-01-29 12:40 pizcai 阅读(347) 评论(2) 推荐(0) 编辑