首页 > 编程语言 >C语言动态哆啦A梦源码分享,无需编程基础,小白轻松运行,顺便解决Visual Studio 2022里c++的源文件.cpp文件里无法使用C语言scanf()函数的问题

C语言动态哆啦A梦源码分享,无需编程基础,小白轻松运行,顺便解决Visual Studio 2022里c++的源文件.cpp文件里无法使用C语言scanf()函数的问题

时间:2024-12-08 18:30:04浏览次数:6  
标签:setfillcolor eyes ball C语言 源文件 源码 2022 line 96

下面是运行效果图:

首先是安装Visual Studio 2022

Visual Studio 2022 IDE - 适用于软件开发人员的编程工具

打开上面的网址,选择下载社区版

 

下载好后运行,进来以后,如果是初次安装需要下载安装,我的是原来就有的所以会显示更新,如果原来就有的请点击修改按钮,选择配置下载并安装好

一般的c/c++就选下面这两个就行,其它的如果你需要自己选上就行

可以在安装位置选择缓存的的位置和安装的位置,建议修改上面两个即可,其他地方默认即可,选择好以后就可以下载安装了,可能需要的时间有点长(选的越多时间越长哦),耐心等待即可。

安装EasyX图形库

EasyX 文档 - 基本说明

上面的网址是在线文档地址,不懂的函数可以自己去查

点击左上角跳转,直接下载即可

下载好了运行,点下一步,然后安装VC++2022版的就可以了,会检测你是否安装过,存在的就不用安装了,文档有需要的可以安装上,完成后直接关闭即可

进入Visual Studio 2022,然后创建新项目

创建空项目

改项目名和项目位置,点击创建

进来以后什么都没有,如下

点击源文件右键->添加->新建项

选择c++源文件(.cpp)创建

