幻舞清风 2022-09-28 10:59 采纳率: 85.7%
浏览 90
已结题

ege 用C语言画图实现各种操作


#include <graphics.h>
typedef struct{
    int x,y;//坐标
    int r;//半径
}Ball;

typedef struct{//建立一个长方形的结构体
    int cx,cy;//左上角坐标
    int w;//宽
    int h;//高
    int dx;//速度
}Pipe;

Ball b1={400,100,50};//圆的数据项目
float gravity=0.3;//在规定背景程序下的重力
float bv=0;//初始速度

Pipe p1={800,480,60,120,1};//长方形的数据项

int main(){
    initgraph(800,600);//规定背景的大小
    setcolor(BLUE);//图形的颜色
    setbkcolor(WHITE);//规定背景程序的颜色
    setrendermode(RENDER_MANUAL);
    
    for(;is_run();delay_fps(60)){
        
        if(kbhit()){
            int k=getch();
            if(k==' '){
                bv=-8;
            }
        }
    
    cleardevice();
    setlinewidth(10);//宽度
    circle(b1.x,b1.y,b1.r);//第一个圆形的坐标
    circle(b1.x,b1.y+90,b1.r-10);//第二个圆形的坐标
    
    line(b1.x-b1.r,b1.y,b1.x-2*b1.r,b1.y-b1.r);//第一个线的坐标
    line(b1.x+b1.r,b1.y,b1.x+2*b1.r,b1.y-b1.r);//第二个线的坐标
    rectangle(p1.cx-p1.w/2,p1.cy-p1.h/2,p1.cx+p1.w/2,p1.cy+p1.h/2);
    
    p1.cx-=p1.dx;
    bv+=gravity;
    b1.y+=bv;
    
    if(b1.y+b1.r+2*(b1.r-10)>600){
        bv=0;
        b1.y=600-b1.r-2*(b1.r-10);
    }
    
    }
}

img


请采用两个大小有关联的圆和两条有关联的直线来表示一个飞人,当遇到一个长方形的障碍物的时候,需要跳跃起来避让。然而很明显,从运行结果来看,飞人遇到长方形并没有自动避让。请指出问题并请从上述代码中修改使其完成要求效果。
若是可以请教更好的代码编辑方式,并说明。加完整的注释,后学未进,怕看不懂。

展开全部

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-28 12:01
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 10月6日
  • 已采纳回答 9月29日
  • 修改了问题 9月28日
  • 修改了问题 9月28日
  • 展开全部

悬赏问题

  • ¥15 fluentmeshing
  • ¥15 手机/平板的浏览器里如何实现类似荧光笔的效果
  • ¥15 盘古气象大模型调用(python)
  • ¥15 传人记程序做的plc 485从机程序该如何写
  • ¥15 已知手指抓握过程中掌指关节、手指各关节和指尖每一帧的坐标,用贝塞尔曲线可以拟合手指抓握的运动轨迹吗?
  • ¥50 libwebsockets 如何添加其他socket事件回调
  • ¥50 实现画布拖拽算子排布,通过flink实现算子编排计算,请提供思路
  • ¥15 esium自定义材质拉伸问题
  • ¥15 cmake+mingw使用<mysqlx/xdevapi.h>报错
  • ¥15 eNSP中防火墙的使用
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部