Pygame初试----Cells

来源:互联网 发布:游戏客户端制作软件 编辑:程序博客网 时间:2024/06/05 20:52

  最近在看父与子的编程之旅:与小卡特一起学Python,碰巧又看到了有关细胞自动机的内容,于是便有了写一个自己的小游戏的想法,于是:

  • 用了一天时间构思:
    逻辑是这样:
    首先是二维的地图,其上有两种实体(Entity):跑来跑去的细胞(Cell)和原地不动的营养(Nutrition)。细胞有大有小,与生命值(health)有关,具有一定的速度,可以:
    1.移动(move()),其实就是更新位置(rect属性)。
    2.自动寻找周围实体(findNearestItem() ->Entity)返回该实体,这可以“看”到周围有其他细胞还是有营养,如果只有营养:跑过去吃了它;如果有一个比自己血多的细胞:快向相反方向跑!;如果有一群小家伙:挑个肉厚的追!;最后要是什么都没有:想去哪去哪吧我才不管你。
    吃其他的实体可以增加一些生命值,每次move()会updata()一下当前的状态,同时实现饥饿(health-=XXX)。
    描述得还比较清楚吧,我就不贴伪代码了。
    然而想归想,最后我还是没有解决如何自动寻找周围的家伙,按照“仿生学”的角度模拟了一下,发现有点难,于是我就厚颜无耻暂时放弃了这个机制……刚开始嘛哈哈以后会解决的。
    同样仅仅是存在于脑海的还有:
    呼朋唤友:被追杀的时候可以找周围的小朋友打群架。
    经验:存储一下历史数据,根据数据判断是去追其他Cell吃还是吃营养(因为追别的家伙可能追不上还会饿掉血,而吃营养虽然加的少一点但是稳定纳!)
    分裂:分身嘛。
    地形以及细胞们对地形的判断。
    ……
    然而这些都不会:)
    so我就写了一个简化版,简化到不忍直视:
    地图会刷新Nutrition,如果有两个以上Nutrition在一起就产生一个Cell。
    一群只会按初始速度前进直到撞墙的Cells,碰到什么算什么。
    这些Cell有一个和health有关的大小,随机的速度,类型(Cell)。
    结束了,简陋吧。关于上述构想等以后再实现吧。
    因为很关键的一点在于,我想了很久也没有发现这个游戏玩点在哪,或者,有什么用,或者,有没有人无聊到看一群智障吃东西打发时间。
    深刻的问题对吧
    源码在这里很短想拿随便拿,反正没什么技术含量。
    不过在调试的时候发现了一个有趣的BUG:
    出现了一种不知名的”超神粒子“BUGCell
    箭头指向的地方,一个大家伙被一个小不点干掉了
    特征如下:
    大小永远不变(按设定是根据health更新的)
    战斗力秒杀一切,除了他们自己,碰什么吃什么,但是两个BUGCell碰到一起,相视一笑就走了……
    这个我也不知道为啥,后面再调试一下看看什么情况。
原创粉丝点击