源文件夹下出现了c++源文件(这里使用的是c语言,所以为了兼容问题可以在最前面加上#define _CRT_SECURE_NO_WARNINGS 1,如果不加这一行当,例如C语言中的输入为scanf()函数,但在这里你要用scanf_s()才行,如果要永久解决这个问题,就是你每次创建源文件都自动给你添加这一行,不需要你手动添加,请看下面)

如果不需要请忽略此步骤

在桌面找到Visual Studio 2022右键,然后点击打开文件所在位置

也可手动找到你的安装目录根据下面的路径进去

再根据下面的路径点进去,我们需要的就是newc++file.cpp文件

如果没有newc++file.cpp文件就自己创建一个,注意是.cpp格式的,请开启显示文件后缀选项,Win11如下操作

右键此文件然后用记事本打开,将刚才的那条宏定义给复制进去保存即可,如果是无法保存或已经存在了无法修改,请在桌面或其他地方建同样的文件输入同样的内容,复制进去就行,原来存在的选择替换原文件

我们继续刚才的步骤

将代码复制进去,点击本地Windows调试器运行

效果如下,按空格键结束程序

源码如下:

#define _CRT_SECURE_NO_WARNINGS 1
// 哆啦A梦
// 编译环境:Visual Studio 2022,EasyX 2022
#include <graphics.h>
#include <conio.h>
#include<math.h>
#include<time.h>
#define PI acos(-1.0)
double th = PI / 180;


// 心形气球
void heart(int x0, int y0, int size, int z, COLORREF C)
{
    double  m, n, x, y;
    double i;
    // 气球连接线
    line(-140, 80, z, -140);
    for (i = 0; i <= 2 * size; i = i + 0.01)
    {
        // 产生极坐标点
        m = i;
        n = -size * (((sin(i) * sqrt(fabs(cos(i)))) / (sin(i) + 1.4142)) - 2 * sin(i) + 2);
        // 转换为笛卡尔坐标
        x = n * cos(m) + x0;
        y = n * sin(m) + y0;
        setfillcolor(C);
        solidcircle((int)x, (int)y, 2);
    }
}

//眼球
void eyeball(float x1, float x2)
{
    setfillcolor(BLACK);
    // 右眼球
    solidcircle(x1, -116, 10);
    // 左眼球
    solidcircle(x2, -116, 10);

}

//眼球动画
void eyeact(float* eyes)
{
    if (*eyes <= 60)
    {
        eyeball(-16, 16);
        *eyes += 0.5;
    }
    else if (*eyes > 60 && *eyes <= 90)
    {
        eyeball(-38, 16);
        *eyes += 0.5;
    }
    else if (*eyes > 90 && *eyes <= 120)
    {
        eyeball(-16, 38);
        *eyes += 0.5;
    }
    else if (*eyes > 120 && *eyes <= 150)
    {
        *eyes = 0;
    }
}
//气球动画
void balls(float* ball)
{
    if (*ball <= 60)
    {
        heart(-140, -250, 30, -140, LIGHTRED);
        *ball += 2;
    }
    else if (*ball > 60 && *ball <= 90)
    {
        heart(-170, -250, 30, -172, LIGHTRED);
        *ball += 2;
    }
    else if (*ball > 90 && *ball <= 120)
    {
        heart(-200, -250, 30, -202, LIGHTRED);
        *ball += 2;
    }
    else if (*ball > 120 && *ball <= 150)
    {
        heart(-170, -250, 30, -172, LIGHTRED);
        *ball += 2;
    }
    else if (*ball > 150 && *ball <= 180)
    {
        *ball = 0;
    }
}

// 主函数
int main()
{

    // 创建大小为 800 * 600 的绘图窗口
    initgraph(800, 600);
    //设置原点 (0, 0) 为屏幕中央(Y轴默认向下为正)
    setorigin(400, 300);

    float eyes = 0;
    float ball = 0;
    BeginBatchDraw();
    while (1)
    {
        // 使用白色填充背景
        setbkcolor(WHITE);
        cleardevice();

        // 画脸

        // 头部
        setfillcolor(LIGHTBLUE);
        setlinecolor(BLACK);
        fillroundrect(-135, -206, 135, 54, 248, 248);

        // 脸部
        setfillcolor(WHITE);
        fillellipse(-115, -144, 115, 46);

        // 右眼
        fillroundrect(-63, -169, 0, -95, 56, 56);
        // 左眼
        fillroundrect(0, -169, 63, -95, 56, 56);

        //加载眼球动画
        eyeact(&eyes);

        // 画鼻子
        setfillcolor(RGB(201, 62, 0));
        fillcircle(0, -92, 15);

        // 画人中
        line(0, -77, 0, -4);
        // 嘴部
        arc(-108, -220, 108, -4, PI * 5 / 4, PI * 7 / 4);

        // 左右各三根胡子
        //左
        line(-42, -73, -90, -91);
        line(-41, -65, -92, -65);
        line(-42, -57, -90, -39);
        //右
        line(41, -65, 92, -65);
        line(42, -73, 90, -91);
        line(42, -57, 90, -39);

        // 身体部位
        // 手臂上线条
        line(-81, 32, -138, 72);
        line(81, 32, 138, 72);
        // 手臂下线条
        line(-96, 96, -116, 110);
        line(96, 96, 116, 110);

        // 腿外侧
        line(-96, 85, -96, 178);
        line(96, 85, 96, 178);
        // 腿内侧
        arc(-10, 168, 10, 188, 0, PI);

        // 手
        setfillcolor(WHITE);
        fillcircle(-140, 99, 27);
        fillcircle(140, 99, 27);
        // 脚
        fillroundrect(-2, 178, -112, 205, 24, 24);
        fillroundrect(2, 178, 112, 205, 24, 24);

        // 身体填充为蓝色
        setfillcolor(LIGHTBLUE);
        floodfill(0, 100, BLACK);

        // 肚子
        setfillcolor(WHITE);
        fillcircle(0, 81, 75);
        // 用白色矩形擦掉多余的肚子
        solidrectangle(-60, 4, 60, 24);
        // 口袋
        pie(-58, 23, 58, 139, PI, 0);

        // 画铃铛
        // 绳子
        setfillcolor(RGB(169, 38, 0));
        fillroundrect(-100, 23, 100, 42, 12, 12);
        // 铃铛外形
        setfillcolor(RGB(245, 237, 38));
        fillcircle(0, 49, 19);
        // 铃铛上的洞
        setfillcolor(BLACK);
        solidellipse(-4, 50, 4, 57);
        setlinestyle(PS_SOLID, 3);
        line(0, 57, 0, 68);
        // 铃铛上的纹路
        setlinestyle(PS_SOLID, 1);
        line(-16, 40, 16, 40);
        line(-18, 44, 18, 44);

        // 气球
        balls(&ball);
        FlushBatchDraw();
        cleardevice();
        if (GetAsyncKeyState(VK_SPACE) & 0x8000) {
            // 空格键被按下则退出
            closegraph();
            return 0;
        }
    }
    EndBatchDraw();
    closegraph();
    return 0;

}

标签:setfillcolor,eyes,ball,C语言,源文件,源码,2022,line,96
From: https://blog.csdn.net/weizhigongzi/article/details/144325635

相关文章

  • 基于springboot +MySQL共享自习室座位管理系统-计算机毕设 附源码00672
    springboot共享自习室座位管理系统的设计与实现摘 要随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设共享自习室座位管理系统。本设......
  • (附源码)NodeJS宠物寄存系统-计算机毕设 31226
    NodeJS宠物寄存系统摘 要本项目旨在利用Node.js技术开发一个宠物寄存系统,解决宠物主人寄存宠物的便捷性和信息可追溯性的问题。通过该平台,宠物主人可以方便地在线预订宠物寄存,并获得相关的提醒和服务。该平台将采用数据库设计、用户认证与授权、前后端交互、寄存功能......
  • 实验5 C语言指针应用编程
    实验任务一:task1_1.c源代码:1#include<stdio.h>2#defineN534voidinput(intx[],intn);5voidoutput(intx[],intn);6voidfind_min_max(intx[],intn,int*pmin,int*pmax);78intmain(){9inta[N];10intmin,max;11......
  • 实验5 C语言指针应用编程
    实验一:#include<stdio.h>#defineN5voidinput(intx[],intn);voidoutput(intx[],intn);voidfind_min_max(intx[],intn,int*pmin,int*pmax);intmain(){inta[N];intmin,max;printf("录入%d个数据:\n",N);input(......
  • 基于java的SpringBoot/SSM+Vue+uniapp的宠物管理系统的详细设计和实现(源码+lw+部署文
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于java的SpringBoot/SSM+Vue+uniapp的在线考试系统的详细设计和实现(源码+lw+部署文
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于java的SpringBoot/SSM+Vue+uniapp的农场投入品运营线上管理系统的详细设计和实现(
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于java的SpringBoot/SSM+Vue+uniapp的图书管理系统的详细设计和实现(源码+lw+部署文
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • ORCA避障源码笔记
    参考资料https://gamma.cs.unc.edu/ORCA/publications/ORCA.pdfhttps://gamma.cs.unc.edu/RVO2/数学知识1.向量的点乘dotProduct,计算方法:1.  2.,作用:点积如果为负,则a,b形成的角为钝角;如果为零,那么a,b垂直;如果为正,那么a,b形成的角为锐角2.向量a,向量b,det(a,b)表示行列式的......
  • C语言:函数
    C语言函数调用与函数递归1.函数调用概念:函数是C语言中的一种基本构建块,用于将程序分解成有意义的代码块。函数可以接受参数,执行特定任务,并返回结果。函数调用是指在程序中调用一个函数来执行其定义的任务。实例:#include<stdio.h>//函数声明intadd(inta,intb);......