求大神给我讲解一下在c++中什么函数可以让wasd控制光标移动
iterstudy吧
全部回复
仅看楼主
level 5
雄狮85 楼主
我用的是vc6.0,所以希望大神说一下VC6.0中的函数,顺便把库函数也写一下,谢谢。
2014年04月22日 11点04分 1
level 10
这涉及到windows编程了吧
2014年04月22日 12点04分 2
level 8
自己定义消息处理函数吧,没有系统默认的应该
2014年04月23日 08点04分 3
有键盘读取函数
2014年04月23日 12点04分
知道,不过函数只能读取键盘按键信息啊,你也只能通过wparam参数判定值,在更改光标重绘的信息吧,只靠系统函数无法达到楼主目的吧
2014年04月23日 13点04分
level 9
#include <graphics.h>
#include <stdio.h>
// 定义常量
#define CMD_UP 1
#define CMD_DOWN 2
#defineCMD_LEFT3
#defineCMD_RIGHT4
// 获取用户控制
int GetCommand()
{
int c = 0;
if (GetAsyncKeyState(VK_LEFT) & 0x8000)c |= CMD_LEFT;
if (GetAsyncKeyState(VK_RIGHT) & 0x8000)c |= CMD_RIGHT;
if (GetAsyncKeyState(VK_DOWN) & 0x8000)c |= CMD_DOWN;
if (GetAsyncKeyState(VK_UP) & 0x8000) c |= CMD_UP;
return c;
}
// 主函数
int main()
{
// 初始化
initgraph(400, 320);
BeginBatchDraw();
setfillcolor(WHITE);
int c;
// 游戏主循环
while(1)
{
Sleep(500);
FlushBatchDraw();
// 获取用户控制命令
c = GetCommand();
// 延时
// 擦除游戏区
clearrectangle(0, 0, 400, 320);
if(c==1)
outtextxy(200,160,"1111");
if(c==2)
outtextxy(200,160,"2222");
if(c==3)
outtextxy(200,160,"3333");
if(c==4)
outtextxy(200,160,"4444");
}
// 清空键盘缓冲区
FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
closegraph();
return 0;
}
2014年04月23日 15点04分 4
我试试,非常感谢
2014年04月23日 15点04分
回复 雄狮85 :嗯
2014年04月24日 18点04分
level 9
你自己研究下吧
2014年04月23日 15点04分 5
1