70,020
社区成员




#include <graphics.h>
#include <stdio.h>
#include <conio.h>
void q_move(int x, int y, int r)
{
for (; x + r/2 <= 640; x += 5) {
setcolor(RED);
circle(x, y, r);
setfillcolor(RED);
fillcircle(x, y, r);
Sleep(10);
setcolor(BLACK);
circle(x, y, r);
setfillcolor(BLACK);
fillcircle(x, y, r);
}
return;
}
void kb_cir_mov(void)
{
initgraph(640, 480);
setcolor(RED);
const int r = 20;
int x = 320;
int y = 240;
circle(x, y, r);
setfillcolor(RED);
fillcircle(x, y, r);
setlinestyle(PS_SOLID | PS_ENDCAP_SQUARE, 6);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
char c = 0;
while (c != 27) {
if (kbhit()) {
c = getch();
switch (c) {
case 'w': {
setcolor(BLACK);
circle(x, y, r);
setfillcolor(BLACK);
fillcircle(x, y, r);
setlinestyle(PS_SOLID | PS_ENDCAP_SQUARE, 6);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
if (y - r <= 0) {
setcolor(RED);
circle(x, y, r);
setfillcolor(RED);
fillcircle(x, y, r);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
break;
}
y -= 20;
setcolor(RED);
circle(x, y, r);
setfillcolor(RED);
fillcircle(x, y, r);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
}break;
case 's': {
setcolor(BLACK);
circle(x, y, r);
setfillcolor(BLACK);
fillcircle(x, y, r);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
if (y + r + 70 >= 480) {
setcolor(RED);
circle(x, y, r);
setfillcolor(RED);
fillcircle(x, y, r);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
break;
}
y += 20;
setcolor(RED);
circle(x, y, r);
setfillcolor(RED);
fillcircle(x, y, r);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
}break;
case 'a': {
setcolor(BLACK);
circle(x, y, r);
setfillcolor(BLACK);
fillcircle(x, y, r);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
if (x - 35 <= 0) {
setcolor(RED);
circle(x, y, r);
setfillcolor(RED);
fillcircle(x, y, r);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
break;
}
x -= 20;
setcolor(RED);
circle(x, y, r);
setfillcolor(RED);
fillcircle(x, y, r);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
}break;
case 'd': {
setcolor(BLACK);
circle(x, y, r);
setfillcolor(BLACK);
fillcircle(x, y, r);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
if (x + 35 >= 640){
setcolor(RED);
circle(x, y, r);
setfillcolor(RED);
fillcircle(x, y, r);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
break;
}
x += 20;
setcolor(RED);
circle(x, y, r);
setfillcolor(RED);
fillcircle(x, y, r);
line(x, y + r, x, y + r + 20);
line(x, y + r, x - 20, y + 35);
line(x, y + r, x + 20, y + 35);
line(x, y + r + 20, x - 20, y + 70);
line(x, y + r + 20, x + 20, y + 70);
}break;
case 'q': {
/*
circle(x + 23, y, 5);
setfillcolor(RED);
fillcircle(x + 23, y, 5);
*/
q_move(x + 28, y, 5);
}break;
default:continue;
}
}
}
closegraph();
return;
}
int main(void)
{
kb_cir_mov();
return 0;
}