小白也能用C/C++做游戏--EasyX库配置(保姆级)

本文详细介绍了如何在Windows11环境下,使用VScode配合TDM-GCC编译器和EasyX图形库进行C/C++图形编程的配置过程。从安装VScode和必要的插件,到设置TDM-GCC和EasyX库,再到编写代码画圆,每个步骤都有清晰的指导。此外,文章还提供了可能出现的问题及解决办法,帮助读者解决配置和调试中的常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言


编程环境: win11 VScode TDM-GCC-9.2.0
更新日期: 2023/2/1

本篇文章适用于以下情况:

  1. 你不想使用Visual Studio, 轻度使用过VScode编辑器,但你想使用EasyX库(如果你使用的是Visual Studio, 可以直接在EasyX官网找到方法)

  1. 你想学习C/C++,或你已经有一些这方面的基础想实操C/C++

  1. 你想用C/C++做一个高级(装逼)些的项目,或者说"逃离小黑框"(●'◡'●)

  1. 你在配置EasyX库时遇到了一些问题,可以直接跳到第四部分---问题总结部分

EasyX库, 通个这个库,你能很快得开发出一个属于自己的小游戏!!! 同时因为EasyX 库含有一些简单的函数集合,几乎不用学习,直接翻看参考手册就可以直接使用.

下面是一些大佬的作品截图

项目一链接

项目二链接

更多作品链接

准备工作


1.安装VScode和必要的插件

安装VScode不必多讲,网上也有很多优秀的教程,大家可以自行搜索.

在左侧扩展商店搜索chinese和c/c++,并安装

2.安装TDM-GCC编译器

官网下载速度慢,我将资源拷到百度网盘,安装包亲测无误.

百度网盘下载TDM-GCC,提取码:zzzy

  • 在D盘新建文件夹名为codeConfiguration,再在此文件下新建文件夹名为TDM-GCC-64

(当然你也可以根据自己喜好选择安装位置,但路径中最好不要有中文名.如果你安装路径与文章不同,下面一些步骤中的参数要记得对应替换为你的路径)

  • 安装TDM-GCC

  • 检查是否安装成功

Windows键+R → 输入cmd → 点击确定 → 在命令提示符窗口输入g++ -v

结果如下:

如果输出gcc版本号,则证明你的TDM-GCC编译器安装成功!!!可以进行下面的步骤.

补充: TDM-GCC是基于开源编译器MinGW设计的闭源编译器,两者略有不同,但MinGW版本很多很杂,而EasyX不能支持大部分MinGW版本,如果你之前是MinGw编译器,建议换为TDM-GCC编译器.如果你的MinGW编译器是以下版本也可以选择不换.
对于 MinGW-w64 8.1.0 版本,easyx4mingw 支持 x86_64-posix-seh、x86_64-win32-seh、i686-posix-sjlj、i686-win32-sjlj,但不支持 x86_64-posix-sjlj、x86_64-win32-sjlj、i686-posix-dwarf、i686-win32-dwarf。

3.安装EasyX库

下载easy4mingw.zip,解压

将 include 文件夹下的 easyx.h 和 graphics.h 拷贝到 D:\codeConfiguration\TDM-GCC-64\x86_64-w64-mingw32\include文件夹里。

将 lib64\libeasyx.a 拷贝到 D:\codeConfiguration\TDM-GCC-64\x86_64-w64-mingw32\lib 文件夹里。

将 lib32\libeasyx.a 拷贝到 D:\codeConfiguration\TDM-GCC-64\x86_64-w64-mingw32\lib32 文件夹里。

如果你的TDM-GCC的安装路径和文章写的不同,这部分操作请替换到你的安装路径中
如果你使用的是MinGW编译器,这个步骤类似,MinGW安装位置也存在文件夹x86_64-w64-mingw32

实操:利用EasyX库函数画圆


通过上面的准备工作,我们已经完成了编程环境上面的全部配置,下面就能通过写代码让窗口画圆

