我们老师留了一题,题目是这样的:
先生成一个点,然后按键盘上的方向键,列如按->,点向右运动,每按一下,移动一定的步长,最后形成一直线,上下左右方向都可以.
要求在tubro c 2.0环境下编写,我以前用tc都是在dos下输入输出,不知道用什么函数可以响应键盘控制,请高手指点,最好能推荐几本有关这方面的书,小弟不胜感激!
对不起,原题没有说清楚,确切意思是直线形成以后,再次输入方向键,光标移动,到达新点,与最初的点构成直线,并覆盖原来的直线。
现在键盘响应我已经会了,但是现在又出现了一个新问题,在重新绘制直线的时候,老师建议我们用setwritemode(int mode)函数,mode=0 画线时原来的画线信息被覆盖。但是我发现这个函数没有用,我编了一个比较简单的程序来验证,程序如下: #include "stdio.h" #include "graphics.h" #include "conio.h"
void main() { int gd=DETECT,gm=0; initgraph(&gd,&gm,""); line(100,100,200,200);//直线1 setwritemode(0); line(300,300,400,400);//直线2 getch(); closegraph(); exit(0); } 按照函数定义,直线1被覆盖,应该不出现才对,但是事实却相反,能不能告诉我是哪个地方错了,是不是这个函数用的不对,请指正,谢谢!
模式用错,语法有误。
#include "stdio.h" #include "graphics.h" #include "conio.h"
void main() { int gd=DETECT,gm=0,x=0,y=0; initgraph(&gd,&gm,""); setwritemode(1); while(1) { line(100+x,100+y,200+x,200+y); sleep(1); line(100+x,100+y,200+x,200+y); x++,y++;
} closegraph(); exit(0); }