微信小程序传奇电脑版怎么键盘 *** 作

微信小程序传奇电脑版怎么键盘 *** 作,第1张

微唤段信小程序传奇电脑版键盘 *** 作说明:

1. WASD 控制角色的面向及行走;

2. Tab 开启/关闭地图;

3. 空格键跳跃;

4. Ctrl+鼠标左键点李孝击可以攻击怪物;

5. 鼠标右键点击可以使用物品;

6. 1-9键可以使用英雄背包里的物品;

7. Shift+鼠标左键可以普通拾取;

8. Shift+鼠标右键可以快速拾取;

9. F1-F5键可以使用快捷键功能;

10. Enter键用于哪链稿聊天;

问题一:

其实主要是else语句弄巧成拙了。如果你希望point.X小于等于2的时候方块就不能往左移动了,那对应的当它小于2时,你不做汪备任何处理,他困陵顷不就停在那里不动了吗?

问题二:

最后要记得用CloseHandle关闭句柄

问题三:

两个函数的最后一个参数用NULL会出错,应该这样用:

DWORD written

FillConsoleOutputAttribute(hand,colour,len,point,&written)

WriteConsoleOutputCharacter(hand,string,len,point,&written)

这种用法参考自:

http://hi.baidu.com/console_app/blog/item/30488bec119a5a4779f055df.html

其实我也看到网上有个教程里就这样用,但是在codeblocks下运行程序会出错,改过来就可以运行了

此外我加了一个输出方块当前位置的语句,你可以看出,由于■在dos窗口上占两个字节的宽汪陆度,因此即使你按一下方向键,对应坐标也会变化2个单位。

简单改了一下。我建议还是用函数实现好一点,因为这个程序中类似的代码段重复出现,使程序变得很长。

代码:

#include<iostream>

#include<iomanip>

#include<windows.h>

using namespace std

int main()

{

int x=4

int y=4

HANDLE hand

hand=GetStdHandle(STD_OUTPUT_HANDLE)

int colour=200

int len=2

COORD point

point.X=x

point.Y=y

char *string="■"

SMALL_RECT rt = {0,0,35,35}// 窗口尺寸

SetConsoleWindowInfo(hand,true,&rt)// 由于DOS默认只有25行,为了便于观察,把dos窗口行数调为35,这个也可以用system函数实现

DWORD written

FillConsoleOutputAttribute(hand,colour,len,point,&written)

WriteConsoleOutputCharacter(hand,string,len,point,&written)

INPUT_RECORD keyRec

DWORD res

HANDLE hnd

hnd=GetStdHandle(STD_INPUT_HANDLE)

for()

{

cout<<setfill('0')<<"("<<setw(2)<<point.X<<","<<setw(2)<<point.Y<<")"

ReadConsoleInput(hnd,&keyRec,1,&res)

if(keyRec.EventType==KEY_EVENT)

{

if(keyRec.Event.KeyEvent.wVirtualKeyCode==65)

{

if(point.X>2) // 这里不用那么麻烦,因为按a时只会使X减小,下同

{

FillConsoleOutputAttribute(hand,1,len,point,&written)

WriteConsoleOutputCharacter(hand," ",len,point,&written)

point.X-=1

FillConsoleOutputAttribute(hand,colour,len,point,&written)

WriteConsoleOutputCharacter(hand,string,len,point,&written)

}

}

if(keyRec.Event.KeyEvent.wVirtualKeyCode==68)

{

if(point.X<30)

{

FillConsoleOutputAttribute(hand,1,len,point,&written)

WriteConsoleOutputCharacter(hand," ",len,point,&written)

point.X+=1

FillConsoleOutputAttribute(hand,colour,len,point,&written)

WriteConsoleOutputCharacter(hand,string,len,point,&written)

}

}

if(keyRec.Event.KeyEvent.wVirtualKeyCode==87)

{

if(point.Y>2)

{

FillConsoleOutputAttribute(hand,1,len,point,&written)

WriteConsoleOutputCharacter(hand," ",len,point,&written)

point.Y-=1

FillConsoleOutputAttribute(hand,colour,len,point,&written)

WriteConsoleOutputCharacter(hand,string,len,point,&written)

}

}

if(keyRec.Event.KeyEvent.wVirtualKeyCode==83)

{

if(point.Y<30)

{

FillConsoleOutputAttribute(hand,1,len,point,&written)

WriteConsoleOutputCharacter(hand," ",len,point,&written)

point.Y+=1

FillConsoleOutputAttribute(hand,colour,len,point,&written)

WriteConsoleOutputCharacter(hand,string,len,point,&written)

}

}

}

cout<<"\b\b\b\b\b\b\b"

}

// 最后记得关闭

CloseHandle(hand)

CloseHandle(hnd)

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12225843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存