如果你之前使用过VScode调试C/C++,可以按照自己的方法新建工作区,但要注意!!!在tasks.json中添加"-leasyx"参数,详细见下面的代码
如果你没有用过VScode,建议按照下面的步骤操作,之后不断地学习你会明白下面操作的含义

1.建立工作区

在合适的位置新建文件夹名为MyGame, 在MyGame下新建.vscode文件夹

2.通过VScode打开MyGame文件夹

3.新建文件

在MyGame下新建main.cpp文件,在.vscode文件夹下新建launch.json、tasks.json和c_cpp_properties.json文件

4.配置文件

配置launch.json、tasks.json和c_cpp_properties.json文件

将下面内容分别复制到对应三个文件中,并仔细查看我标注的需要修改的地方

launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C++ Launch (GDB)",
            "type": "cppdbg",                         
            "request": "launch",           
            "targetArchitecture": "x86", 
            // 要进行调试的可执行文件的路径               
            "program": "${workspaceRoot}/main", 
            // 注意!!!修改我    gdb调试器路径,这里选择TDM-GCC安装目录下的gdb
            "miDebuggerPath":"D:\\codeConfiguration\\TDM-GCC-64\\bin\\gdb.exe",
            "args": [],                            
            "stopAtEntry": false,                      
            "cwd": "${workspaceRoot}",             
            "externalConsole": true, 
            // 调试会话前执行的任务,这里是task.json中配置好的编译任务
            "preLaunchTask": "g++",
            // pretty-printing配置,可以直观打印出C++中的容器
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
        }
    ]
}

tasks.json

{
    "tasks": [
        {
            "type": "cppbuild",
            // g++ 是编译任务的名字,当按下Ctrl+shift+B快捷键时,在终端窗口
            // 会显示"正在执行任务: g++"
            // 当然你可以随意修改labal
            "label": "g++",
            //注意!!!修改我 
            "command": "D:\\codeConfiguration\\TDM-GCC-64\\bin\\g++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-leasyx"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            //注意!!!修改我 
            "detail": "编译器: D:\\codeConfiguration\\TDM-GCC-64\\bin\\g++.exe"
   
       }
    ],
    "version": "2.0.0"
}

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            //注意!!!修改我 
            "compilerPath": "D:\\codeConfiguration\\TDM-GCC-64\\bin\\gcc.exe",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

5.将代码复制到main.cpp中,调试

main.cpp

#include <graphics.h>
#include <conio.h>

int main()
{
    initgraph(640, 480);
    circle(320, 240, 100);
    _getch();
    return 0;
}

按下F5,正常情况下应该就会像下图所示,弹出一个框框,框框中有一个圆.

你也可以复制下面代码,再运行,就能得到一个彩虹!!!

#include <graphics.h>
#include <conio.h>

int main()
{
    // 创建绘图窗口
    initgraph(640, 480);

    // 画渐变的天空(通过亮度逐渐增加)
    float H = 190;        // 色相
    float S = 1;        // 饱和度
    float L = 0.7f;        // 亮度
    for(int y = 0; y < 480; y++)
    {
        L += 0.0005f;
        setlinecolor( HSLtoRGB(H, S, L) );
        line(0, y, 639, y);
    }

    // 画彩虹(通过色相逐渐增加)
    H = 0;
    S = 1;
    L = 0.5f;
    setlinestyle(PS_SOLID, 2);        // 设置线宽为 2
    for(int r = 400; r > 344; r--)
    {
        H += 5;
        setlinecolor( HSLtoRGB(H, S, L) );
        circle(500, 480, r);
    }

    // 按任意键退出
    _getch();
    closegraph();
    return 0;
}

可能出现的问题及解决办法


如果你TDM-GCC安装正确, gcc、g++也在环境变量中,依旧出现无法调试问题,那多半是因为你配置文件的问题,你可以删除.vscode文件夹,然后重新创建三个配置文件,并复制上面的模板.

