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

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 20:01
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上