2016-04-21 9 views
1

Ich Code in Turbo C. Ich zeichnete einen Basketballplatz und ich möchte Kreis auf dem Platz bewegen und wenn ich dies tun überschreibt es und zerstört das Gericht. Wie kann ich den Kreis auf dem Platz bewegen und trotzdem den Platz sehen, ohne ihn zu verlieren?Moving-Objekt, das den Hintergrund in Turbo C

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

void Init() 
{ 
int gd=DETECT , gm , ErrorCode; 
initgraph(&gd , &gm , "c:\\TURBOC3\\BGI"); 
ErrorCode=graphresult(); 
if(ErrorCode != grOk) { 
printf("Graph Error: %s" , grapherrormsg(ErrorCode)); 
getch(); 
exit(1); 
} 
} 

void main() 
{ 
int i; 
Init(); 

rectangle(1,1,460,478); // drowing base lines 
rectangle(2,2,459,477); // drowing base lines 
line(3,239,458,239); // drowing half court line 
line(3,238,458,238); // drowing half court line 
circle(227,238,35); // drowing midile circle 
circle(227,238,34); // drowing midile circle 
circle(227,9,5); // drowing rim 1 
circle(227,470,5); // drowing rim 2 
line(205,476,249,476); // drowing basket board 1 
line(205,475,249,475); // drowing basket board 1 
line(205,3,249,3); // drowing basket 2 
line(205,4,249,4); // drowing basket 2 
rectangle(180,1,275,70); // drowing paint 1 

rectangle(180,408,275,477); // drowing paint 2 

line(177,10,180,10); // drowing paint line B1 
line(177,20,180,20); // drowing paint line B1 
line(177,30,180,30); // drowing paint line B1 
line(177,40,180,40); // drowing paint line B1 
line(177,50,180,50); // drowing paint line B1 
line(275,10,278,10); // drowing paint line B1 
line(275,20,278,20); // drowing paint line B1 
line(275,30,278,30); // drowing paint line B1 
line(275,40,278,40); // drowing paint line B1 
line(275,50,278,50); // drowing paint line B1 

line(177,430,180,430); // drowing paint line B2 
line(177,440,180,440); // drowing paint line B2 
line(177,450,180,450); // drowing paint line B2 
line(177,460,180,460); // drowing paint line B2 
line(177,470,180,470); // drowing paint line B2 
line(275,430,278,430); // drowing paint line B2 
line(275,440,278,440); // drowing paint line B2 
line(275,450,278,450); // drowing paint line B2 
line(275,460,278,460); // drowing paint line B2 
line(275,470,278,470); // drowing paint line B2 

arc(227,70,180,360,48); // drowing arc B1 
arc(227,1,180,360,140); // drowing 3 point line B1 
arc(227,410,0,180,48); // drowing arc B2 
arc(227,477,0,180,140); // drowing 3 point line B2 
line(500,1,500,500); // drowing chares for fans 
line(535,1,535,530); // drowing chares for fans 
line(570,1,570,560); // drowing chares for fans 
line(605,1,605,590); // drowing chares for fans 

for(i=0; i<500; i+=12) // for loop drowing fans 
{ 
circle(515 , 5+i , 2); 
line(507,5+i,513,5+i); 
line(510,4+i,513,1+i); 
line(510,4+i,513,9+i); 
line(506,4+i,504,1+i); 
line(506,4+i,504,9+i); 
circle(550 , 5+i , 2); 
line(542,5+i,548,5+i); 
line(545,4+i,548,1+i); 
line(545,4+i,548,9+i); 
line(541,4+i,539,1+i); 
line(541,4+i,539,9+i); 
circle(585 , 5+i , 2); 
line(577,5+i,583,5+i); 
line(580,4+i,583,1+i); 
line(580,4+i,583,9+i); 
line(576,4+i,574,1+i); 
line(576,4+i,574,9+i); 
circle(620 , 5+i , 2); 
line(612,5+i,618,5+i); 
line(615,4+i,618,1+i); 
line(615,4+i,618,9+i); 
line(611,4+i,609,1+i); 
line(611,4+i,609,9+i); 
} 

for(i=0; i<250; i++) 
{ 
    setcolor(WHITE); 
    circle(50+i,50,10); 
    delay(10); 
    setcolor(BLACK); 
    circle(50+i,50,10); 
    } 

getch(); 
closegraph(); 
} 

Antwort

0

Das System Sie verwenden nicht über Sprites oder anderes unabhängiges Objekt über dem Hintergrund bewegen, so haben Sie die ganze Szene jeden Frame neu zu zeichnen.