1.按下F5后, 提示"找不到任务g++"

这说明你的launch.json设置中寻找的是任务名为g++的编译任务,而tasks.json中设置的任务名不是g++,故报错提示找不到任务g++.

也就是你launch.json中preLaunchTask的参数与tasks.json中label的参数不一样,像下图所示.

你只需要将它们都改为g++即可解决问题.

2.preLaunchTask "g++"已终止,退出代码为-1

这是因为你的tasks.json缺少参数"-leasyx"

  1. 遇到实在无法解决的问题

如果是配置问题,你可以阅读VScode官方提供的说明文档,它详细讲解了launch.json、tasks.json和c_cpp_properties.json文件中各个值的含义.

Get Started with C++ and Mingw-w64 in Visual Studio Code

你可以选择重新安装TDM-GCC, 因为有可能是你TDM-GCC安装包的问题,你可以安装下面的TDM-GCC安装包.亲测有效

百度网盘下载TDM-GCC安装包,提取码:zzzy

参考以下大佬的文章,如果看本篇文章依旧没能解决问题,可以从以下文章中找找答案.
在 CLion、Dev-C++ 或 Code::Blocks 下面配置 EasyX(2022-9-1 更新) - CodeBus
如果依旧有问题欢迎评论区留言

总结


通过这篇文章,你已经完成了通过EasyX库开发游戏的硬性要求,想要开发出属于自己的游戏,你还要继续学习C/C++和EasyX库.

你可以在Github上找一些项目,来阅读,感受大佬们的游戏设计思路.

### 如何在VSCode中安装EasyX #### 准备工作 由于EasyX官方仅支持Visual Studio的编译器而不支持MinGW,因此需确保已安装适用于Windows的Visual Studio并选择了C++开发工具包[^2]。 #### 安装EasyX 下载EasyX后,解压缩文件至指定位置。对于已经安装了特定版本Visual Studio(如VS2022)的情况,应选择与之匹配的EasyX版本进行安装[^3]。 #### 配置环境变量 为了使VSCode能够找到EasyX头文件和链接静态,在系统环境中设置`INCLUDE`和`LIB`路径指向EasyX目录下的include和lib文件夹[^4]。 #### 创建项目结构 创建一个新的文件夹作为项目的根目录,并在此基础上建立如下结构: ``` project/ ├── .vscode/ │ └── tasks.json └── src/ ├── main.cpp └── CMakeLists.txt ``` #### 编写构建脚本(CMakeLists.txt) 编写用于描述如何编译程序以及连接所需外部的信息给cmake使用的文本文件: ```cmake cmake_minimum_required(VERSION 3.17) project(EasyXProject) set(CMAKE_CXX_STANDARD 14) add_executable(${PROJECT_NAME} "main.cpp") target_include_directories(${PROJECT_NAME} PRIVATE "${EASYX_INCLUDE_DIR}") find_library(EASYX_LIB easyx HINTS ${EASYX_LIBRARY_DIRS}) if(NOT EASYX_LIB) message(FATAL_ERROR "Could not find the EasyX library.") endif() target_link_libraries(${PROJECT_NAME} ${EASYX_LIB}) ``` 其中`${EASYX_INCLUDE_DIR}` 和 `${EASYX_LIBRARY_DIRS}` 应替换为实际存放EasyX头文件和的位置。 #### 设置launch.json调试配置(.vscode/launch.json) 为了让开发者可以在VSCode内直接启动带有图形界面的应用程序,需要编辑`.vscode/launch.json`来定义运行参数: ```json { "version": "0.2.0", "configurations": [ { "name": "(Windows) Launch", "type": "cppvsdbg", "request": "launch", "program": "${workspaceFolder}/build/${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "console": "externalTerminal" } ] } ``` 以上步骤完成后就可以正常地利用VSCode配合EasyX来进行编程学习游戏开发等活动了。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值