BlitzMax/模块/用户输入/轮询输入
轮询输入模块提供了一种简单的方法来检测键盘和鼠标输入。
此模块中的函数仅在程序在 图形 模式下运行时可用。在处理 GUI 应用程序时,应使用 事件。
函数 AppSuspended()
描述: 获取应用程序挂起状态
返回值: 如果应用程序当前处于挂起状态,则为 True。
函数 AppTerminate()
描述: 返回应用程序终止状态
返回值: 如果用户已请求终止应用程序,则为 True
示例:
Graphics 640,480,0 While Not AppTerminate() Or Not Confirm( "Terminate?" ) Cls DrawText MouseX()+","+MouseY(),0,0 Flip Wend
函数 KeyHit( key )
描述: 检查按键是否被按下
返回值: key 被按下的次数。
信息: 返回值表示自上次调用具有相同 key 的 KeyHit 以来,key 被按下的次数。
有关有效按键代码的列表,请参见 按键代码 模块。
示例:
' keyhit.bmx ' the following code draws a circle every time the ' program detects the spacebar has been pressed ' and exits when it detects the ESCAPE key has ' been pressed graphics 640,480 while not keyhit(KEY_ESCAPE) cls if keyhit(KEY_SPACE) drawoval 0,0,640,480 flip wend
函数 KeyDown( key )
描述: 检查按键状态
返回值: 如果 key 当前处于按下状态,则为 True
信息: 有关有效按键代码的列表,请参见 按键代码 模块。
示例:
' keydown.bmx ' the following code draws a circle if the ' program detects the spacebar is pressed ' and exits when it detects the ESCAPE key has ' been pressed Graphics 640,480 While Not KeyHit(KEY_ESCAPE) Cls If KeyDown(KEY_SPACE) DrawOval 0,0,640,480 Flip Wend
函数 GetChar()
描述: 获取下一个字符
返回值: 下一个字符的字符代码。
信息: 当用户在键盘上按下按键时,BlitzMax 会将这些按键的字符代码记录到一个内部的“字符队列”中。
GetChar 从该队列中删除下一个字符代码并将其返回给应用程序。
如果字符队列为空,则返回 0。
函数 FlushKeys()
描述: 清除按键状态和字符队列。
信息: FlushKeys 将所有按键的状态重置为“关闭”,并重置 GetChar 使用的字符队列。
函数 MouseX()
描述: 获取鼠标 x 坐标
返回值: 鼠标 x 轴坐标
信息: 返回值相对于屏幕的左侧。
示例:
' mousex.bmx ' the following tracks the position of the mouse graphics 640,480 while not keyhit(KEY_ESCAPE) cls drawoval mousex()-10,mousey()-10,20,20 flip wend
函数 MouseY()
描述: 获取鼠标 y 坐标
返回值: 鼠标 y 轴坐标
信息: 返回值相对于屏幕的顶部。
示例:
' mousey.bmx ' the following tracks the position of the mouse graphics 640,480 while not keyhit(KEY_ESCAPE) cls drawrect mousex()-10,mousey()-10,20,20 flip wend
函数 MouseZ()
描述: 获取鼠标滚轮
返回值: 鼠标滚轮值
信息: 当鼠标滚轮“远离”用户滚动时,鼠标滚轮值会增加;当鼠标滚轮“朝向”用户滚动时,鼠标滚轮值会减少。
示例:
' mousez.bmx ' prints mousez() the mousewheel position Graphics 640,480 While Not keyhit(KEY_ESCAPE) cls drawtext "MouseZ()="+MouseZ(),0,0 flip Wend
函数 MouseXSpeed()
描述: 获取鼠标 x 速度
返回值: 鼠标 x 速度
函数 MouseYSpeed()
描述: 获取鼠标 y 速度
返回值: 鼠标 y 速度
函数 MouseZSpeed()
描述: 获取鼠标 z 速度
返回值: 鼠标 z 速度
函数 FlushMouse()
描述: 清除鼠标按钮状态
信息: FlushMouse 将所有鼠标按钮的状态重置为“关闭”。
函数 MouseHit( button )
描述: 检查鼠标按钮是否被点击
返回值: button 被点击的次数。
信息: 返回值表示自上次调用具有相同 button 的 MouseHit 以来,button 被点击的次数。
button 应为 1 代表左键,2 代表右键,或 3 代表中键。
示例:
' mousehit.bmx graphics 640,480 while not keyhit(KEY_ESCAPE) cls if mousehit(1) drawrect 0,0,200,200 if mousehit(2) drawrect 200,0,200,200 if mousehit(3) drawrect 400,0,200,200 flip wend
函数 MouseDown( button )
描述: 检查鼠标按钮是否处于按下状态
返回值: 如果 button 当前处于按下状态,则为 True
信息: 按钮 应为 1 代表左键,2 代表右键或 3 代表中键。
示例:
' mousedown.bmx graphics 640,480 while not keyhit(KEY_ESCAPE) cls if mousedown(1) drawrect 0,0,200,200 if mousedown(2) drawrect 200,0,200,200 if mousedown(3) drawrect 400,0,200,200 flip wend
Function WaitKey()
描述: 等待按键按下
返回值: 按下按键的键码
信息: WaitKey 会暂停程序执行,直到有按键被按下。然后,该按键的键码将被返回到应用程序。
有关有效键码列表,请参阅键码 模块。
Function WaitChar()
描述: 等待按键按下
返回值: 按下按键的字符代码
信息: WaitChar 会暂停程序执行,直到从 GetChar 获得字符。然后,该字符将被返回到应用程序。
Function WaitMouse()
描述: 等待鼠标按钮点击
返回值: 点击的按钮
信息: WaitMouse 会暂停程序执行,直到鼠标按钮被点击。
WaitMouse 如果左键被点击,则返回 1;如果右键被点击,则返回 2;如果中键被点击,则返回 3。