本人新手跪求关于2个小球碰撞的代码!!!!

beidoujia 2010-12-02 08:11:28
不用图形界面 我们用的是turboc2.0 内容是 有一大一小2个小球从不同方向运动碰撞后 小球粘在大球上然后一起沿着大球的运动方向运动。。 能运行的话60分都给了啊!!
...全文
142 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dubiousway 2010-12-02
  • 打赏
  • 举报
回复

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


struct Ball{
int x,y,r;
int mass;
int v;
};
void show(struct Ball* ball){
setcolor(BLUE);
circle(ball->x,ball->y,ball->r);
}
void move(struct Ball* ball, int slp){
delay(slp);
setcolor(BLACK);
circle(ball->x,ball->y,ball->r);
ball->x+=ball->v;
setcolor(BLUE);
circle(ball->x,ball->y,ball->r);
}
void setNewPos(struct Ball* ball, int xnew,int ynew){
setcolor(BLACK);
circle(ball->x,ball->y,ball->r);
ball->x= xnew, ball->y= ynew;
show(ball);
}

int main(){

int gdriver = EGA, gmode = EGAHI;
int x1=100,x2=300,y=100,v,i;

struct Ball b1,b2;
b1.x=x1, b1.y=y, b1.r=20, b1.mass=10, b1.v=8;
b2.x=x2, b2.y=y, b2.r=10, b2.mass=5, b2.v=-3;

initgraph(&gdriver, &gmode, "c:\\programs\\tc2\\bgi");//tc安装目录下,*.bgi 文件所在目录;
//可能是 tc2 目录下,也可能还有个bgi目录

show(&b1);
show(&b2);
v= (10*8+5*-3)/(10+5);//碰撞后速度

i=80;
while(i--){
move(&b1,80);
move(&b2,80);
if(b2.x-b1.x<20+10){
b1.v=b2.v=v;
setNewPos(&b2,b1.x+20+10,y);
break;
}
}
while(i--){
move(&b1,80);
move(&b2,80);
}


getch();
closegraph();

return 0;
}

就想叫yoko 2010-12-02
  • 打赏
  • 举报
回复
用物理数学公式计算出大小球的速度,加速度,用定时器来打印这两个球

33,321

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