C++贪吃蛇代码的阅读笔记(二):Startinterface开始动画的实现

1. 原理解释

先来看下头文件中包含哪些东西,包括容器deque、vector,以及之前介绍过的Point类,Point声明的对象,主要就是负责控制台上点信息的打印和清除,后面的具体实现部分中也会使用其Print()和Clear()成员函数,没看过的小伙伴,可以先去浏览下面这个地址:

https://blog.csdn.net/AnDiXL/article/details/105148754

开头动画整体分为两大部分,第一部分是蛇移动的动画,第二部分是SNAKE文字进入的动画,动画示意图如下:

开始动画

其中第一部分用deque实现,分为如下三个阶段:

1). deque是一个双端队列,用它存储点的对象,这些点组成完整的蛇身,用一个for-loop将其中的点依次打印,每打印一个点停顿一会儿,实现动态效果,全部打印完之后,蛇的整个身体出现,接下来进入第二阶段;

2). 蛇开始从左边界移动至右边界,这部分蛇每次移动都要计算其下一个点的坐标,然后将其打印出来,同时还要将蛇尾即deque的首元素去掉,并清除对应坐标的图像信息;

3). 第三阶段,从deque的队尾开始依次擦除图像信息即可完成蛇消失的过程。

第二部分SNAKE文字的移动过程与第一部分类似,但最后只需SNAKE停到屏幕中央,因此不需要同时对首尾对象进行操作,选用vector存储其中的点。

其头文件代码如下,声明对象时就在初始化列表中完成了点的存储:

#ifndef STRATINTERFACE_H
#define STARTINTERFACE_H

#include <deque>
#include <vector>
#include "point.h"

class StartInterface
{
public:
    StartInterface() : speed(35) {
        startsnake.emplace_bac
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值