如何在Processing中实现按住Tab键触发显示计分板的功能
Processing Python 模式按住TAB显示计分板实现方案
你当前的代码默认每帧都会绘制计分板,只需增加按键状态判断即可实现按住TAB显示、松开自动隐藏的效果,修改后的完整代码如下:
def setup (): fullScreen() def draw(): # 每帧重绘背景,避免之前的画面残留 background(50) # 判断是否按住TAB键,是则绘制计分板 if keyPressed and key == TAB: scorebordRectWidth = width / 2 scorebordRectHeight = height / 2 scorebordRectX = (width - scorebordRectWidth) / 2 scorebordRectY = (height - scorebordRectHeight) / 2 fill(255, 255, 255) rect(scorebordRectX, scorebordRectY, scorebordRectWidth, scorebordRectHeight)
核心逻辑说明
- Processing 内置了
keyPressed全局变量,有按键处于按住状态时该变量为True,否则为False - 内置
key变量会存储当前按下的按键值,和内置常量TAB对比即可判断是否按下的是TAB键 - 把计分板绘制逻辑放到上述判断分支下,就可以实现仅按住TAB时显示的效果
如果你需要实现按一次TAB显示、再按一次TAB隐藏的切换效果,可以用全局状态变量实现,代码示例如下:
show_scoreboard = False def setup (): fullScreen() def draw(): background(50) if show_scoreboard: scorebordRectWidth = width / 2 scorebordRectHeight = height / 2 scorebordRectX = (width - scorebordRectWidth) / 2 scorebordRectY = (height - scorebordRectHeight) / 2 fill(255, 255, 255) rect(scorebordRectX, scorebordRectY, scorebordRectWidth, scorebordRectHeight) # 按键按下触发事件 def keyPressed(): global show_scoreboard if key == TAB: # 切换显示状态 show_scoreboard = not show_scoreboard
内容的提问来源于stack exchange,提问作者Bca
相关产品推荐
相关产品推荐

