问题描述
我正在为学校项目制作游戏,我的游戏中有滚动内容。我需要重新初始化 pygame 以确保每个都被重置。但不知何故,重新初始化 pygame 后滚动停止工作。
我编写了一个简单的脚本来测试是否真的如此,并且确实如此。
@media screen and (min-width:1000px){
$font-sm: 13px;
$font-default: 15px;
$font-md: 18px;
}
@media screen and (max-width:999px){
$font-sm: 10px;
$font-default: 12px;
$font-md: 14px;
}
它获得左键点击事件,而不是滚动事件。 有什么办法可以解决这个问题吗?
解决方法
不要使用 pygame.MOUSEBUTTONDOWN
进行滚动。
我找到了另一种使用 pygame.MOUSEWHEEL
映射滚动的方法。
这是修改后的代码:
import pygame
def main():
while True:
pygame.init()
screen = pygame.display.set_mode([1280,720])
pygame.display.set_caption("PYGAME DOES NOT RECEIVE SCROLL EVENT AFTER RE-INIT?")
frame = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1:
print("left click")
if event.button == 3:
print("right click")
if event.type == pygame.MOUSEWHEEL:
if event.y == 1:
print("scroll up")
if event.y == -1:
print("scroll down")
if event.type == pygame.QUIT:
running = False
frame.tick(60)
pygame.quit()
if __name__ == "__main__":
main()
顺便说一句,新年快乐,祝你好运~