跳转到内容

BlitzMax/模块/用户输入/轮询输入

来自维基教科书,开放的书籍,为开放的世界

轮询输入模块提供了一种简单的方法来检测键盘和鼠标输入。

此模块中的函数仅在程序在 图形 模式下运行时可用。在处理 GUI 应用程序时,应使用 事件

AppSuspended

[编辑 | 编辑源代码]

函数 AppSuspended()

描述: 获取应用程序挂起状态

返回值: 如果应用程序当前处于挂起状态,则为 True。

AppTerminate

[编辑 | 编辑源代码]

函数 AppTerminate()

描述: 返回应用程序终止状态

返回值: 如果用户已请求终止应用程序,则为 True

示例:

Graphics 640,480,0

While Not AppTerminate() Or Not Confirm( "Terminate?" )

	Cls
	DrawText MouseX()+","+MouseY(),0,0
	Flip

Wend

函数 KeyHit( key )

描述: 检查按键是否被按下

返回值: key 被按下的次数。

信息: 返回值表示自上次调用具有相同 keyKeyHit 以来,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()

描述: 清除按键状态和字符队列。

信息: 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

[编辑 | 编辑源代码]

函数 MouseXSpeed()

描述: 获取鼠标 x 速度

返回值: 鼠标 x 速度

MouseYSpeed

[编辑 | 编辑源代码]

函数 MouseYSpeed()

描述: 获取鼠标 y 速度

返回值: 鼠标 y 速度

MouseZSpeed

[编辑 | 编辑源代码]

函数 MouseZSpeed()

描述: 获取鼠标 z 速度

返回值: 鼠标 z 速度

FlushMouse

[编辑 | 编辑源代码]

函数 FlushMouse()

描述: 清除鼠标按钮状态

信息: FlushMouse 将所有鼠标按钮的状态重置为“关闭”。

函数 MouseHit( button )

描述: 检查鼠标按钮是否被点击

返回值: button 被点击的次数。

信息: 返回值表示自上次调用具有相同 buttonMouseHit 以来,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

[编辑 | 编辑源代码]

函数 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 获得字符。然后,该字符将被返回到应用程序。

WaitMouse

[编辑 | 编辑源代码]

Function WaitMouse()

描述: 等待鼠标按钮点击

返回值: 点击的按钮

信息: WaitMouse 会暂停程序执行,直到鼠标按钮被点击。

WaitMouse 如果左键被点击,则返回 1;如果右键被点击,则返回 2;如果中键被点击,则返回 3。

华夏公益教科书