IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 基于VS C++贪吃蛇游戏(附源码,VS编译就能运行) -> 正文阅读

[C++知识库]基于VS C++贪吃蛇游戏(附源码,VS编译就能运行)

入职一个月了,也就是大学毕业一个月了。在公司学了不少东西,大学是做嵌入式的,转了C++,刚开始接触EasyX,于是就花周末自己写了一个贪吃蛇,花了我12个小时左右。第一次写这个,应该有很多的问题,各位不要嫌弃。后面我可能会在这个工程上继续加其他的游戏,做一个游戏盒子。可惜只能周末写。

1、安装EasyX

EasyX官网:https://easyx.cn/

EasyX学习文档:https://docs.easyx.cn/zh-cn/intro

安装很简单,下载安装,会直接显示对应的VS版本,进行安装就好了。

2、代码位置

我已经将代码上传到GitHub上了,有需要的可以直接拉下来,目前上面有所有的代码信息,后面我可能会把工程文件啥的删掉,只留下代码。

链接:https://github.com/lml123-1/GreedySnake

3、看一下运行效果

1、主界面

效果很差,如果想改的小伙伴可以将样式改掉,图片位置,工程里面都有。

第一个按键进入游戏,最后一个退出,中间的没设置。

2、游戏界面

所有数据代码中都非常容易找到,因为不是很复杂。颜色可以换成任意自己想要的。附上颜色表链接:https://www.sojson.com/rgb.html

?

?3、游戏运行

三、部分代码

?代码量在四百行,我只贴了一部分,链接里面有完整版。

//snake.h
#pragma once
#include <iostream>
#include <graphics.h>
#include <conio.h>
#include <string>
#include <vector>

#ifndef US
#define US unsigned short
#endif
#define VEC std::vector

#define INITCLASS(classname) \
                private:\
                    classname();\
                    ~classname();\
                public:\
                    static classname &GetInstance();

#define MYSNAKEINFO(classname) \
            classname &classname::GetInstance()\
            {\
                static classname snakeInfo;    \
                return snakeInfo;\
            }

#define GETMYSNAKEINFO(classname) classname::GetInstance()


enum DIRECTION
{
    UPDIREXTION = 0,
    LEFTDIRECTION,
    DOWNDIRECTION,
    RIGHTDIRECTION,
    NONEDIRECTION
};

struct lattice
{
    US x;
    US y;
};

class gSnake
{
public:
    INITCLASS(gSnake)

public:
    void SnakeInit();
    void SnakeRun();

private:
    void LeftButtonDown();
    void GameInit();
    void SnakeGameInit();
    void ProduceFood();  //产生食物
    void ShowHead(DIRECTION dt, US flag = 0);
    void SnakePosition();
    bool SnakeRunDirection(DIRECTION dt);
    void GameRun();
    bool SnakeRunOne(DIRECTION dt);
    bool SnakeIsDeath();

    IMAGE &GetImag(std::string strImage);

private:
    bool                m_bGameFlag; //游戏开始标志
    DIRECTION           m_Dtion; //蛇头方向
    US                  m_usFFlag; //食物标志
    struct lattice      m_snakeEnd;  //蛇尾部数据
    struct ExMessage    m_message; //鼠标键盘消息
    VEC<struct lattice> m_vecLattice; //所有格子数据
    VEC<struct lattice> m_vecSnakeLa; //蛇身坐标数据
};

#define _MYSNAKEINFO GETMYSNAKEINFO(gSnake)


//snake.c
#define WIDTH       (640)  //x
#define HEIGHT      (480)  //y
#define BIGWID      (50)
#define START_X     (BIGWID+10)
#define START_Y     (BIGWID+10)
#define HISTORY_X   (BIGWID+10)
#define HISTORY_Y   (START_Y+((HEIGHT - 2 * BIGWID - 40) / 3)+10)
#define GOVER_X     (BIGWID+10)
#define GOVER_Y     (HISTORY_Y+((HEIGHT - 2 * BIGWID - 40) / 3)+10)

#define RDOWN   _MYSNAKEINFO.GetImag("../Image/down.jpg")
#define RLEFT   _MYSNAKEINFO.GetImag("../Image/left.jpg")
#define RRIGHT  _MYSNAKEINFO.GetImag("../Image/right.jpg")
#define RUP     _MYSNAKEINFO.GetImag("../Image/up.jpg")
#define RSNAKE  _MYSNAKEINFO.GetImag("../Image/snake.png")
#define RFOOD   _MYSNAKEINFO.GetImag("../Image/food.png")

#define KEYDOWN     0x28
#define KEYLEFT     0x25
#define KEYRIGHT    0x27
#define KEYUP       0x26

最后,有想和我做朋友的可以加我微信a18898770566。可以一起探讨学习。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 20:46:10  更:2021-08-02 20:46:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/10 2:54:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码