梁兴珍 java_计算机二级Java

学生(ID-3CBB47):

老师:本例如果第二个玩家用W,A,S,D操作,该怎么写,书中提到的字母键码名称“VK_W”"VK_A"好像用不了啊。

吴老师:

这些常量,都是在WinUser.h头文件里定义的,右击VK_UP-->转到定义,就可以打开这个头文件。

头文件里有一些关于VK_A - VK_Z的说明,

#define VK_LEFT           0x25

#define VK_UP             0x26

#define VK_RIGHT          0x27

#define VK_DOWN           0x28

#define VK_SELECT         0x29

#define VK_PRINT          0x2A

#define VK_EXECUTE        0x2B

#define VK_SNAPSHOT       0x2C

#define VK_INSERT         0x2D

#define VK_DELETE         0x2E

#define VK_HELP           0x2F

/*

* VK_0 - VK_9 are the same as ASCII '0' - '9' (0x30 - 0x39)

* 0x40 : unassigned

* VK_A - VK_Z are the same as ASCII 'A' - 'Z' (0x41 - 0x5A)  

*/

微软说,现在不写VK_A,VK_B这些了,直接写'A','B'等等,你把游戏改成下面的代码,第二个玩家就可以玩了。

#define VK_LWIN           0x5B

void HandleKeys()

{

if(!g_bGameOver)

{

if(GetAsyncKeyState(VK_UP)<0)

SteerCycle(0,0);

else if(GetAsyncKeyState(VK_RIGHT)<0)

SteerCycle(0,1);

else if(GetAsyncKeyState(VK_DOWN)<0)

SteerCycle(0,2);

else if(GetAsyncKeyState(VK_LEFT)<0)

SteerCycle(0,3);

else if(GetAsyncKeyState('A')<0)

SteerCycle(1,3);

else if(GetAsyncKeyState('D')<0)

SteerCycle(1,1);

else if(GetAsyncKeyState('W')<0)

SteerCycle(1,0);

else if(GetAsyncKeyState('S')<0)

SteerCycle(1,2);

}else if(GetAsyncKeyState(VK_RETURN)<0)

NewGame();

}

祝学习进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值