| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 527 人关注过本帖
标题:求助:怎么让动画中物体运动速度加块???
只看楼主 加入收藏
百丙丙丙丙度
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-8-14
结帖率:100%
收藏
 问题点数:0 回复次数:4 
求助:怎么让动画中物体运动速度加块???
怎么让c编的动画中小球的运动速度加快
我看书上说擦除重画比较快,但还是不够快
有没有能让物体运动速度加快的方法????
求助啊!!!
搜索更多相关主题的帖子: 动画 
2013-08-23 20:56
百丙丙丙丙度
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-8-14
收藏
得分:0 
有人吗?
2013-08-23 21:19
百丙丙丙丙度
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-8-14
收藏
得分:0 
#include<graphics.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<dos.h>
#define IMAGE_s1 10
void draw_image(int x,int y);
void putstar(void);
void draw_earth();
void main()
{
  int driver=DETECT;
  int mode,color;
  void *pt_addr;
  void *buffer;
  int x,y,maxy,maxx,midy,midx,i;
  unsigned s1,s2;
  initgraph(&driver,&mode,"C:\\BORLANDC\\BGI");
  maxx=getmaxx(); /*取允许的最大x 值*/
  maxy=getmaxy(); /*取允许的最大y 值*/
  midx=maxx/2;
  x=0;
  midy=y=maxy/2;
  setcolor(YELLOW);
  settextstyle(TRIPLEX_FONT,HORIZ_DIR,4);
  settextjustify(CENTER_TEXT,CENTER_TEXT);
  outtextxy(midx,400,"AROUND THE WORLD");
  setbkcolor(BLACK);
  setcolor(RED);
  setlinestyle(SOLID_LINE,0,THICK_WIDTH);
  ellipse(midx,midy,130,50,160,30);
  setlinestyle(SOLID_LINE,0,NORM_WIDTH);
  draw_image(x,y); /*画飞船*/
  s1=imagesize(x,y-IMAGE_s1,x+(4*IMAGE_s1),y+IMAGE_s1);
  pt_addr=malloc(s1);
  getimage(x,y-IMAGE_s1,x+(4*IMAGE_s1),y+IMAGE_s1,pt_addr);
  putstar();
  setcolor(WHITE);
  setlinestyle(SOLID_LINE,0,NORM_WIDTH);
  rectangle(0,0,maxx,maxy); /*画方框*/
  draw_earth();
  s2=imagesize(midx-100,midy-100,midx+100,midy+100);
  buffer=malloc(s2);
  getimage(midx-100,midy-100,midx+100,midy+100,buffer);
  while (!kbhit())
  {
     putstar();
     setcolor(RED); /*画一个围绕地球的光环*/
     setlinestyle(SOLID_LINE,0,THICK_WIDTH);
     ellipse(midx,midy,130,50,160,30);
     delay(1000);
     setcolor(BLACK);
     ellipse(midx,midy,130,50,160,30);
     putimage(midx-100,midy-100,buffer,COPY_PUT);
     putimage(x,y-IMAGE_s1,pt_addr,XOR_PUT);/*恢复原画面*/
     x=x>=maxx?0:x+30;
     putimage(x,y-IMAGE_s1,pt_addr,COPY_PUT);/*在另一个位置显示飞船*/
     delay(1000);
     putimage(midx-100,midy-100,buffer,XOR_PUT);
  }
  free(pt_addr);
  closegraph();
}
void draw_image(int x,int y) /*画飞船*/
{
   int arw[11];
   arw[0]=x+10; arw[1]=y-10;
   arw[2]=x+34; arw[3]=y-6;
   arw[4]=x+34; arw[5]=y+6;
   arw[6]=x+10; arw[7]=y+10;
   arw[8]=x+10; arw[9]=y-10;
   moveto(x+10,y-4);
   setcolor(14);
   setfillstyle(1,4);
   linerel(-3*10,-2*8); /*画尾部天线*/
   moveto(x+10,y+4);
   linerel(-3*10,+2*8);
   moveto(x+10,y);
   linerel(-3*10,0);
   setcolor(3);
   setfillstyle(1,LIGHTBLUE);/*画本体*/
   fillpoly(4,arw);
}
void putstar(void) /*画星星*/
{
   int seed=1858;
   int i,dotx,doty,h,w,color,maxcolor;
   maxcolor=getmaxcolor(); /*得到当前模式和最多颜色数*/
   w=getmaxx();
   h=getmaxy();
   srand(seed);
   for(i=0;i<250;++i)
   {
      dotx=i+random(w-1);
      doty=1+random(h-1);
      color=random(maxcolor);
      setcolor(color);
      putpixel(dotx,doty,color);/*用点表示小星*/
      circle(dotx+1,doty+1,1);/*用圆表示大星*/
   }
   srand(seed);
}
void draw_earth()
{
    int i;
    int midx=getmaxx()/2; /*取允许的最大x 值*/
    int midy=getmaxy()/2; /*取允许的最大y 值*/
    for (i=0;i<=12;i++) /*画地球*/
     {
          setcolor(LIGHTBLUE);
          ellipse(midx,midy,0,360,100,100-8*i);
          setcolor(LIGHTBLUE);
          ellipse(midx,midy,0,360,100-8*i,100);
     }
}

这是课本上的例题
但是不快
求助啊…………
2013-08-23 21:29
百丙丙丙丙度
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-8-14
收藏
得分:0 
有人吗??
2013-08-23 21:34
百丙丙丙丙度
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-8-14
收藏
得分:0 
#include"all.h"
void main()
{
 int i,gdriver,gmode,size;
 void *buffer;
 gdriver=DETECT;
 initgraph(&gdriver,&gmode,"C:\\BORLANDC\\BGI");
 setbkcolor(YELLOW);
 cleardevice();
 setcolor(YELLOW);
 setlinestyle(0,0,1);
 setfillstyle(1,5);
 circle(30,200,30);
 floodfill(30,200,YELLOW);
 size=imagesize(0,170,60,230);
 buffer=malloc(size);
 getimage(0,170,60,230,buffer);
 putimage(579,170,buffer,COPY_PUT);
 do{
    for(i=0;i<260;i++)
    {
     putimage(i,170,buffer,COPY_PUT);   /* get的是一个小正方形内的图象,for中i一点点增,put时就会覆盖以前的 */
     putimage(579-i,170,buffer,COPY_PUT);
    }
    for(i=0;i<260;i++)
    {
     putimage(260-i,170,buffer,COPY_PUT);
     putimage(320+i,170,buffer,COPY_PUT);
    }
   }while(!kbhit());
   getch();
   closegraph();
}







可以改变for(i=0;i<260;i++)中i++为i+=2,i+=3,i+=4,i+=5………………来控制小球的速度。
2013-08-24 23:40
快速回复:求助:怎么让动画中物体运动速度加块???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026152 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved